import * as outputs from "../types/output"; export declare namespace accesscontextmanager { namespace v1 { /** * Identification for an API Operation. */ interface ApiOperationResponse { /** * API methods or permissions to allow. Method or permission must belong to the service specified by `service_name` field. A single MethodSelector entry with `*` specified for the `method` field will allow all methods AND permissions for the service specified in `service_name`. */ methodSelectors: outputs.accesscontextmanager.v1.MethodSelectorResponse[]; /** * The name of the API whose methods or permissions the IngressPolicy or EgressPolicy want to allow. A single ApiOperation with `service_name` field set to `*` will allow all methods AND permissions for all services. */ serviceName: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.accesscontextmanager.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * `BasicLevel` is an `AccessLevel` using a set of recommended features. */ interface BasicLevelResponse { /** * How the `conditions` list should be combined to determine if a request is granted this `AccessLevel`. If AND is used, each `Condition` in `conditions` must be satisfied for the `AccessLevel` to be applied. If OR is used, at least one `Condition` in `conditions` must be satisfied for the `AccessLevel` to be applied. Default behavior is AND. */ combiningFunction: string; /** * A list of requirements for the `AccessLevel` to be granted. */ conditions: outputs.accesscontextmanager.v1.ConditionResponse[]; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.accesscontextmanager.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * A condition necessary for an `AccessLevel` to be granted. The Condition is an AND over its fields. So a Condition is true if: 1) the request IP is from one of the listed subnetworks AND 2) the originating device complies with the listed device policy AND 3) all listed access levels are granted AND 4) the request was sent at a time allowed by the DateTimeRestriction. */ interface ConditionResponse { /** * Device specific restrictions, all restrictions must hold for the Condition to be true. If not specified, all devices are allowed. */ devicePolicy: outputs.accesscontextmanager.v1.DevicePolicyResponse; /** * CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32" is not. The originating IP of a request must be in one of the listed subnets in order for this Condition to be true. If empty, all IP addresses are allowed. */ ipSubnetworks: string[]; /** * The request must be made by one of the provided user or service accounts. Groups are not supported. Syntax: `user:{emailid}` `serviceAccount:{emailid}` If not specified, a request may come from any user. */ members: string[]; /** * Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields. Any non-empty field criteria evaluating to false will result in the Condition to be satisfied. Defaults to false. */ negate: boolean; /** * The request must originate from one of the provided countries/regions. Must be valid ISO 3166-1 alpha-2 codes. */ regions: string[]; /** * A list of other access levels defined in the same `Policy`, referenced by resource name. Referencing an `AccessLevel` which does not exist is an error. All access levels listed must be granted for the Condition to be true. Example: "`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"` */ requiredAccessLevels: string[]; /** * The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`. */ vpcNetworkSources: outputs.accesscontextmanager.v1.VpcNetworkSourceResponse[]; } /** * `CustomLevel` is an `AccessLevel` using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. See CEL spec at: https://github.com/google/cel-spec */ interface CustomLevelResponse { /** * A Cloud CEL expression evaluating to a boolean. */ expr: outputs.accesscontextmanager.v1.ExprResponse; } /** * `DevicePolicy` specifies device specific restrictions necessary to acquire a given access level. A `DevicePolicy` specifies requirements for requests from devices to be granted access levels, it does not do any enforcement on the device. `DevicePolicy` acts as an AND over all specified fields, and each repeated field is an OR over its elements. Any unset fields are ignored. For example, if the proto is { os_type : DESKTOP_WINDOWS, os_type : DESKTOP_LINUX, encryption_status: ENCRYPTED}, then the DevicePolicy will be true for requests originating from encrypted Linux desktops and encrypted Windows desktops. */ interface DevicePolicyResponse { /** * Allowed device management levels, an empty list allows all management levels. */ allowedDeviceManagementLevels: string[]; /** * Allowed encryptions statuses, an empty list allows all statuses. */ allowedEncryptionStatuses: string[]; /** * Allowed OS versions, an empty list allows all types and all versions. */ osConstraints: outputs.accesscontextmanager.v1.OsConstraintResponse[]; /** * Whether the device needs to be approved by the customer admin. */ requireAdminApproval: boolean; /** * Whether the device needs to be corp owned. */ requireCorpOwned: boolean; /** * Whether or not screenlock is required for the DevicePolicy to be true. Defaults to `false`. */ requireScreenlock: boolean; } /** * Defines the conditions under which an EgressPolicy matches a request. Conditions based on information about the source of the request. Note that if the destination of the request is also protected by a ServicePerimeter, then that ServicePerimeter must have an IngressPolicy which allows access in order for this request to succeed. */ interface EgressFromResponse { /** * A list of identities that are allowed access through this [EgressPolicy]. Should be in the format of email address. The email address should represent individual user or service account only. */ identities: string[]; /** * Specifies the type of identities that are allowed access to outside the perimeter. If left unspecified, then members of `identities` field will be allowed access. */ identityType: string; /** * Whether to enforce traffic restrictions based on `sources` field. If the `sources` fields is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`. */ sourceRestriction: string; /** * Sources that this EgressPolicy authorizes access from. If this field is not empty, then `source_restriction` must be set to `SOURCE_RESTRICTION_ENABLED`. */ sources: outputs.accesscontextmanager.v1.EgressSourceResponse[]; } /** * Policy for egress from perimeter. EgressPolicies match requests based on `egress_from` and `egress_to` stanzas. For an EgressPolicy to match, both `egress_from` and `egress_to` stanzas must be matched. If an EgressPolicy matches a request, the request is allowed to span the ServicePerimeter boundary. For example, an EgressPolicy can be used to allow VMs on networks within the ServicePerimeter to access a defined set of projects outside the perimeter in certain contexts (e.g. to read data from a Cloud Storage bucket or query against a BigQuery dataset). EgressPolicies are concerned with the *resources* that a request relates as well as the API services and API actions being used. They do not related to the direction of data movement. More detailed documentation for this concept can be found in the descriptions of EgressFrom and EgressTo. */ interface EgressPolicyResponse { /** * Defines conditions on the source of a request causing this EgressPolicy to apply. */ egressFrom: outputs.accesscontextmanager.v1.EgressFromResponse; /** * Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply. */ egressTo: outputs.accesscontextmanager.v1.EgressToResponse; } /** * The source that EgressPolicy authorizes access from inside the ServicePerimeter to somewhere outside the ServicePerimeter boundaries. */ interface EgressSourceResponse { /** * An AccessLevel resource name that allows protected resources inside the ServicePerimeters to access outside the ServicePerimeter boundaries. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will cause an error. If an AccessLevel name is not specified, only resources within the perimeter can be accessed through Google Cloud calls with request origins within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is specified for `access_level`, then all EgressSources will be allowed. */ accessLevel: string; } /** * Defines the conditions under which an EgressPolicy matches a request. Conditions are based on information about the ApiOperation intended to be performed on the `resources` specified. Note that if the destination of the request is also protected by a ServicePerimeter, then that ServicePerimeter must have an IngressPolicy which allows access in order for this request to succeed. The request must match `operations` AND `resources` fields in order to be allowed egress out of the perimeter. */ interface EgressToResponse { /** * A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed. */ externalResources: string[]; /** * A list of ApiOperations allowed to be performed by the sources specified in the corresponding EgressFrom. A request matches if it uses an operation/service in this list. */ operations: outputs.accesscontextmanager.v1.ApiOperationResponse[]; /** * A list of resources, currently only projects in the form `projects/`, that are allowed to be accessed by sources defined in the corresponding EgressFrom. A request matches if it contains a resource in this list. If `*` is specified for `resources`, then this EgressTo rule will authorize access to all resources outside the perimeter. */ resources: string[]; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Defines the conditions under which an IngressPolicy matches a request. Conditions are based on information about the source of the request. The request must satisfy what is defined in `sources` AND identity related fields in order to match. */ interface IngressFromResponse { /** * A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only. */ identities: string[]; /** * Specifies the type of identities that are allowed access from outside the perimeter. If left unspecified, then members of `identities` field will be allowed access. */ identityType: string; /** * Sources that this IngressPolicy authorizes access from. */ sources: outputs.accesscontextmanager.v1.IngressSourceResponse[]; } /** * Policy for ingress into ServicePerimeter. IngressPolicies match requests based on `ingress_from` and `ingress_to` stanzas. For an ingress policy to match, both the `ingress_from` and `ingress_to` stanzas must be matched. If an IngressPolicy matches a request, the request is allowed through the perimeter boundary from outside the perimeter. For example, access from the internet can be allowed either based on an AccessLevel or, for traffic hosted on Google Cloud, the project of the source network. For access from private networks, using the project of the hosting network is required. Individual ingress policies can be limited by restricting which services and/or actions they match using the `ingress_to` field. */ interface IngressPolicyResponse { /** * Defines the conditions on the source of a request causing this IngressPolicy to apply. */ ingressFrom: outputs.accesscontextmanager.v1.IngressFromResponse; /** * Defines the conditions on the ApiOperation and request destination that cause this IngressPolicy to apply. */ ingressTo: outputs.accesscontextmanager.v1.IngressToResponse; } /** * The source that IngressPolicy authorizes access from. */ interface IngressSourceResponse { /** * An AccessLevel resource name that allow resources within the ServicePerimeters to be accessed from the internet. AccessLevels listed must be in the same policy as this ServicePerimeter. Referencing a nonexistent AccessLevel will cause an error. If no AccessLevel names are listed, resources within the perimeter can only be accessed via Google Cloud calls with request origins within the perimeter. Example: `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is specified for `access_level`, then all IngressSources will be allowed. */ accessLevel: string; /** * A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. `*` is not allowed, the case of allowing all Google Cloud resources only is not supported. */ resource: string; } /** * Defines the conditions under which an IngressPolicy matches a request. Conditions are based on information about the ApiOperation intended to be performed on the target resource of the request. The request must satisfy what is defined in `operations` AND `resources` in order to match. */ interface IngressToResponse { /** * A list of ApiOperations allowed to be performed by the sources specified in corresponding IngressFrom in this ServicePerimeter. */ operations: outputs.accesscontextmanager.v1.ApiOperationResponse[]; /** * A list of resources, currently only projects in the form `projects/`, protected by this ServicePerimeter that are allowed to be accessed by sources defined in the corresponding IngressFrom. If a single `*` is specified, then access to all resources inside the perimeter are allowed. */ resources: string[]; } /** * An allowed method or permission of a service specified in ApiOperation. */ interface MethodSelectorResponse { /** * Value for `method` should be a valid method name for the corresponding `service_name` in ApiOperation. If `*` used as value for `method`, then ALL methods and permissions are allowed. */ method: string; /** * Value for `permission` should be a valid Cloud IAM permission for the corresponding `service_name` in ApiOperation. */ permission: string; } /** * A restriction on the OS type and version of devices making requests. */ interface OsConstraintResponse { /** * The minimum allowed OS version. If not set, any version of this OS satisfies the constraint. Format: `"major.minor.patch"`. Examples: `"10.5.301"`, `"9.2.1"`. */ minimumVersion: string; /** * The allowed OS type. */ osType: string; /** * Only allows requests from devices with a verified Chrome OS. Verifications includes requirements that the device is enterprise-managed, conformant to domain policies, and the caller has permission to call the API targeted by the request. */ requireVerifiedChromeOs: boolean; } /** * `ServicePerimeterConfig` specifies a set of Google Cloud resources that describe specific Service Perimeter configuration. */ interface ServicePerimeterConfigResponse { /** * A list of `AccessLevel` resource names that allow resources within the `ServicePerimeter` to be accessed from the internet. `AccessLevels` listed must be in the same policy as this `ServicePerimeter`. Referencing a nonexistent `AccessLevel` is a syntax error. If no `AccessLevel` names are listed, resources within the perimeter can only be accessed via Google Cloud calls with request origins within the perimeter. Example: `"accessPolicies/MY_POLICY/accessLevels/MY_LEVEL"`. For Service Perimeter Bridge, must be empty. */ accessLevels: string[]; /** * List of EgressPolicies to apply to the perimeter. A perimeter may have multiple EgressPolicies, each of which is evaluated separately. Access is granted if any EgressPolicy grants it. Must be empty for a perimeter bridge. */ egressPolicies: outputs.accesscontextmanager.v1.EgressPolicyResponse[]; /** * List of IngressPolicies to apply to the perimeter. A perimeter may have multiple IngressPolicies, each of which is evaluated separately. Access is granted if any Ingress Policy grants it. Must be empty for a perimeter bridge. */ ingressPolicies: outputs.accesscontextmanager.v1.IngressPolicyResponse[]; /** * A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: `projects/{project_number}` VPC network format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`. */ resources: string[]; /** * Google Cloud services that are subject to the Service Perimeter restrictions. For example, if `storage.googleapis.com` is specified, access to the storage buckets inside the perimeter must meet the perimeter's access restrictions. */ restrictedServices: string[]; /** * Configuration for APIs allowed within Perimeter. */ vpcAccessibleServices: outputs.accesscontextmanager.v1.VpcAccessibleServicesResponse; } /** * Specifies how APIs are allowed to communicate within the Service Perimeter. */ interface VpcAccessibleServicesResponse { /** * The list of APIs usable within the Service Perimeter. Must be empty unless 'enable_restriction' is True. You can specify a list of individual services, as well as include the 'RESTRICTED-SERVICES' value, which automatically includes all of the services protected by the perimeter. */ allowedServices: string[]; /** * Whether to restrict API calls within the Service Perimeter to the list of APIs specified in 'allowed_services'. */ enableRestriction: boolean; } /** * The originating network source in Google Cloud. */ interface VpcNetworkSourceResponse { /** * Sub-segment ranges of a VPC network. */ vpcSubnetwork: outputs.accesscontextmanager.v1.VpcSubNetworkResponse; } /** * Sub-segment ranges inside of a VPC Network. */ interface VpcSubNetworkResponse { /** * Network name. If the network is not part of the organization, the `compute.network.get` permission must be granted to the caller. Format: `//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NETWORK_NAME}` Example: `//compute.googleapis.com/projects/my-project/global/networks/network-1` */ network: string; /** * CIDR block IP subnetwork specification. The IP address must be an IPv4 address and can be a public or private IP address. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. If empty, all IP addresses are allowed. */ vpcIpSubnetworks: string[]; } } namespace v1beta { /** * `BasicLevel` is an `AccessLevel` using a set of recommended features. */ interface BasicLevelResponse { /** * How the `conditions` list should be combined to determine if a request is granted this `AccessLevel`. If AND is used, each `Condition` in `conditions` must be satisfied for the `AccessLevel` to be applied. If OR is used, at least one `Condition` in `conditions` must be satisfied for the `AccessLevel` to be applied. Default behavior is AND. */ combiningFunction: string; /** * A list of requirements for the `AccessLevel` to be granted. */ conditions: outputs.accesscontextmanager.v1beta.ConditionResponse[]; } /** * A condition necessary for an `AccessLevel` to be granted. The Condition is an AND over its fields. So a Condition is true if: 1) the request IP is from one of the listed subnetworks AND 2) the originating device complies with the listed device policy AND 3) all listed access levels are granted AND 4) the request was sent at a time allowed by the DateTimeRestriction. */ interface ConditionResponse { /** * Device specific restrictions, all restrictions must hold for the Condition to be true. If not specified, all devices are allowed. */ devicePolicy: outputs.accesscontextmanager.v1beta.DevicePolicyResponse; /** * CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32" is not. The originating IP of a request must be in one of the listed subnets in order for this Condition to be true. If empty, all IP addresses are allowed. */ ipSubnetworks: string[]; /** * The request must be made by one of the provided user or service accounts. Groups are not supported. Syntax: `user:{emailid}` `serviceAccount:{emailid}` If not specified, a request may come from any user. */ members: string[]; /** * Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields. Any non-empty field criteria evaluating to false will result in the Condition to be satisfied. Defaults to false. */ negate: boolean; /** * The request must originate from one of the provided countries/regions. Must be valid ISO 3166-1 alpha-2 codes. */ regions: string[]; /** * A list of other access levels defined in the same `Policy`, referenced by resource name. Referencing an `AccessLevel` which does not exist is an error. All access levels listed must be granted for the Condition to be true. Example: "`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"` */ requiredAccessLevels: string[]; } /** * `CustomLevel` is an `AccessLevel` using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. See CEL spec at: https://github.com/google/cel-spec */ interface CustomLevelResponse { /** * A Cloud CEL expression evaluating to a boolean. */ expr: outputs.accesscontextmanager.v1beta.ExprResponse; } /** * `DevicePolicy` specifies device specific restrictions necessary to acquire a given access level. A `DevicePolicy` specifies requirements for requests from devices to be granted access levels, it does not do any enforcement on the device. `DevicePolicy` acts as an AND over all specified fields, and each repeated field is an OR over its elements. Any unset fields are ignored. For example, if the proto is { os_type : DESKTOP_WINDOWS, os_type : DESKTOP_LINUX, encryption_status: ENCRYPTED}, then the DevicePolicy will be true for requests originating from encrypted Linux desktops and encrypted Windows desktops. */ interface DevicePolicyResponse { /** * Allowed device management levels, an empty list allows all management levels. */ allowedDeviceManagementLevels: string[]; /** * Allowed encryptions statuses, an empty list allows all statuses. */ allowedEncryptionStatuses: string[]; /** * Allowed OS versions, an empty list allows all types and all versions. */ osConstraints: outputs.accesscontextmanager.v1beta.OsConstraintResponse[]; /** * Whether the device needs to be approved by the customer admin. */ requireAdminApproval: boolean; /** * Whether the device needs to be corp owned. */ requireCorpOwned: boolean; /** * Whether or not screenlock is required for the DevicePolicy to be true. Defaults to `false`. */ requireScreenlock: boolean; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A restriction on the OS type and version of devices making requests. */ interface OsConstraintResponse { /** * The minimum allowed OS version. If not set, any version of this OS satisfies the constraint. Format: `"major.minor.patch"`. Examples: `"10.5.301"`, `"9.2.1"`. */ minimumVersion: string; /** * The allowed OS type. */ osType: string; /** * Only allows requests from devices with a verified Chrome OS. Verifications includes requirements that the device is enterprise-managed, conformant to domain policies, and the caller has permission to call the API targeted by the request. */ requireVerifiedChromeOs: boolean; } /** * `ServicePerimeterConfig` specifies a set of Google Cloud resources that describe specific Service Perimeter configuration. */ interface ServicePerimeterConfigResponse { /** * A list of `AccessLevel` resource names that allow resources within the `ServicePerimeter` to be accessed from the internet. `AccessLevels` listed must be in the same policy as this `ServicePerimeter`. Referencing a nonexistent `AccessLevel` is a syntax error. If no `AccessLevel` names are listed, resources within the perimeter can only be accessed via Google Cloud calls with request origins within the perimeter. Example: `"accessPolicies/MY_POLICY/accessLevels/MY_LEVEL"`. For Service Perimeter Bridge, must be empty. */ accessLevels: string[]; /** * A list of Google Cloud resources that are inside of the service perimeter. Currently only projects are allowed. Format: `projects/{project_number}` */ resources: string[]; /** * Google Cloud services that are subject to the Service Perimeter restrictions. Must contain a list of services. For example, if `storage.googleapis.com` is specified, access to the storage buckets inside the perimeter must meet the perimeter's access restrictions. */ restrictedServices: string[]; /** * Google Cloud services that are not subject to the Service Perimeter restrictions. Deprecated. Must be set to a single wildcard "*". The wildcard means that unless explicitly specified by "restricted_services" list, any service is treated as unrestricted. * * @deprecated Google Cloud services that are not subject to the Service Perimeter restrictions. Deprecated. Must be set to a single wildcard "*". The wildcard means that unless explicitly specified by "restricted_services" list, any service is treated as unrestricted. */ unrestrictedServices: string[]; /** * Beta. Configuration for APIs allowed within Perimeter. */ vpcAccessibleServices: outputs.accesscontextmanager.v1beta.VpcAccessibleServicesResponse; } /** * Specifies how APIs are allowed to communicate within the Service Perimeter. */ interface VpcAccessibleServicesResponse { /** * The list of APIs usable within the Service Perimeter. Must be empty unless 'enable_restriction' is True. You can specify a list of individual services, as well as include the 'RESTRICTED-SERVICES' value, which automatically includes all of the services protected by the perimeter. */ allowedServices: string[]; /** * Whether to restrict API calls within the Service Perimeter to the list of APIs specified in 'allowed_services'. */ enableRestriction: boolean; } } } export declare namespace aiplatform { namespace v1 { /** * Parameters that configure the active learning pipeline. Active learning will label the data incrementally by several iterations. For every iteration, it will select a batch of data based on the sampling strategy. */ interface GoogleCloudAiplatformV1ActiveLearningConfigResponse { /** * Max number of human labeled DataItems. */ maxDataItemCount: string; /** * Max percent of total DataItems for human labeling. */ maxDataItemPercentage: number; /** * Active learning data sampling config. For every active learning labeling iteration, it will select a batch of data based on the sampling strategy. */ sampleConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1SampleConfigResponse; /** * CMLE training config. For every active learning labeling iteration, system will train a machine learning model on CMLE. The trained model will be used by data sampling algorithm to select DataItems. */ trainingConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1TrainingConfigResponse; } /** * A description of resources that to large degree are decided by Vertex AI, and require only a modest additional configuration. Each Model supporting these resources documents its specific guidelines. */ interface GoogleCloudAiplatformV1AutomaticResourcesResponse { /** * Immutable. The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, a no upper bound for scaling under heavy traffic will be assume, though Vertex AI may be unable to scale beyond certain replica number. */ maxReplicaCount: number; /** * Immutable. The minimum number of replicas this DeployedModel will be always deployed on. If traffic against it increases, it may dynamically be deployed onto more replicas up to max_replica_count, and as traffic decreases, some of these extra replicas may be freed. If the requested value is too large, the deployment will error. */ minReplicaCount: number; } /** * The metric specification that defines the target resource utilization (CPU utilization, accelerator's duty cycle, and so on) for calculating the desired replica count. */ interface GoogleCloudAiplatformV1AutoscalingMetricSpecResponse { /** * The resource metric name. Supported metrics: * For Online Prediction: * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle` * `aiplatform.googleapis.com/prediction/online/cpu/utilization` */ metricName: string; /** * The target resource utilization in percentage (1% - 100%) for the given metric; once the real usage deviates from the target by a certain percentage, the machine replicas change. The default value is 60 (representing 60%) if not provided. */ target: number; } /** * A description of resources that are used for performing batch operations, are dedicated to a Model, and need manual configuration. */ interface GoogleCloudAiplatformV1BatchDedicatedResourcesResponse { /** * Immutable. The specification of a single machine. */ machineSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1MachineSpecResponse; /** * Immutable. The maximum number of machine replicas the batch operation may be scaled to. The default value is 10. */ maxReplicaCount: number; /** * Immutable. The number of machine replicas used at the start of the batch operation. If not set, Vertex AI decides starting number, not greater than max_replica_count */ startingReplicaCount: number; } /** * Configures the input to BatchPredictionJob. See Model.supported_input_storage_formats for Model's supported input formats, and how instances should be expressed via any of them. */ interface GoogleCloudAiplatformV1BatchPredictionJobInputConfigResponse { /** * The BigQuery location of the input table. The schema of the table should be in the format described by the given context OpenAPI Schema, if one is provided. The table may contain additional columns that are not described by the schema, and they will be ignored. */ bigquerySource: outputs.aiplatform.v1.GoogleCloudAiplatformV1BigQuerySourceResponse; /** * The Cloud Storage location for the input instances. */ gcsSource: outputs.aiplatform.v1.GoogleCloudAiplatformV1GcsSourceResponse; /** * The format in which instances are given, must be one of the Model's supported_input_storage_formats. */ instancesFormat: string; } /** * Configuration defining how to transform batch prediction input instances to the instances that the Model accepts. */ interface GoogleCloudAiplatformV1BatchPredictionJobInstanceConfigResponse { /** * Fields that will be excluded in the prediction instance that is sent to the Model. Excluded will be attached to the batch prediction output if key_field is not specified. When excluded_fields is populated, included_fields must be empty. The input must be JSONL with objects at each line, CSV, BigQuery or TfRecord. */ excludedFields: string[]; /** * Fields that will be included in the prediction instance that is sent to the Model. If instance_type is `array`, the order of field names in included_fields also determines the order of the values in the array. When included_fields is populated, excluded_fields must be empty. The input must be JSONL with objects at each line, CSV, BigQuery or TfRecord. */ includedFields: string[]; /** * The format of the instance that the Model accepts. Vertex AI will convert compatible batch prediction input instance formats to the specified format. Supported values are: * `object`: Each input is converted to JSON object format. * For `bigquery`, each row is converted to an object. * For `jsonl`, each line of the JSONL input must be an object. * Does not apply to `csv`, `file-list`, `tf-record`, or `tf-record-gzip`. * `array`: Each input is converted to JSON array format. * For `bigquery`, each row is converted to an array. The order of columns is determined by the BigQuery column order, unless included_fields is populated. included_fields must be populated for specifying field orders. * For `jsonl`, if each line of the JSONL input is an object, included_fields must be populated for specifying field orders. * Does not apply to `csv`, `file-list`, `tf-record`, or `tf-record-gzip`. If not specified, Vertex AI converts the batch prediction input as follows: * For `bigquery` and `csv`, the behavior is the same as `array`. The order of columns is the same as defined in the file or table, unless included_fields is populated. * For `jsonl`, the prediction instance format is determined by each line of the input. * For `tf-record`/`tf-record-gzip`, each record will be converted to an object in the format of `{"b64": }`, where `` is the Base64-encoded string of the content of the record. * For `file-list`, each file in the list will be converted to an object in the format of `{"b64": }`, where `` is the Base64-encoded string of the content of the file. */ instanceType: string; /** * The name of the field that is considered as a key. The values identified by the key field is not included in the transformed instances that is sent to the Model. This is similar to specifying this name of the field in excluded_fields. In addition, the batch prediction output will not include the instances. Instead the output will only include the value of the key field, in a field named `key` in the output: * For `jsonl` output format, the output will have a `key` field instead of the `instance` field. * For `csv`/`bigquery` output format, the output will have have a `key` column instead of the instance feature columns. The input must be JSONL with objects at each line, CSV, BigQuery or TfRecord. */ keyField: string; } /** * Configures the output of BatchPredictionJob. See Model.supported_output_storage_formats for supported output formats, and how predictions are expressed via any of them. */ interface GoogleCloudAiplatformV1BatchPredictionJobOutputConfigResponse { /** * The BigQuery project or dataset location where the output is to be written to. If project is provided, a new dataset is created with name `prediction__` where is made BigQuery-dataset-name compatible (for example, most special characters become underscores), and timestamp is in YYYY_MM_DDThh_mm_ss_sssZ "based on ISO-8601" format. In the dataset two tables will be created, `predictions`, and `errors`. If the Model has both instance and prediction schemata defined then the tables have columns as follows: The `predictions` table contains instances for which the prediction succeeded, it has columns as per a concatenation of the Model's instance and prediction schemata. The `errors` table contains rows for which the prediction has failed, it has instance columns, as per the instance schema, followed by a single "errors" column, which as values has google.rpc.Status represented as a STRUCT, and containing only `code` and `message`. */ bigqueryDestination: outputs.aiplatform.v1.GoogleCloudAiplatformV1BigQueryDestinationResponse; /** * The Cloud Storage location of the directory where the output is to be written to. In the given directory a new directory is created. Its name is `prediction--`, where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. Inside of it files `predictions_0001.`, `predictions_0002.`, ..., `predictions_N.` are created where `` depends on chosen predictions_format, and N may equal 0001 and depends on the total number of successfully predicted instances. If the Model has both instance and prediction schemata defined then each such file contains predictions as per the predictions_format. If prediction for any instance failed (partially or completely), then an additional `errors_0001.`, `errors_0002.`,..., `errors_N.` files are created (N depends on total number of failed predictions). These files contain the failed instances, as per their schema, followed by an additional `error` field which as value has google.rpc.Status containing only `code` and `message` fields. */ gcsDestination: outputs.aiplatform.v1.GoogleCloudAiplatformV1GcsDestinationResponse; /** * The format in which Vertex AI gives the predictions, must be one of the Model's supported_output_storage_formats. */ predictionsFormat: string; } /** * Further describes this job's output. Supplements output_config. */ interface GoogleCloudAiplatformV1BatchPredictionJobOutputInfoResponse { /** * The path of the BigQuery dataset created, in `bq://projectId.bqDatasetId` format, into which the prediction output is written. */ bigqueryOutputDataset: string; /** * The name of the BigQuery table created, in `predictions_` format, into which the prediction output is written. Can be used by UI to generate the BigQuery output path, for example. */ bigqueryOutputTable: string; /** * The full path of the Cloud Storage directory created, into which the prediction output is written. */ gcsOutputDirectory: string; } /** * The BigQuery location for the output content. */ interface GoogleCloudAiplatformV1BigQueryDestinationResponse { /** * BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: * BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. */ outputUri: string; } /** * The BigQuery location for the input content. */ interface GoogleCloudAiplatformV1BigQuerySourceResponse { /** * BigQuery URI to a table, up to 2000 characters long. Accepted forms: * BigQuery path. For example: `bq://projectId.bqDatasetId.bqTableId`. */ inputUri: string; } /** * Config for blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383 */ interface GoogleCloudAiplatformV1BlurBaselineConfigResponse { /** * The standard deviation of the blur kernel for the blurred baseline. The same blurring parameter is used for both the height and the width dimension. If not set, the method defaults to the zero (i.e. black for images) baseline. */ maxBlurSigma: number; } /** * Success and error statistics of processing multiple entities (for example, DataItems or structured data rows) in batch. */ interface GoogleCloudAiplatformV1CompletionStatsResponse { /** * The number of entities for which any error was encountered. */ failedCount: string; /** * In cases when enough errors are encountered a job, pipeline, or operation may be failed as a whole. Below is the number of entities for which the processing had not been finished (either in successful or failed state). Set to -1 if the number is unknown (for example, the operation failed before the total entity number could be collected). */ incompleteCount: string; /** * The number of entities that had been processed successfully. */ successfulCount: string; /** * The number of the successful forecast points that are generated by the forecasting model. This is ONLY used by the forecasting batch prediction. */ successfulForecastPointCount: string; } /** * The spec of a Container. */ interface GoogleCloudAiplatformV1ContainerSpecResponse { /** * The arguments to be passed when starting the container. */ args: string[]; /** * The command to be invoked when the container is started. It overrides the entrypoint instruction in Dockerfile when provided. */ command: string[]; /** * Environment variables to be passed to the container. Maximum limit is 100. */ env: outputs.aiplatform.v1.GoogleCloudAiplatformV1EnvVarResponse[]; /** * The URI of a container image in the Container Registry that is to be run on each worker replica. */ imageUri: string; } /** * Instance of a general context. */ interface GoogleCloudAiplatformV1ContextResponse { /** * Timestamp when this Context was created. */ createTime: string; /** * Description of the Context */ description: string; /** * User provided display name of the Context. May be up to 128 Unicode characters. */ displayName: string; /** * An eTag used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens. */ etag: string; /** * The labels with user-defined metadata to organize your Contexts. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Context (System labels are excluded). */ labels: { [key: string]: string; }; /** * Properties of the Context. Top level metadata keys' heading and trailing spaces will be trimmed. The size of this field should not exceed 200KB. */ metadata: { [key: string]: string; }; /** * Immutable. The resource name of the Context. */ name: string; /** * A list of resource names of Contexts that are parents of this Context. A Context may have at most 10 parent_contexts. */ parentContexts: string[]; /** * The title of the schema describing the metadata. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store. */ schemaTitle: string; /** * The version of the schema in schema_name to use. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store. */ schemaVersion: string; /** * Timestamp when this Context was last updated. */ updateTime: string; } /** * Request message for PipelineService.CreatePipelineJob. */ interface GoogleCloudAiplatformV1CreatePipelineJobRequestResponse { /** * The resource name of the Location to create the PipelineJob in. Format: `projects/{project}/locations/{location}` */ parent: string; /** * The PipelineJob to create. */ pipelineJob: outputs.aiplatform.v1.GoogleCloudAiplatformV1PipelineJobResponse; /** * The ID to use for the PipelineJob, which will become the final component of the PipelineJob name. If not provided, an ID will be automatically generated. This value should be less than 128 characters, and valid characters are `/a-z-/`. */ pipelineJobId: string; } /** * Represents the spec of a CustomJob. */ interface GoogleCloudAiplatformV1CustomJobSpecResponse { /** * The Cloud Storage location to store the output of this CustomJob or HyperparameterTuningJob. For HyperparameterTuningJob, the baseOutputDirectory of each child CustomJob backing a Trial is set to a subdirectory of name id under its parent HyperparameterTuningJob's baseOutputDirectory. The following Vertex AI environment variables will be passed to containers or python modules when this field is set: For CustomJob: * AIP_MODEL_DIR = `/model/` * AIP_CHECKPOINT_DIR = `/checkpoints/` * AIP_TENSORBOARD_LOG_DIR = `/logs/` For CustomJob backing a Trial of HyperparameterTuningJob: * AIP_MODEL_DIR = `//model/` * AIP_CHECKPOINT_DIR = `//checkpoints/` * AIP_TENSORBOARD_LOG_DIR = `//logs/` */ baseOutputDirectory: outputs.aiplatform.v1.GoogleCloudAiplatformV1GcsDestinationResponse; /** * Optional. Whether you want Vertex AI to enable access to the customized dashboard in training chief container. If set to `true`, you can access the dashboard at the URIs given by CustomJob.web_access_uris or Trial.web_access_uris (within HyperparameterTuningJob.trials). */ enableDashboardAccess: boolean; /** * Optional. Whether you want Vertex AI to enable [interactive shell access](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) to training containers. If set to `true`, you can access interactive shells at the URIs given by CustomJob.web_access_uris or Trial.web_access_uris (within HyperparameterTuningJob.trials). */ enableWebAccess: boolean; /** * Optional. The Experiment associated with this job. Format: `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}` */ experiment: string; /** * Optional. The Experiment Run associated with this job. Format: `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}` */ experimentRun: string; /** * Optional. The full name of the Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the Job should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in `12345`, and {network} is a network name. To specify this field, you must have already [configured VPC Network Peering for Vertex AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering). If this field is left unspecified, the job is not peered with any network. */ network: string; /** * The ID of the location to store protected artifacts. e.g. us-central1. Populate only when the location is different than CustomJob location. List of supported locations: https://cloud.google.com/vertex-ai/docs/general/locations */ protectedArtifactLocationId: string; /** * Optional. A list of names for the reserved ip ranges under the VPC network that can be used for this job. If set, we will deploy the job within the provided ip ranges. Otherwise, the job will be deployed to any ip ranges under the provided VPC network. Example: ['vertex-ai-ip-range']. */ reservedIpRanges: string[]; /** * Scheduling options for a CustomJob. */ scheduling: outputs.aiplatform.v1.GoogleCloudAiplatformV1SchedulingResponse; /** * Specifies the service account for workload run-as account. Users submitting jobs must have act-as permission on this run-as account. If unspecified, the [Vertex AI Custom Code Service Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) for the CustomJob's project is used. */ serviceAccount: string; /** * Optional. The name of a Vertex AI Tensorboard resource to which this CustomJob will upload Tensorboard logs. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}` */ tensorboard: string; /** * The spec of the worker pools including machine type and Docker image. All worker pools except the first one are optional and can be skipped by providing an empty value. */ workerPoolSpecs: outputs.aiplatform.v1.GoogleCloudAiplatformV1WorkerPoolSpecResponse[]; } /** * A description of resources that are dedicated to a DeployedModel, and that need a higher degree of manual configuration. */ interface GoogleCloudAiplatformV1DedicatedResourcesResponse { /** * Immutable. The metric specifications that overrides a resource utilization metric (CPU utilization, accelerator's duty cycle, and so on) target value (default to 60 if not set). At most one entry is allowed per metric. If machine_spec.accelerator_count is above 0, the autoscaling will be based on both CPU utilization and accelerator's duty cycle metrics and scale up when either metrics exceeds its target value while scale down if both metrics are under their target value. The default target value is 60 for both metrics. If machine_spec.accelerator_count is 0, the autoscaling will be based on CPU utilization metric only with default target value 60 if not explicitly set. For example, in the case of Online Prediction, if you want to override target CPU utilization to 80, you should set autoscaling_metric_specs.metric_name to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and autoscaling_metric_specs.target to `80`. */ autoscalingMetricSpecs: outputs.aiplatform.v1.GoogleCloudAiplatformV1AutoscalingMetricSpecResponse[]; /** * Immutable. The specification of a single machine used by the prediction. */ machineSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1MachineSpecResponse; /** * Immutable. The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, will use min_replica_count as the default value. The value of this field impacts the charge against Vertex CPU and GPU quotas. Specifically, you will be charged for (max_replica_count * number of cores in the selected machine type) and (max_replica_count * number of GPUs per replica in the selected machine type). */ maxReplicaCount: number; /** * Immutable. The minimum number of machine replicas this DeployedModel will be always deployed on. This value must be greater than or equal to 1. If traffic against the DeployedModel increases, it may dynamically be deployed onto more replicas, and as traffic decreases, some of these extra replicas may be freed. */ minReplicaCount: number; } /** * Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). */ interface GoogleCloudAiplatformV1DeployedIndexAuthConfigAuthProviderResponse { /** * A list of allowed JWT issuers. Each entry must be a valid Google service account, in the following format: `service-account-name@project-id.iam.gserviceaccount.com` */ allowedIssuers: string[]; /** * The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. */ audiences: string[]; } /** * Used to set up the auth on the DeployedIndex's private endpoint. */ interface GoogleCloudAiplatformV1DeployedIndexAuthConfigResponse { /** * Defines the authentication provider that the DeployedIndex uses. */ authProvider: outputs.aiplatform.v1.GoogleCloudAiplatformV1DeployedIndexAuthConfigAuthProviderResponse; } /** * Points to a DeployedIndex. */ interface GoogleCloudAiplatformV1DeployedIndexRefResponse { /** * Immutable. The ID of the DeployedIndex in the above IndexEndpoint. */ deployedIndexId: string; /** * Immutable. A resource name of the IndexEndpoint. */ indexEndpoint: string; } /** * A deployment of an Index. IndexEndpoints contain one or more DeployedIndexes. */ interface GoogleCloudAiplatformV1DeployedIndexResponse { /** * Optional. A description of resources that the DeployedIndex uses, which to large degree are decided by Vertex AI, and optionally allows only a modest additional configuration. If min_replica_count is not set, the default value is 2 (we don't provide SLA when min_replica_count=1). If max_replica_count is not set, the default value is min_replica_count. The max allowed replica count is 1000. */ automaticResources: outputs.aiplatform.v1.GoogleCloudAiplatformV1AutomaticResourcesResponse; /** * Timestamp when the DeployedIndex was created. */ createTime: string; /** * Optional. A description of resources that are dedicated to the DeployedIndex, and that need a higher degree of manual configuration. The field min_replica_count must be set to a value strictly greater than 0, or else validation will fail. We don't provide SLA when min_replica_count=1. If max_replica_count is not set, the default value is min_replica_count. The max allowed replica count is 1000. Available machine types for SMALL shard: e2-standard-2 and all machine types available for MEDIUM and LARGE shard. Available machine types for MEDIUM shard: e2-standard-16 and all machine types available for LARGE shard. Available machine types for LARGE shard: e2-highmem-16, n2d-standard-32. n1-standard-16 and n1-standard-32 are still available, but we recommend e2-standard-16 and e2-highmem-16 for cost efficiency. */ dedicatedResources: outputs.aiplatform.v1.GoogleCloudAiplatformV1DedicatedResourcesResponse; /** * Optional. If set, the authentication is enabled for the private endpoint. */ deployedIndexAuthConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1DeployedIndexAuthConfigResponse; /** * Optional. The deployment group can be no longer than 64 characters (eg: 'test', 'prod'). If not set, we will use the 'default' deployment group. Creating `deployment_groups` with `reserved_ip_ranges` is a recommended practice when the peered network has multiple peering ranges. This creates your deployments from predictable IP spaces for easier traffic administration. Also, one deployment_group (except 'default') can only be used with the same reserved_ip_ranges which means if the deployment_group has been used with reserved_ip_ranges: [a, b, c], using it with [a, b] or [d, e] is disallowed. Note: we only support up to 5 deployment groups(not including 'default'). */ deploymentGroup: string; /** * The display name of the DeployedIndex. If not provided upon creation, the Index's display_name is used. */ displayName: string; /** * Optional. If true, private endpoint's access logs are sent to Cloud Logging. These logs are like standard server access logs, containing information like timestamp and latency for each MatchRequest. Note that logs may incur a cost, especially if the deployed index receives a high queries per second rate (QPS). Estimate your costs before enabling this option. */ enableAccessLogging: boolean; /** * The name of the Index this is the deployment of. We may refer to this Index as the DeployedIndex's "original" Index. */ index: string; /** * The DeployedIndex may depend on various data on its original Index. Additionally when certain changes to the original Index are being done (e.g. when what the Index contains is being changed) the DeployedIndex may be asynchronously updated in the background to reflect these changes. If this timestamp's value is at least the Index.update_time of the original Index, it means that this DeployedIndex and the original Index are in sync. If this timestamp is older, then to see which updates this DeployedIndex already contains (and which it does not), one must list the operations that are running on the original Index. Only the successfully completed Operations with update_time equal or before this sync time are contained in this DeployedIndex. */ indexSyncTime: string; /** * Provides paths for users to send requests directly to the deployed index services running on Cloud via private services access. This field is populated if network is configured. */ privateEndpoints: outputs.aiplatform.v1.GoogleCloudAiplatformV1IndexPrivateEndpointsResponse; /** * Optional. A list of reserved ip ranges under the VPC network that can be used for this DeployedIndex. If set, we will deploy the index within the provided ip ranges. Otherwise, the index might be deployed to any ip ranges under the provided VPC network. The value should be the name of the address (https://cloud.google.com/compute/docs/reference/rest/v1/addresses) Example: ['vertex-ai-ip-range']. For more information about subnets and network IP ranges, please see https://cloud.google.com/vpc/docs/subnets#manually_created_subnet_ip_ranges. */ reservedIpRanges: string[]; } /** * Points to a DeployedModel. */ interface GoogleCloudAiplatformV1DeployedModelRefResponse { /** * Immutable. An ID of a DeployedModel in the above Endpoint. */ deployedModelId: string; /** * Immutable. A resource name of an Endpoint. */ endpoint: string; } /** * A deployment of a Model. Endpoints contain one or more DeployedModels. */ interface GoogleCloudAiplatformV1DeployedModelResponse { /** * A description of resources that to large degree are decided by Vertex AI, and require only a modest additional configuration. */ automaticResources: outputs.aiplatform.v1.GoogleCloudAiplatformV1AutomaticResourcesResponse; /** * Timestamp when the DeployedModel was created. */ createTime: string; /** * A description of resources that are dedicated to the DeployedModel, and that need a higher degree of manual configuration. */ dedicatedResources: outputs.aiplatform.v1.GoogleCloudAiplatformV1DedicatedResourcesResponse; /** * For custom-trained Models and AutoML Tabular Models, the container of the DeployedModel instances will send `stderr` and `stdout` streams to Cloud Logging by default. Please note that the logs incur cost, which are subject to [Cloud Logging pricing](https://cloud.google.com/logging/pricing). User can disable container logging by setting this flag to true. */ disableContainerLogging: boolean; /** * The display name of the DeployedModel. If not provided upon creation, the Model's display_name is used. */ displayName: string; /** * If true, online prediction access logs are sent to Cloud Logging. These logs are like standard server access logs, containing information like timestamp and latency for each prediction request. Note that logs may incur a cost, especially if your project receives prediction requests at a high queries per second rate (QPS). Estimate your costs before enabling this option. */ enableAccessLogging: boolean; /** * Explanation configuration for this DeployedModel. When deploying a Model using EndpointService.DeployModel, this value overrides the value of Model.explanation_spec. All fields of explanation_spec are optional in the request. If a field of explanation_spec is not populated, the value of the same field of Model.explanation_spec is inherited. If the corresponding Model.explanation_spec is not populated, all fields of the explanation_spec will be used for the explanation configuration. */ explanationSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1ExplanationSpecResponse; /** * The resource name of the Model that this is the deployment of. Note that the Model may be in a different location than the DeployedModel's Endpoint. The resource name may contain version id or version alias to specify the version. Example: `projects/{project}/locations/{location}/models/{model}@2` or `projects/{project}/locations/{location}/models/{model}@golden` if no version is specified, the default version will be deployed. */ model: string; /** * The version ID of the model that is deployed. */ modelVersionId: string; /** * Provide paths for users to send predict/explain/health requests directly to the deployed model services running on Cloud via private services access. This field is populated if network is configured. */ privateEndpoints: outputs.aiplatform.v1.GoogleCloudAiplatformV1PrivateEndpointsResponse; /** * The service account that the DeployedModel's container runs as. Specify the email address of the service account. If this service account is not specified, the container runs as a service account that doesn't have access to the resource project. Users deploying the Model must have the `iam.serviceAccounts.actAs` permission on this service account. */ serviceAccount: string; } /** * Represents the spec of disk options. */ interface GoogleCloudAiplatformV1DiskSpecResponse { /** * Size in GB of the boot disk (default is 100GB). */ bootDiskSizeGb: number; /** * Type of the boot disk (default is "pd-ssd"). Valid values: "pd-ssd" (Persistent Disk Solid State Drive) or "pd-standard" (Persistent Disk Hard Disk Drive). */ bootDiskType: string; } /** * Represents a customer-managed encryption key spec that can be applied to a top-level resource. */ interface GoogleCloudAiplatformV1EncryptionSpecResponse { /** * The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. The key needs to be in the same region as where the compute resource is created. */ kmsKeyName: string; } /** * Represents an environment variable present in a Container or Python Module. */ interface GoogleCloudAiplatformV1EnvVarResponse { /** * Name of the environment variable. Must be a valid C identifier. */ name: string; /** * Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. */ value: string; } /** * The Cloud Storage input instances. */ interface GoogleCloudAiplatformV1ExamplesExampleGcsSourceResponse { /** * The format in which instances are given, if not specified, assume it's JSONL format. Currently only JSONL format is supported. */ dataFormat: string; /** * The Cloud Storage location for the input instances. */ gcsSource: outputs.aiplatform.v1.GoogleCloudAiplatformV1GcsSourceResponse; } /** * Example-based explainability that returns the nearest neighbors from the provided dataset. */ interface GoogleCloudAiplatformV1ExamplesResponse { /** * The Cloud Storage input instances. */ exampleGcsSource: outputs.aiplatform.v1.GoogleCloudAiplatformV1ExamplesExampleGcsSourceResponse; /** * The full configuration for the generated index, the semantics are the same as metadata and should match [NearestNeighborSearchConfig](https://cloud.google.com/vertex-ai/docs/explainable-ai/configuring-explanations-example-based#nearest-neighbor-search-config). */ nearestNeighborSearchConfig: any; /** * The number of neighbors to return when querying for examples. */ neighborCount: number; /** * Simplified preset configuration, which automatically sets configuration values based on the desired query speed-precision trade-off and modality. */ presets: outputs.aiplatform.v1.GoogleCloudAiplatformV1PresetsResponse; } /** * Instance of a general execution. */ interface GoogleCloudAiplatformV1ExecutionResponse { /** * Timestamp when this Execution was created. */ createTime: string; /** * Description of the Execution */ description: string; /** * User provided display name of the Execution. May be up to 128 Unicode characters. */ displayName: string; /** * An eTag used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens. */ etag: string; /** * The labels with user-defined metadata to organize your Executions. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Execution (System labels are excluded). */ labels: { [key: string]: string; }; /** * Properties of the Execution. Top level metadata keys' heading and trailing spaces will be trimmed. The size of this field should not exceed 200KB. */ metadata: { [key: string]: string; }; /** * The resource name of the Execution. */ name: string; /** * The title of the schema describing the metadata. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store. */ schemaTitle: string; /** * The version of the schema in `schema_title` to use. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store. */ schemaVersion: string; /** * The state of this Execution. This is a property of the Execution, and does not imply or capture any ongoing process. This property is managed by clients (such as Vertex AI Pipelines) and the system does not prescribe or check the validity of state transitions. */ state: string; /** * Timestamp when this Execution was last updated. */ updateTime: string; } /** * Metadata describing the Model's input and output for explanation. */ interface GoogleCloudAiplatformV1ExplanationMetadataResponse { /** * Points to a YAML file stored on Google Cloud Storage describing the format of the feature attributions. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML tabular Models always have this field populated by Vertex AI. Note: The URI given on output may be different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access. */ featureAttributionsSchemaUri: string; /** * Map from feature names to feature input metadata. Keys are the name of the features. Values are the specification of the feature. An empty InputMetadata is valid. It describes a text feature which has the name specified as the key in ExplanationMetadata.inputs. The baseline of the empty feature is chosen by Vertex AI. For Vertex AI-provided Tensorflow images, the key can be any friendly name of the feature. Once specified, featureAttributions are keyed by this key (if not grouped with another feature). For custom images, the key must match with the key in instance. */ inputs: { [key: string]: string; }; /** * Name of the source to generate embeddings for example based explanations. */ latentSpaceSource: string; /** * Map from output names to output metadata. For Vertex AI-provided Tensorflow images, keys can be any user defined string that consists of any UTF-8 characters. For custom images, keys are the name of the output field in the prediction to be explained. Currently only one key is allowed. */ outputs: { [key: string]: string; }; } /** * Parameters to configure explaining for Model's predictions. */ interface GoogleCloudAiplatformV1ExplanationParametersResponse { /** * Example-based explanations that returns the nearest neighbors from the provided dataset. */ examples: outputs.aiplatform.v1.GoogleCloudAiplatformV1ExamplesResponse; /** * An attribution method that computes Aumann-Shapley values taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1703.01365 */ integratedGradientsAttribution: outputs.aiplatform.v1.GoogleCloudAiplatformV1IntegratedGradientsAttributionResponse; /** * If populated, only returns attributions that have output_index contained in output_indices. It must be an ndarray of integers, with the same shape of the output it's explaining. If not populated, returns attributions for top_k indices of outputs. If neither top_k nor output_indices is populated, returns the argmax index of the outputs. Only applicable to Models that predict multiple outputs (e,g, multi-class Models that predict multiple classes). */ outputIndices: any[]; /** * An attribution method that approximates Shapley values for features that contribute to the label being predicted. A sampling strategy is used to approximate the value rather than considering all subsets of features. Refer to this paper for model details: https://arxiv.org/abs/1306.4265. */ sampledShapleyAttribution: outputs.aiplatform.v1.GoogleCloudAiplatformV1SampledShapleyAttributionResponse; /** * If populated, returns attributions for top K indices of outputs (defaults to 1). Only applies to Models that predicts more than one outputs (e,g, multi-class Models). When set to -1, returns explanations for all outputs. */ topK: number; /** * An attribution method that redistributes Integrated Gradients attribution to segmented regions, taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1906.02825 XRAI currently performs better on natural images, like a picture of a house or an animal. If the images are taken in artificial environments, like a lab or manufacturing line, or from diagnostic equipment, like x-rays or quality-control cameras, use Integrated Gradients instead. */ xraiAttribution: outputs.aiplatform.v1.GoogleCloudAiplatformV1XraiAttributionResponse; } /** * Specification of Model explanation. */ interface GoogleCloudAiplatformV1ExplanationSpecResponse { /** * Optional. Metadata describing the Model's input and output for explanation. */ metadata: outputs.aiplatform.v1.GoogleCloudAiplatformV1ExplanationMetadataResponse; /** * Parameters that configure explaining of the Model's predictions. */ parameters: outputs.aiplatform.v1.GoogleCloudAiplatformV1ExplanationParametersResponse; } /** * Input source type for BigQuery Tables and Views. */ interface GoogleCloudAiplatformV1FeatureGroupBigQueryResponse { /** * Immutable. The BigQuery source URI that points to either a BigQuery Table or View. */ bigQuerySource: outputs.aiplatform.v1.GoogleCloudAiplatformV1BigQuerySourceResponse; /** * Optional. Columns to construct entity_id / row keys. Currently only supports 1 entity_id_column. If not provided defaults to `entity_id`. */ entityIdColumns: string[]; } /** * A list of historical SnapshotAnalysis or ImportFeaturesAnalysis stats requested by user, sorted by FeatureStatsAnomaly.start_time descending. */ interface GoogleCloudAiplatformV1FeatureMonitoringStatsAnomalyResponse { /** * The stats and anomalies generated at specific timestamp. */ featureStatsAnomaly: outputs.aiplatform.v1.GoogleCloudAiplatformV1FeatureStatsAnomalyResponse; /** * The objective for each stats. */ objective: string; } /** * Noise sigma for a single feature. */ interface GoogleCloudAiplatformV1FeatureNoiseSigmaNoiseSigmaForFeatureResponse { /** * The name of the input feature for which noise sigma is provided. The features are defined in explanation metadata inputs. */ name: string; /** * This represents the standard deviation of the Gaussian kernel that will be used to add noise to the feature prior to computing gradients. Similar to noise_sigma but represents the noise added to the current feature. Defaults to 0.1. */ sigma: number; } /** * Noise sigma by features. Noise sigma represents the standard deviation of the gaussian kernel that will be used to add noise to interpolated inputs prior to computing gradients. */ interface GoogleCloudAiplatformV1FeatureNoiseSigmaResponse { /** * Noise sigma per feature. No noise is added to features that are not set. */ noiseSigma: outputs.aiplatform.v1.GoogleCloudAiplatformV1FeatureNoiseSigmaNoiseSigmaForFeatureResponse[]; } interface GoogleCloudAiplatformV1FeatureOnlineStoreBigtableAutoScalingResponse { /** * Optional. A percentage of the cluster's CPU capacity. Can be from 10% to 80%. When a cluster's CPU utilization exceeds the target that you have set, Bigtable immediately adds nodes to the cluster. When CPU utilization is substantially lower than the target, Bigtable removes nodes. If not set will default to 50%. */ cpuUtilizationTarget: number; /** * The maximum number of nodes to scale up to. Must be greater than or equal to min_node_count, and less than or equal to 10 times of 'min_node_count'. */ maxNodeCount: number; /** * The minimum number of nodes to scale down to. Must be greater than or equal to 1. */ minNodeCount: number; } interface GoogleCloudAiplatformV1FeatureOnlineStoreBigtableResponse { /** * Autoscaling config applied to Bigtable Instance. */ autoScaling: outputs.aiplatform.v1.GoogleCloudAiplatformV1FeatureOnlineStoreBigtableAutoScalingResponse; } /** * Stats and Anomaly generated at specific timestamp for specific Feature. The start_time and end_time are used to define the time range of the dataset that current stats belongs to, e.g. prediction traffic is bucketed into prediction datasets by time window. If the Dataset is not defined by time window, start_time = end_time. Timestamp of the stats and anomalies always refers to end_time. Raw stats and anomalies are stored in stats_uri or anomaly_uri in the tensorflow defined protos. Field data_stats contains almost identical information with the raw stats in Vertex AI defined proto, for UI to display. */ interface GoogleCloudAiplatformV1FeatureStatsAnomalyResponse { /** * This is the threshold used when detecting anomalies. The threshold can be changed by user, so this one might be different from ThresholdConfig.value. */ anomalyDetectionThreshold: number; /** * Path of the anomaly file for current feature values in Cloud Storage bucket. Format: gs:////anomalies. Example: gs://monitoring_bucket/feature_name/anomalies. Stats are stored as binary format with Protobuf message Anoamlies are stored as binary format with Protobuf message [tensorflow.metadata.v0.AnomalyInfo] (https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/anomalies.proto). */ anomalyUri: string; /** * Deviation from the current stats to baseline stats. 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence. */ distributionDeviation: number; /** * The end timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), end_time indicates the timestamp of the data used to generate stats (e.g. timestamp we take snapshots for feature values). */ endTime: string; /** * Feature importance score, only populated when cross-feature monitoring is enabled. For now only used to represent feature attribution score within range [0, 1] for ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_SKEW and ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_DRIFT. */ score: number; /** * The start timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), start_time is only used to indicate the monitoring intervals, so it always equals to (end_time - monitoring_interval). */ startTime: string; /** * Path of the stats file for current feature values in Cloud Storage bucket. Format: gs:////stats. Example: gs://monitoring_bucket/feature_name/stats. Stats are stored as binary format with Protobuf message [tensorflow.metadata.v0.FeatureNameStatistics](https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/statistics.proto). */ statsUri: string; } interface GoogleCloudAiplatformV1FeatureViewBigQuerySourceResponse { /** * Columns to construct entity_id / row keys. Start by supporting 1 only. */ entityIdColumns: string[]; /** * The BigQuery view URI that will be materialized on each sync trigger based on FeatureView.SyncConfig. */ uri: string; } /** * Features belonging to a single feature group that will be synced to Online Store. */ interface GoogleCloudAiplatformV1FeatureViewFeatureRegistrySourceFeatureGroupResponse { /** * Identifier of the feature group. */ featureGroupId: string; /** * Identifiers of features under the feature group. */ featureIds: string[]; } /** * A Feature Registry source for features that need to be synced to Online Store. */ interface GoogleCloudAiplatformV1FeatureViewFeatureRegistrySourceResponse { /** * List of features that need to be synced to Online Store. */ featureGroups: outputs.aiplatform.v1.GoogleCloudAiplatformV1FeatureViewFeatureRegistrySourceFeatureGroupResponse[]; } interface GoogleCloudAiplatformV1FeatureViewSyncConfigResponse { /** * Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled runs. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or "TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, "CRON_TZ=America/New_York 1 * * * *", or "TZ=America/New_York 1 * * * *". */ cron: string; } /** * Configuration of the Featurestore's ImportFeature Analysis Based Monitoring. This type of analysis generates statistics for values of each Feature imported by every ImportFeatureValues operation. */ interface GoogleCloudAiplatformV1FeaturestoreMonitoringConfigImportFeaturesAnalysisResponse { /** * The baseline used to do anomaly detection for the statistics generated by import features analysis. */ anomalyDetectionBaseline: string; /** * Whether to enable / disable / inherite default hebavior for import features analysis. */ state: string; } /** * Configuration of how features in Featurestore are monitored. */ interface GoogleCloudAiplatformV1FeaturestoreMonitoringConfigResponse { /** * Threshold for categorical features of anomaly detection. This is shared by all types of Featurestore Monitoring for categorical features (i.e. Features with type (Feature.ValueType) BOOL or STRING). */ categoricalThresholdConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfigResponse; /** * The config for ImportFeatures Analysis Based Feature Monitoring. */ importFeaturesAnalysis: outputs.aiplatform.v1.GoogleCloudAiplatformV1FeaturestoreMonitoringConfigImportFeaturesAnalysisResponse; /** * Threshold for numerical features of anomaly detection. This is shared by all objectives of Featurestore Monitoring for numerical features (i.e. Features with type (Feature.ValueType) DOUBLE or INT64). */ numericalThresholdConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfigResponse; /** * The config for Snapshot Analysis Based Feature Monitoring. */ snapshotAnalysis: outputs.aiplatform.v1.GoogleCloudAiplatformV1FeaturestoreMonitoringConfigSnapshotAnalysisResponse; } /** * Configuration of the Featurestore's Snapshot Analysis Based Monitoring. This type of analysis generates statistics for each Feature based on a snapshot of the latest feature value of each entities every monitoring_interval. */ interface GoogleCloudAiplatformV1FeaturestoreMonitoringConfigSnapshotAnalysisResponse { /** * The monitoring schedule for snapshot analysis. For EntityType-level config: unset / disabled = true indicates disabled by default for Features under it; otherwise by default enable snapshot analysis monitoring with monitoring_interval for Features under it. Feature-level config: disabled = true indicates disabled regardless of the EntityType-level config; unset monitoring_interval indicates going with EntityType-level config; otherwise run snapshot analysis monitoring with monitoring_interval regardless of the EntityType-level config. Explicitly Disable the snapshot analysis based monitoring. */ disabled: boolean; /** * Configuration of the snapshot analysis based monitoring pipeline running interval. The value indicates number of days. */ monitoringIntervalDays: number; /** * Customized export features time window for snapshot analysis. Unit is one day. Default value is 3 weeks. Minimum value is 1 day. Maximum value is 4000 days. */ stalenessDays: number; } /** * The config for Featurestore Monitoring threshold. */ interface GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfigResponse { /** * Specify a threshold value that can trigger the alert. 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence. Each feature must have a non-zero threshold if they need to be monitored. Otherwise no alert will be triggered for that feature. */ value: number; } /** * OnlineServingConfig specifies the details for provisioning online serving resources. */ interface GoogleCloudAiplatformV1FeaturestoreOnlineServingConfigResponse { /** * The number of nodes for the online store. The number of nodes doesn't scale automatically, but you can manually update the number of nodes. If set to 0, the featurestore will not have an online store and cannot be used for online serving. */ fixedNodeCount: number; /** * Online serving scaling configuration. Only one of `fixed_node_count` and `scaling` can be set. Setting one will reset the other. */ scaling: outputs.aiplatform.v1.GoogleCloudAiplatformV1FeaturestoreOnlineServingConfigScalingResponse; } /** * Online serving scaling configuration. If min_node_count and max_node_count are set to the same value, the cluster will be configured with the fixed number of node (no auto-scaling). */ interface GoogleCloudAiplatformV1FeaturestoreOnlineServingConfigScalingResponse { /** * Optional. The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80. When a cluster's CPU utilization exceeds the target that you have set, Bigtable immediately adds nodes to the cluster. When CPU utilization is substantially lower than the target, Bigtable removes nodes. If not set or set to 0, default to 50. */ cpuUtilizationTarget: number; /** * The maximum number of nodes to scale up to. Must be greater than min_node_count, and less than or equal to 10 times of 'min_node_count'. */ maxNodeCount: number; /** * The minimum number of nodes to scale down to. Must be greater than or equal to 1. */ minNodeCount: number; } /** * Assigns input data to training, validation, and test sets based on the given filters, data pieces not matched by any filter are ignored. Currently only supported for Datasets containing DataItems. If any of the filters in this message are to match nothing, then they can be set as '-' (the minus sign). Supported only for unstructured Datasets. */ interface GoogleCloudAiplatformV1FilterSplitResponse { /** * A filter on DataItems of the Dataset. DataItems that match this filter are used to test the Model. A filter with same syntax as the one used in DatasetService.ListDataItems may be used. If a single DataItem is matched by more than one of the FilterSplit filters, then it is assigned to the first set that applies to it in the training, validation, test order. */ testFilter: string; /** * A filter on DataItems of the Dataset. DataItems that match this filter are used to train the Model. A filter with same syntax as the one used in DatasetService.ListDataItems may be used. If a single DataItem is matched by more than one of the FilterSplit filters, then it is assigned to the first set that applies to it in the training, validation, test order. */ trainingFilter: string; /** * A filter on DataItems of the Dataset. DataItems that match this filter are used to validate the Model. A filter with same syntax as the one used in DatasetService.ListDataItems may be used. If a single DataItem is matched by more than one of the FilterSplit filters, then it is assigned to the first set that applies to it in the training, validation, test order. */ validationFilter: string; } /** * Assigns the input data to training, validation, and test sets as per the given fractions. Any of `training_fraction`, `validation_fraction` and `test_fraction` may optionally be provided, they must sum to up to 1. If the provided ones sum to less than 1, the remainder is assigned to sets as decided by Vertex AI. If none of the fractions are set, by default roughly 80% of data is used for training, 10% for validation, and 10% for test. */ interface GoogleCloudAiplatformV1FractionSplitResponse { /** * The fraction of the input data that is to be used to evaluate the Model. */ testFraction: number; /** * The fraction of the input data that is to be used to train the Model. */ trainingFraction: number; /** * The fraction of the input data that is to be used to validate the Model. */ validationFraction: number; } /** * The Google Cloud Storage location where the output is to be written to. */ interface GoogleCloudAiplatformV1GcsDestinationResponse { /** * Google Cloud Storage URI to output directory. If the uri doesn't end with '/', a '/' will be automatically appended. The directory is created if it doesn't exist. */ outputUriPrefix: string; } /** * The Google Cloud Storage location for the input content. */ interface GoogleCloudAiplatformV1GcsSourceResponse { /** * Google Cloud Storage URI(-s) to the input file(s). May contain wildcards. For more information on wildcards, see https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames. */ uris: string[]; } /** * IndexPrivateEndpoints proto is used to provide paths for users to send requests via private endpoints (e.g. private service access, private service connect). To send request via private service access, use match_grpc_address. To send request via private service connect, use service_attachment. */ interface GoogleCloudAiplatformV1IndexPrivateEndpointsResponse { /** * The ip address used to send match gRPC requests. */ matchGrpcAddress: string; /** * The name of the service attachment resource. Populated if private service connect is enabled. */ serviceAttachment: string; } /** * Stats of the Index. */ interface GoogleCloudAiplatformV1IndexStatsResponse { /** * The number of shards in the Index. */ shardsCount: number; /** * The number of vectors in the Index. */ vectorsCount: string; } /** * Specifies Vertex AI owned input data to be used for training, and possibly evaluating, the Model. */ interface GoogleCloudAiplatformV1InputDataConfigResponse { /** * Applicable only to custom training with Datasets that have DataItems and Annotations. Cloud Storage URI that points to a YAML file describing the annotation schema. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/annotation/ , note that the chosen schema must be consistent with metadata of the Dataset specified by dataset_id. Only Annotations that both match this schema and belong to DataItems not ignored by the split method are used in respectively training, validation or test role, depending on the role of the DataItem they are on. When used in conjunction with annotations_filter, the Annotations used for training are filtered by both annotations_filter and annotation_schema_uri. */ annotationSchemaUri: string; /** * Applicable only to Datasets that have DataItems and Annotations. A filter on Annotations of the Dataset. Only Annotations that both match this filter and belong to DataItems not ignored by the split method are used in respectively training, validation or test role, depending on the role of the DataItem they are on (for the auto-assigned that role is decided by Vertex AI). A filter with same syntax as the one used in ListAnnotations may be used, but note here it filters across all Annotations of the Dataset, and not just within a single DataItem. */ annotationsFilter: string; /** * Only applicable to custom training with tabular Dataset with BigQuery source. The BigQuery project location where the training data is to be written to. In the given project a new dataset is created with name `dataset___` where timestamp is in YYYY_MM_DDThh_mm_ss_sssZ format. All training input data is written into that dataset. In the dataset three tables are created, `training`, `validation` and `test`. * AIP_DATA_FORMAT = "bigquery". * AIP_TRAINING_DATA_URI = "bigquery_destination.dataset___.training" * AIP_VALIDATION_DATA_URI = "bigquery_destination.dataset___.validation" * AIP_TEST_DATA_URI = "bigquery_destination.dataset___.test" */ bigqueryDestination: outputs.aiplatform.v1.GoogleCloudAiplatformV1BigQueryDestinationResponse; /** * The ID of the Dataset in the same Project and Location which data will be used to train the Model. The Dataset must use schema compatible with Model being trained, and what is compatible should be described in the used TrainingPipeline's training_task_definition. For tabular Datasets, all their data is exported to training, to pick and choose from. */ datasetId: string; /** * Split based on the provided filters for each set. */ filterSplit: outputs.aiplatform.v1.GoogleCloudAiplatformV1FilterSplitResponse; /** * Split based on fractions defining the size of each set. */ fractionSplit: outputs.aiplatform.v1.GoogleCloudAiplatformV1FractionSplitResponse; /** * The Cloud Storage location where the training data is to be written to. In the given directory a new directory is created with name: `dataset---` where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. All training input data is written into that directory. The Vertex AI environment variables representing Cloud Storage data URIs are represented in the Cloud Storage wildcard format to support sharded data. e.g.: "gs://.../training-*.jsonl" * AIP_DATA_FORMAT = "jsonl" for non-tabular data, "csv" for tabular data * AIP_TRAINING_DATA_URI = "gcs_destination/dataset---/training-*.${AIP_DATA_FORMAT}" * AIP_VALIDATION_DATA_URI = "gcs_destination/dataset---/validation-*.${AIP_DATA_FORMAT}" * AIP_TEST_DATA_URI = "gcs_destination/dataset---/test-*.${AIP_DATA_FORMAT}" */ gcsDestination: outputs.aiplatform.v1.GoogleCloudAiplatformV1GcsDestinationResponse; /** * Whether to persist the ML use assignment to data item system labels. */ persistMlUseAssignment: boolean; /** * Supported only for tabular Datasets. Split based on a predefined key. */ predefinedSplit: outputs.aiplatform.v1.GoogleCloudAiplatformV1PredefinedSplitResponse; /** * Only applicable to Datasets that have SavedQueries. The ID of a SavedQuery (annotation set) under the Dataset specified by dataset_id used for filtering Annotations for training. Only Annotations that are associated with this SavedQuery are used in respectively training. When used in conjunction with annotations_filter, the Annotations used for training are filtered by both saved_query_id and annotations_filter. Only one of saved_query_id and annotation_schema_uri should be specified as both of them represent the same thing: problem type. */ savedQueryId: string; /** * Supported only for tabular Datasets. Split based on the distribution of the specified column. */ stratifiedSplit: outputs.aiplatform.v1.GoogleCloudAiplatformV1StratifiedSplitResponse; /** * Supported only for tabular Datasets. Split based on the timestamp of the input data pieces. */ timestampSplit: outputs.aiplatform.v1.GoogleCloudAiplatformV1TimestampSplitResponse; } /** * An attribution method that computes the Aumann-Shapley value taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1703.01365 */ interface GoogleCloudAiplatformV1IntegratedGradientsAttributionResponse { /** * Config for IG with blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383 */ blurBaselineConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1BlurBaselineConfigResponse; /** * Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf */ smoothGradConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1SmoothGradConfigResponse; /** * The number of steps for approximating the path integral. A good value to start is 50 and gradually increase until the sum to diff property is within the desired error range. Valid range of its value is [1, 100], inclusively. */ stepCount: number; } /** * Specification of a single machine. */ interface GoogleCloudAiplatformV1MachineSpecResponse { /** * The number of accelerators to attach to the machine. */ acceleratorCount: number; /** * Immutable. The type of accelerator(s) that may be attached to the machine as per accelerator_count. */ acceleratorType: string; /** * Immutable. The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). For DeployedModel this field is optional, and the default value is `n1-standard-2`. For BatchPredictionJob or as part of WorkerPoolSpec this field is required. */ machineType: string; /** * Immutable. The topology of the TPUs. Corresponds to the TPU topologies available from GKE. (Example: tpu_topology: "2x2x1"). */ tpuTopology: string; } /** * Manual batch tuning parameters. */ interface GoogleCloudAiplatformV1ManualBatchTuningParametersResponse { /** * Immutable. The number of the records (e.g. instances) of the operation given in each batch to a machine replica. Machine type, and size of a single record should be considered when setting this parameter, higher value speeds up the batch operation's execution, but too high value will result in a whole batch not fitting in a machine's memory, and the whole operation will fail. The default value is 64. */ batchSize: number; } /** * A message representing a metric in the measurement. */ interface GoogleCloudAiplatformV1MeasurementMetricResponse { /** * The ID of the Metric. The Metric should be defined in StudySpec's Metrics. */ metricId: string; /** * The value for this metric. */ value: number; } /** * A message representing a Measurement of a Trial. A Measurement contains the Metrics got by executing a Trial using suggested hyperparameter values. */ interface GoogleCloudAiplatformV1MeasurementResponse { /** * Time that the Trial has been running at the point of this Measurement. */ elapsedDuration: string; /** * A list of metrics got by evaluating the objective functions using suggested Parameter values. */ metrics: outputs.aiplatform.v1.GoogleCloudAiplatformV1MeasurementMetricResponse[]; /** * The number of steps the machine learning model has been trained for. Must be non-negative. */ stepCount: string; } /** * Represents state information for a MetadataStore. */ interface GoogleCloudAiplatformV1MetadataStoreMetadataStoreStateResponse { /** * The disk utilization of the MetadataStore in bytes. */ diskUtilizationBytes: string; } /** * Specification of a container for serving predictions. Some fields in this message correspond to fields in the [Kubernetes Container v1 core specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). */ interface GoogleCloudAiplatformV1ModelContainerSpecResponse { /** * Immutable. Specifies arguments for the command that runs when the container starts. This overrides the container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). Specify this field as an array of executable and arguments, similar to a Docker `CMD`'s "default parameters" form. If you don't specify this field but do specify the command field, then the command from the `command` field runs without any additional arguments. See the [Kubernetes documentation about how the `command` and `args` fields interact with a container's `ENTRYPOINT` and `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). If you don't specify this field and don't specify the `command` field, then the container's [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#cmd) and `CMD` determine what runs based on their default behavior. See the Docker documentation about [how `CMD` and `ENTRYPOINT` interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). In this field, you can reference [environment variables set by Vertex AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) and environment variables set in the env field. You cannot reference environment variables set in the Docker image. In order for environment variables to be expanded, reference them by using the following syntax: $( VARIABLE_NAME) Note that this differs from Bash variable expansion, which does not use parentheses. If a variable cannot be resolved, the reference in the input string is used unchanged. To avoid variable expansion, you can escape this syntax with `$$`; for example: $$(VARIABLE_NAME) This field corresponds to the `args` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). */ args: string[]; /** * Immutable. Specifies the command that runs when the container starts. This overrides the container's [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint). Specify this field as an array of executable and arguments, similar to a Docker `ENTRYPOINT`'s "exec" form, not its "shell" form. If you do not specify this field, then the container's `ENTRYPOINT` runs, in conjunction with the args field or the container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd), if either exists. If this field is not specified and the container does not have an `ENTRYPOINT`, then refer to the Docker documentation about [how `CMD` and `ENTRYPOINT` interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). If you specify this field, then you can also specify the `args` field to provide additional arguments for this command. However, if you specify this field, then the container's `CMD` is ignored. See the [Kubernetes documentation about how the `command` and `args` fields interact with a container's `ENTRYPOINT` and `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). In this field, you can reference [environment variables set by Vertex AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) and environment variables set in the env field. You cannot reference environment variables set in the Docker image. In order for environment variables to be expanded, reference them by using the following syntax: $( VARIABLE_NAME) Note that this differs from Bash variable expansion, which does not use parentheses. If a variable cannot be resolved, the reference in the input string is used unchanged. To avoid variable expansion, you can escape this syntax with `$$`; for example: $$(VARIABLE_NAME) This field corresponds to the `command` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). */ command: string[]; /** * Immutable. Deployment timeout. TODO (b/306244185): Revise documentation before exposing. */ deploymentTimeout: string; /** * Immutable. List of environment variables to set in the container. After the container starts running, code running in the container can read these environment variables. Additionally, the command and args fields can reference these variables. Later entries in this list can also reference earlier entries. For example, the following example sets the variable `VAR_2` to have the value `foo bar`: ```json [ { "name": "VAR_1", "value": "foo" }, { "name": "VAR_2", "value": "$(VAR_1) bar" } ] ``` If you switch the order of the variables in the example, then the expansion does not occur. This field corresponds to the `env` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). */ env: outputs.aiplatform.v1.GoogleCloudAiplatformV1EnvVarResponse[]; /** * Immutable. Specification for Kubernetes readiness probe. TODO (b/306244185): Revise documentation before exposing. */ healthProbe: outputs.aiplatform.v1.GoogleCloudAiplatformV1ProbeResponse; /** * Immutable. HTTP path on the container to send health checks to. Vertex AI intermittently sends GET requests to this path on the container's IP address and port to check that the container is healthy. Read more about [health checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health). For example, if you set this field to `/bar`, then Vertex AI intermittently sends a GET request to the `/bar` path on the port of your container specified by the first value of this `ModelContainerSpec`'s ports field. If you don't specify this field, it defaults to the following value when you deploy this Model to an Endpoint: /v1/endpoints/ENDPOINT/deployedModels/ DEPLOYED_MODEL:predict The placeholders in this value are replaced as follows: * ENDPOINT: The last segment (following `endpoints/`)of the Endpoint.name][] field of the Endpoint where this Model has been deployed. (Vertex AI makes this value available to your container code as the [`AIP_ENDPOINT_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`. (Vertex AI makes this value available to your container code as the [`AIP_DEPLOYED_MODEL_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) */ healthRoute: string; /** * Immutable. URI of the Docker image to be used as the custom container for serving predictions. This URI must identify an image in Artifact Registry or Container Registry. Learn more about the [container publishing requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing), including permissions requirements for the Vertex AI Service Agent. The container image is ingested upon ModelService.UploadModel, stored internally, and this original path is afterwards not used. To learn about the requirements for the Docker image itself, see [Custom container requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#). You can use the URI to one of Vertex AI's [pre-built container images for prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers) in this field. */ imageUri: string; /** * Immutable. List of ports to expose from the container. Vertex AI sends any prediction requests that it receives to the first port on this list. Vertex AI also sends [liveness and health checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#liveness) to this port. If you do not specify this field, it defaults to following value: ```json [ { "containerPort": 8080 } ] ``` Vertex AI does not use ports other than the first one listed. This field corresponds to the `ports` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). */ ports: outputs.aiplatform.v1.GoogleCloudAiplatformV1PortResponse[]; /** * Immutable. HTTP path on the container to send prediction requests to. Vertex AI forwards requests sent using projects.locations.endpoints.predict to this path on the container's IP address and port. Vertex AI then returns the container's response in the API response. For example, if you set this field to `/foo`, then when Vertex AI receives a prediction request, it forwards the request body in a POST request to the `/foo` path on the port of your container specified by the first value of this `ModelContainerSpec`'s ports field. If you don't specify this field, it defaults to the following value when you deploy this Model to an Endpoint: /v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict The placeholders in this value are replaced as follows: * ENDPOINT: The last segment (following `endpoints/`)of the Endpoint.name][] field of the Endpoint where this Model has been deployed. (Vertex AI makes this value available to your container code as the [`AIP_ENDPOINT_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`. (Vertex AI makes this value available to your container code as the [`AIP_DEPLOYED_MODEL_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) */ predictRoute: string; /** * Immutable. The amount of the VM memory to reserve as the shared memory for the model in megabytes. TODO (b/306244185): Revise documentation before exposing. */ sharedMemorySizeMb: string; /** * Immutable. Specification for Kubernetes startup probe. TODO (b/306244185): Revise documentation before exposing. */ startupProbe: outputs.aiplatform.v1.GoogleCloudAiplatformV1ProbeResponse; } /** * ModelDeploymentMonitoringBigQueryTable specifies the BigQuery table name as well as some information of the logs stored in this table. */ interface GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTableResponse { /** * The created BigQuery table to store logs. Customer could do their own query & analysis. Format: `bq://.model_deployment_monitoring_._` */ bigqueryTablePath: string; /** * The source of log. */ logSource: string; /** * The type of log. */ logType: string; } /** * All metadata of most recent monitoring pipelines. */ interface GoogleCloudAiplatformV1ModelDeploymentMonitoringJobLatestMonitoringPipelineMetadataResponse { /** * The time that most recent monitoring pipelines that is related to this run. */ runTime: string; /** * The status of the most recent monitoring pipeline. */ status: outputs.aiplatform.v1.GoogleRpcStatusResponse; } /** * ModelDeploymentMonitoringObjectiveConfig contains the pair of deployed_model_id to ModelMonitoringObjectiveConfig. */ interface GoogleCloudAiplatformV1ModelDeploymentMonitoringObjectiveConfigResponse { /** * The DeployedModel ID of the objective config. */ deployedModelId: string; /** * The objective config of for the modelmonitoring job of this deployed model. */ objectiveConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigResponse; } /** * The config for scheduling monitoring job. */ interface GoogleCloudAiplatformV1ModelDeploymentMonitoringScheduleConfigResponse { /** * The model monitoring job scheduling interval. It will be rounded up to next full hour. This defines how often the monitoring jobs are triggered. */ monitorInterval: string; /** * The time window of the prediction data being included in each prediction dataset. This window specifies how long the data should be collected from historical model results for each run. If not set, ModelDeploymentMonitoringScheduleConfig.monitor_interval will be used. e.g. If currently the cutoff time is 2022-01-08 14:30:00 and the monitor_window is set to be 3600, then data from 2022-01-08 13:30:00 to 2022-01-08 14:30:00 will be retrieved and aggregated to calculate the monitoring statistics. */ monitorWindow: string; } /** * Represents export format supported by the Model. All formats export to Google Cloud Storage. */ interface GoogleCloudAiplatformV1ModelExportFormatResponse { /** * The content of this Model that may be exported. */ exportableContents: string[]; } /** * The config for email alert. */ interface GoogleCloudAiplatformV1ModelMonitoringAlertConfigEmailAlertConfigResponse { /** * The email addresses to send the alert. */ userEmails: string[]; } interface GoogleCloudAiplatformV1ModelMonitoringAlertConfigResponse { /** * Email alert config. */ emailAlertConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelMonitoringAlertConfigEmailAlertConfigResponse; /** * Dump the anomalies to Cloud Logging. The anomalies will be put to json payload encoded from proto google.cloud.aiplatform.logging.ModelMonitoringAnomaliesLogEntry. This can be further sinked to Pub/Sub or any other services supported by Cloud Logging. */ enableLogging: boolean; /** * Resource names of the NotificationChannels to send alert. Must be of the format `projects//notificationChannels/` */ notificationChannels: string[]; } /** * Output from BatchPredictionJob for Model Monitoring baseline dataset, which can be used to generate baseline attribution scores. */ interface GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfigExplanationBaselineResponse { /** * BigQuery location for BatchExplain output. */ bigquery: outputs.aiplatform.v1.GoogleCloudAiplatformV1BigQueryDestinationResponse; /** * Cloud Storage location for BatchExplain output. */ gcs: outputs.aiplatform.v1.GoogleCloudAiplatformV1GcsDestinationResponse; /** * The storage format of the predictions generated BatchPrediction job. */ predictionFormat: string; } /** * The config for integrating with Vertex Explainable AI. Only applicable if the Model has explanation_spec populated. */ interface GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfigResponse { /** * If want to analyze the Vertex Explainable AI feature attribute scores or not. If set to true, Vertex AI will log the feature attributions from explain response and do the skew/drift detection for them. */ enableFeatureAttributes: boolean; /** * Predictions generated by the BatchPredictionJob using baseline dataset. */ explanationBaseline: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfigExplanationBaselineResponse; } /** * The config for Prediction data drift detection. */ interface GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigPredictionDriftDetectionConfigResponse { /** * Key is the feature name and value is the threshold. The threshold here is against attribution score distance between different time windows. */ attributionScoreDriftThresholds: { [key: string]: string; }; /** * Drift anomaly detection threshold used by all features. When the per-feature thresholds are not set, this field can be used to specify a threshold for all features. */ defaultDriftThreshold: outputs.aiplatform.v1.GoogleCloudAiplatformV1ThresholdConfigResponse; /** * Key is the feature name and value is the threshold. If a feature needs to be monitored for drift, a value threshold must be configured for that feature. The threshold here is against feature distribution distance between different time windws. */ driftThresholds: { [key: string]: string; }; } /** * The objective configuration for model monitoring, including the information needed to detect anomalies for one particular model. */ interface GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigResponse { /** * The config for integrating with Vertex Explainable AI. */ explanationConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfigResponse; /** * The config for drift of prediction data. */ predictionDriftDetectionConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigPredictionDriftDetectionConfigResponse; /** * Training dataset for models. This field has to be set only if TrainingPredictionSkewDetectionConfig is specified. */ trainingDataset: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingDatasetResponse; /** * The config for skew between training data and prediction data. */ trainingPredictionSkewDetectionConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingPredictionSkewDetectionConfigResponse; } /** * Training Dataset information. */ interface GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingDatasetResponse { /** * The BigQuery table of the unmanaged Dataset used to train this Model. */ bigquerySource: outputs.aiplatform.v1.GoogleCloudAiplatformV1BigQuerySourceResponse; /** * Data format of the dataset, only applicable if the input is from Google Cloud Storage. The possible formats are: "tf-record" The source file is a TFRecord file. "csv" The source file is a CSV file. "jsonl" The source file is a JSONL file. */ dataFormat: string; /** * The resource name of the Dataset used to train this Model. */ dataset: string; /** * The Google Cloud Storage uri of the unmanaged Dataset used to train this Model. */ gcsSource: outputs.aiplatform.v1.GoogleCloudAiplatformV1GcsSourceResponse; /** * Strategy to sample data from Training Dataset. If not set, we process the whole dataset. */ loggingSamplingStrategy: outputs.aiplatform.v1.GoogleCloudAiplatformV1SamplingStrategyResponse; /** * The target field name the model is to predict. This field will be excluded when doing Predict and (or) Explain for the training data. */ targetField: string; } /** * The config for Training & Prediction data skew detection. It specifies the training dataset sources and the skew detection parameters. */ interface GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingPredictionSkewDetectionConfigResponse { /** * Key is the feature name and value is the threshold. The threshold here is against attribution score distance between the training and prediction feature. */ attributionScoreSkewThresholds: { [key: string]: string; }; /** * Skew anomaly detection threshold used by all features. When the per-feature thresholds are not set, this field can be used to specify a threshold for all features. */ defaultSkewThreshold: outputs.aiplatform.v1.GoogleCloudAiplatformV1ThresholdConfigResponse; /** * Key is the feature name and value is the threshold. If a feature needs to be monitored for skew, a value threshold must be configured for that feature. The threshold here is against feature distribution distance between the training and prediction feature. */ skewThresholds: { [key: string]: string; }; } /** * Contains information about the original Model if this Model is a copy. */ interface GoogleCloudAiplatformV1ModelOriginalModelInfoResponse { /** * The resource name of the Model this Model is a copy of, including the revision. Format: `projects/{project}/locations/{location}/models/{model_id}@{version_id}` */ model: string; } /** * A trained machine learning Model. */ interface GoogleCloudAiplatformV1ModelResponse { /** * Immutable. The path to the directory containing the Model artifact and any of its supporting files. Not present for AutoML Models or Large Models. */ artifactUri: string; /** * Input only. The specification of the container that is to be used when deploying this Model. The specification is ingested upon ModelService.UploadModel, and all binaries it contains are copied and stored internally by Vertex AI. Not present for AutoML Models or Large Models. */ containerSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelContainerSpecResponse; /** * Timestamp when this Model was uploaded into Vertex AI. */ createTime: string; /** * The pointers to DeployedModels created from this Model. Note that Model could have been deployed to Endpoints in different Locations. */ deployedModels: outputs.aiplatform.v1.GoogleCloudAiplatformV1DeployedModelRefResponse[]; /** * The description of the Model. */ description: string; /** * The display name of the Model. The name can be up to 128 characters long and can consist of any UTF-8 characters. */ displayName: string; /** * Customer-managed encryption key spec for a Model. If set, this Model and all sub-resources of this Model will be secured by this key. */ encryptionSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1EncryptionSpecResponse; /** * Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens. */ etag: string; /** * The default explanation specification for this Model. The Model can be used for requesting explanation after being deployed if it is populated. The Model can be used for batch explanation if it is populated. All fields of the explanation_spec can be overridden by explanation_spec of DeployModelRequest.deployed_model, or explanation_spec of BatchPredictionJob. If the default explanation specification is not set for this Model, this Model can still be used for requesting explanation by setting explanation_spec of DeployModelRequest.deployed_model and for batch explanation by setting explanation_spec of BatchPredictionJob. */ explanationSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1ExplanationSpecResponse; /** * The labels with user-defined metadata to organize your Models. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. */ labels: { [key: string]: string; }; /** * Immutable. An additional information about the Model; the schema of the metadata can be found in metadata_schema. Unset if the Model does not have any additional information. */ metadata: any; /** * The resource name of the Artifact that was created in MetadataStore when creating the Model. The Artifact resource name pattern is `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`. */ metadataArtifact: string; /** * Immutable. Points to a YAML file stored on Google Cloud Storage describing additional information about the Model, that is specific to it. Unset if the Model does not have any additional information. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI, if no additional metadata is needed, this field is set to an empty string. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access. */ metadataSchemaUri: string; /** * Source of a model. It can either be automl training pipeline, custom training pipeline, BigQuery ML, or existing Vertex AI Model. */ modelSourceInfo: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelSourceInfoResponse; /** * The resource name of the Model. */ name: string; /** * If this Model is a copy of another Model, this contains info about the original. */ originalModelInfo: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelOriginalModelInfoResponse; /** * Optional. This field is populated if the model is produced by a pipeline job. */ pipelineJob: string; /** * The schemata that describe formats of the Model's predictions and explanations as given and returned via PredictionService.Predict and PredictionService.Explain. */ predictSchemata: outputs.aiplatform.v1.GoogleCloudAiplatformV1PredictSchemataResponse; /** * When this Model is deployed, its prediction resources are described by the `prediction_resources` field of the Endpoint.deployed_models object. Because not all Models support all resource configuration types, the configuration types this Model supports are listed here. If no configuration types are listed, the Model cannot be deployed to an Endpoint and does not support online predictions (PredictionService.Predict or PredictionService.Explain). Such a Model can serve predictions by using a BatchPredictionJob, if it has at least one entry each in supported_input_storage_formats and supported_output_storage_formats. */ supportedDeploymentResourcesTypes: string[]; /** * The formats in which this Model may be exported. If empty, this Model is not available for export. */ supportedExportFormats: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelExportFormatResponse[]; /** * The formats this Model supports in BatchPredictionJob.input_config. If PredictSchemata.instance_schema_uri exists, the instances should be given as per that schema. The possible formats are: * `jsonl` The JSON Lines format, where each instance is a single line. Uses GcsSource. * `csv` The CSV format, where each instance is a single comma-separated line. The first line in the file is the header, containing comma-separated field names. Uses GcsSource. * `tf-record` The TFRecord format, where each instance is a single record in tfrecord syntax. Uses GcsSource. * `tf-record-gzip` Similar to `tf-record`, but the file is gzipped. Uses GcsSource. * `bigquery` Each instance is a single row in BigQuery. Uses BigQuerySource. * `file-list` Each line of the file is the location of an instance to process, uses `gcs_source` field of the InputConfig object. If this Model doesn't support any of these formats it means it cannot be used with a BatchPredictionJob. However, if it has supported_deployment_resources_types, it could serve online predictions by using PredictionService.Predict or PredictionService.Explain. */ supportedInputStorageFormats: string[]; /** * The formats this Model supports in BatchPredictionJob.output_config. If both PredictSchemata.instance_schema_uri and PredictSchemata.prediction_schema_uri exist, the predictions are returned together with their instances. In other words, the prediction has the original instance data first, followed by the actual prediction content (as per the schema). The possible formats are: * `jsonl` The JSON Lines format, where each prediction is a single line. Uses GcsDestination. * `csv` The CSV format, where each prediction is a single comma-separated line. The first line in the file is the header, containing comma-separated field names. Uses GcsDestination. * `bigquery` Each prediction is a single row in a BigQuery table, uses BigQueryDestination . If this Model doesn't support any of these formats it means it cannot be used with a BatchPredictionJob. However, if it has supported_deployment_resources_types, it could serve online predictions by using PredictionService.Predict or PredictionService.Explain. */ supportedOutputStorageFormats: string[]; /** * The resource name of the TrainingPipeline that uploaded this Model, if any. */ trainingPipeline: string; /** * Timestamp when this Model was most recently updated. */ updateTime: string; /** * User provided version aliases so that a model version can be referenced via alias (i.e. `projects/{project}/locations/{location}/models/{model_id}@{version_alias}` instead of auto-generated version id (i.e. `projects/{project}/locations/{location}/models/{model_id}@{version_id})`. The format is a-z{0,126}[a-z0-9] to distinguish from version_id. A default version alias will be created for the first version of the model, and there must be exactly one default version alias for a model. */ versionAliases: string[]; /** * Timestamp when this version was created. */ versionCreateTime: string; /** * The description of this version. */ versionDescription: string; /** * Immutable. The version ID of the model. A new version is committed when a new model version is uploaded or trained under an existing model id. It is an auto-incrementing decimal number in string representation. */ versionId: string; /** * Timestamp when this version was most recently updated. */ versionUpdateTime: string; } /** * Detail description of the source information of the model. */ interface GoogleCloudAiplatformV1ModelSourceInfoResponse { /** * If this Model is copy of another Model. If true then source_type pertains to the original. */ copy: boolean; /** * Type of the model source. */ sourceType: string; } /** * The output of a multi-trial Neural Architecture Search (NAS) jobs. */ interface GoogleCloudAiplatformV1NasJobOutputMultiTrialJobOutputResponse { /** * List of NasTrials that were started as part of search stage. */ searchTrials: outputs.aiplatform.v1.GoogleCloudAiplatformV1NasTrialResponse[]; /** * List of NasTrials that were started as part of train stage. */ trainTrials: outputs.aiplatform.v1.GoogleCloudAiplatformV1NasTrialResponse[]; } /** * Represents a uCAIP NasJob output. */ interface GoogleCloudAiplatformV1NasJobOutputResponse { /** * The output of this multi-trial Neural Architecture Search (NAS) job. */ multiTrialJobOutput: outputs.aiplatform.v1.GoogleCloudAiplatformV1NasJobOutputMultiTrialJobOutputResponse; } /** * Represents a metric to optimize. */ interface GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecMetricSpecResponse { /** * The optimization goal of the metric. */ goal: string; /** * The ID of the metric. Must not contain whitespaces. */ metricId: string; } /** * The spec of multi-trial Neural Architecture Search (NAS). */ interface GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecResponse { /** * Metric specs for the NAS job. Validation for this field is done at `multi_trial_algorithm_spec` field. */ metric: outputs.aiplatform.v1.GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecMetricSpecResponse; /** * The multi-trial Neural Architecture Search (NAS) algorithm type. Defaults to `REINFORCEMENT_LEARNING`. */ multiTrialAlgorithm: string; /** * Spec for search trials. */ searchTrialSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecSearchTrialSpecResponse; /** * Spec for train trials. Top N [TrainTrialSpec.max_parallel_trial_count] search trials will be trained for every M [TrainTrialSpec.frequency] trials searched. */ trainTrialSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecTrainTrialSpecResponse; } /** * Represent spec for search trials. */ interface GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecSearchTrialSpecResponse { /** * The number of failed trials that need to be seen before failing the NasJob. If set to 0, Vertex AI decides how many trials must fail before the whole job fails. */ maxFailedTrialCount: number; /** * The maximum number of trials to run in parallel. */ maxParallelTrialCount: number; /** * The maximum number of Neural Architecture Search (NAS) trials to run. */ maxTrialCount: number; /** * The spec of a search trial job. The same spec applies to all search trials. */ searchTrialJobSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1CustomJobSpecResponse; } /** * Represent spec for train trials. */ interface GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecTrainTrialSpecResponse { /** * Frequency of search trials to start train stage. Top N [TrainTrialSpec.max_parallel_trial_count] search trials will be trained for every M [TrainTrialSpec.frequency] trials searched. */ frequency: number; /** * The maximum number of trials to run in parallel. */ maxParallelTrialCount: number; /** * The spec of a train trial job. The same spec applies to all train trials. */ trainTrialJobSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1CustomJobSpecResponse; } /** * Represents the spec of a NasJob. */ interface GoogleCloudAiplatformV1NasJobSpecResponse { /** * The spec of multi-trial algorithms. */ multiTrialAlgorithmSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecResponse; /** * The ID of the existing NasJob in the same Project and Location which will be used to resume search. search_space_spec and nas_algorithm_spec are obtained from previous NasJob hence should not provide them again for this NasJob. */ resumeNasJobId: string; /** * It defines the search space for Neural Architecture Search (NAS). */ searchSpaceSpec: string; } /** * Represents a uCAIP NasJob trial. */ interface GoogleCloudAiplatformV1NasTrialResponse { /** * Time when the NasTrial's status changed to `SUCCEEDED` or `INFEASIBLE`. */ endTime: string; /** * The final measurement containing the objective value. */ finalMeasurement: outputs.aiplatform.v1.GoogleCloudAiplatformV1MeasurementResponse; /** * Time when the NasTrial was started. */ startTime: string; /** * The detailed state of the NasTrial. */ state: string; } /** * Network spec. */ interface GoogleCloudAiplatformV1NetworkSpecResponse { /** * Whether to enable public internet access. Default false. */ enableInternetAccess: boolean; /** * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) */ network: string; /** * The name of the subnet that this instance is in. Format: `projects/{project_id_or_number}/regions/{region}/subnetworks/{subnetwork_id}` */ subnetwork: string; } /** * Represents a mount configuration for Network File System (NFS) to mount. */ interface GoogleCloudAiplatformV1NfsMountResponse { /** * Destination mount path. The NFS will be mounted for the user under /mnt/nfs/ */ mountPoint: string; /** * Source path exported from NFS server. Has to start with '/', and combined with the ip address, it indicates the source mount path in the form of `server:path` */ path: string; /** * IP address of the NFS server. */ server: string; } /** * The euc configuration of NotebookRuntimeTemplate. */ interface GoogleCloudAiplatformV1NotebookEucConfigResponse { /** * Whether ActAs check is bypassed for service account attached to the VM. If false, we need ActAs check for the default Compute Engine Service account. When a Runtime is created, a VM is allocated using Default Compute Engine Service Account. Any user requesting to use this Runtime requires Service Account User (ActAs) permission over this SA. If true, Runtime owner is using EUC and does not require the above permission as VM no longer use default Compute Engine SA, but a P4SA. */ bypassActasCheck: boolean; /** * Input only. Whether EUC is disabled in this NotebookRuntimeTemplate. In proto3, the default value of a boolean is false. In this way, by default EUC will be enabled for NotebookRuntimeTemplate. */ eucDisabled: boolean; } /** * The idle shutdown configuration of NotebookRuntimeTemplate, which contains the idle_timeout as required field. */ interface GoogleCloudAiplatformV1NotebookIdleShutdownConfigResponse { /** * Whether Idle Shutdown is disabled in this NotebookRuntimeTemplate. */ idleShutdownDisabled: boolean; /** * Duration is accurate to the second. In Notebook, Idle Timeout is accurate to minute so the range of idle_timeout (second) is: 10 * 60 ~ 1440 * 60. */ idleTimeout: string; } /** * Represents the spec of persistent disk options. */ interface GoogleCloudAiplatformV1PersistentDiskSpecResponse { /** * Size in GB of the disk (default is 100GB). */ diskSizeGb: string; /** * Type of the disk (default is "pd-standard"). Valid values: "pd-ssd" (Persistent Disk Solid State Drive) "pd-standard" (Persistent Disk Hard Disk Drive) "pd-balanced" (Balanced Persistent Disk) "pd-extreme" (Extreme Persistent Disk) */ diskType: string; } /** * The runtime detail of PipelineJob. */ interface GoogleCloudAiplatformV1PipelineJobDetailResponse { /** * The context of the pipeline. */ pipelineContext: outputs.aiplatform.v1.GoogleCloudAiplatformV1ContextResponse; /** * The context of the current pipeline run. */ pipelineRunContext: outputs.aiplatform.v1.GoogleCloudAiplatformV1ContextResponse; /** * The runtime details of the tasks under the pipeline. */ taskDetails: outputs.aiplatform.v1.GoogleCloudAiplatformV1PipelineTaskDetailResponse[]; } /** * An instance of a machine learning PipelineJob. */ interface GoogleCloudAiplatformV1PipelineJobResponse { /** * Pipeline creation time. */ createTime: string; /** * The display name of the Pipeline. The name can be up to 128 characters long and can consist of any UTF-8 characters. */ displayName: string; /** * Customer-managed encryption key spec for a pipelineJob. If set, this PipelineJob and all of its sub-resources will be secured by this key. */ encryptionSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1EncryptionSpecResponse; /** * Pipeline end time. */ endTime: string; /** * The error that occurred during pipeline execution. Only populated when the pipeline's state is FAILED or CANCELLED. */ error: outputs.aiplatform.v1.GoogleRpcStatusResponse; /** * The details of pipeline run. Not available in the list view. */ jobDetail: outputs.aiplatform.v1.GoogleCloudAiplatformV1PipelineJobDetailResponse; /** * The labels with user-defined metadata to organize PipelineJob. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. Note there is some reserved label key for Vertex AI Pipelines. - `vertex-ai-pipelines-run-billing-id`, user set value will get overrided. */ labels: { [key: string]: string; }; /** * The resource name of the PipelineJob. */ name: string; /** * The full name of the Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the Pipeline Job's workload should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in `12345`, and {network} is a network name. Private services access must already be configured for the network. Pipeline job will apply the network configuration to the Google Cloud resources being launched, if applied, such as Vertex AI Training or Dataflow job. If left unspecified, the workload is not peered with any network. */ network: string; /** * The spec of the pipeline. */ pipelineSpec: { [key: string]: string; }; /** * A list of names for the reserved ip ranges under the VPC network that can be used for this Pipeline Job's workload. If set, we will deploy the Pipeline Job's workload within the provided ip ranges. Otherwise, the job will be deployed to any ip ranges under the provided VPC network. Example: ['vertex-ai-ip-range']. */ reservedIpRanges: string[]; /** * Runtime config of the pipeline. */ runtimeConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1PipelineJobRuntimeConfigResponse; /** * The schedule resource name. Only returned if the Pipeline is created by Schedule API. */ scheduleName: string; /** * The service account that the pipeline workload runs as. If not specified, the Compute Engine default service account in the project will be used. See https://cloud.google.com/compute/docs/access/service-accounts#default_service_account Users starting the pipeline must have the `iam.serviceAccounts.actAs` permission on this service account. */ serviceAccount: string; /** * Pipeline start time. */ startTime: string; /** * The detailed state of the job. */ state: string; /** * Pipeline template metadata. Will fill up fields if PipelineJob.template_uri is from supported template registry. */ templateMetadata: outputs.aiplatform.v1.GoogleCloudAiplatformV1PipelineTemplateMetadataResponse; /** * A template uri from where the PipelineJob.pipeline_spec, if empty, will be downloaded. Currently, only uri from Vertex Template Registry & Gallery is supported. Reference to https://cloud.google.com/vertex-ai/docs/pipelines/create-pipeline-template. */ templateUri: string; /** * Timestamp when this PipelineJob was most recently updated. */ updateTime: string; } /** * The runtime config of a PipelineJob. */ interface GoogleCloudAiplatformV1PipelineJobRuntimeConfigResponse { /** * Represents the failure policy of a pipeline. Currently, the default of a pipeline is that the pipeline will continue to run until no more tasks can be executed, also known as PIPELINE_FAILURE_POLICY_FAIL_SLOW. However, if a pipeline is set to PIPELINE_FAILURE_POLICY_FAIL_FAST, it will stop scheduling any new tasks when a task has failed. Any scheduled tasks will continue to completion. */ failurePolicy: string; /** * A path in a Cloud Storage bucket, which will be treated as the root output directory of the pipeline. It is used by the system to generate the paths of output artifacts. The artifact paths are generated with a sub-path pattern `{job_id}/{task_id}/{output_key}` under the specified output directory. The service account specified in this pipeline must have the `storage.objects.get` and `storage.objects.create` permissions for this bucket. */ gcsOutputDirectory: string; /** * The runtime artifacts of the PipelineJob. The key will be the input artifact name and the value would be one of the InputArtifact. */ inputArtifacts: { [key: string]: string; }; /** * The runtime parameters of the PipelineJob. The parameters will be passed into PipelineJob.pipeline_spec to replace the placeholders at runtime. This field is used by pipelines built using `PipelineJob.pipeline_spec.schema_version` 2.1.0, such as pipelines built using Kubeflow Pipelines SDK 1.9 or higher and the v2 DSL. */ parameterValues: { [key: string]: string; }; /** * Deprecated. Use RuntimeConfig.parameter_values instead. The runtime parameters of the PipelineJob. The parameters will be passed into PipelineJob.pipeline_spec to replace the placeholders at runtime. This field is used by pipelines built using `PipelineJob.pipeline_spec.schema_version` 2.0.0 or lower, such as pipelines built using Kubeflow Pipelines SDK 1.8 or lower. * * @deprecated Deprecated. Use RuntimeConfig.parameter_values instead. The runtime parameters of the PipelineJob. The parameters will be passed into PipelineJob.pipeline_spec to replace the placeholders at runtime. This field is used by pipelines built using `PipelineJob.pipeline_spec.schema_version` 2.0.0 or lower, such as pipelines built using Kubeflow Pipelines SDK 1.8 or lower. */ parameters: { [key: string]: string; }; } /** * A single record of the task status. */ interface GoogleCloudAiplatformV1PipelineTaskDetailPipelineTaskStatusResponse { /** * The error that occurred during the state. May be set when the state is any of the non-final state (PENDING/RUNNING/CANCELLING) or FAILED state. If the state is FAILED, the error here is final and not going to be retried. If the state is a non-final state, the error indicates a system-error being retried. */ error: outputs.aiplatform.v1.GoogleRpcStatusResponse; /** * The state of the task. */ state: string; /** * Update time of this status. */ updateTime: string; } /** * The runtime detail of a task execution. */ interface GoogleCloudAiplatformV1PipelineTaskDetailResponse { /** * Task create time. */ createTime: string; /** * Task end time. */ endTime: string; /** * The error that occurred during task execution. Only populated when the task's state is FAILED or CANCELLED. */ error: outputs.aiplatform.v1.GoogleRpcStatusResponse; /** * The execution metadata of the task. */ execution: outputs.aiplatform.v1.GoogleCloudAiplatformV1ExecutionResponse; /** * The detailed execution info. */ executorDetail: outputs.aiplatform.v1.GoogleCloudAiplatformV1PipelineTaskExecutorDetailResponse; /** * The runtime input artifacts of the task. */ inputs: { [key: string]: string; }; /** * The runtime output artifacts of the task. */ outputs: { [key: string]: string; }; /** * The id of the parent task if the task is within a component scope. Empty if the task is at the root level. */ parentTaskId: string; /** * A list of task status. This field keeps a record of task status evolving over time. */ pipelineTaskStatus: outputs.aiplatform.v1.GoogleCloudAiplatformV1PipelineTaskDetailPipelineTaskStatusResponse[]; /** * Task start time. */ startTime: string; /** * State of the task. */ state: string; /** * The system generated ID of the task. */ taskId: string; /** * The user specified name of the task that is defined in pipeline_spec. */ taskName: string; } /** * The detail of a container execution. It contains the job names of the lifecycle of a container execution. */ interface GoogleCloudAiplatformV1PipelineTaskExecutorDetailContainerDetailResponse { /** * The names of the previously failed CustomJob for the main container executions. The list includes the all attempts in chronological order. */ failedMainJobs: string[]; /** * The names of the previously failed CustomJob for the pre-caching-check container executions. This job will be available if the PipelineJob.pipeline_spec specifies the `pre_caching_check` hook in the lifecycle events. The list includes the all attempts in chronological order. */ failedPreCachingCheckJobs: string[]; /** * The name of the CustomJob for the main container execution. */ mainJob: string; /** * The name of the CustomJob for the pre-caching-check container execution. This job will be available if the PipelineJob.pipeline_spec specifies the `pre_caching_check` hook in the lifecycle events. */ preCachingCheckJob: string; } /** * The detailed info for a custom job executor. */ interface GoogleCloudAiplatformV1PipelineTaskExecutorDetailCustomJobDetailResponse { /** * The names of the previously failed CustomJob. The list includes the all attempts in chronological order. */ failedJobs: string[]; /** * The name of the CustomJob. */ job: string; } /** * The runtime detail of a pipeline executor. */ interface GoogleCloudAiplatformV1PipelineTaskExecutorDetailResponse { /** * The detailed info for a container executor. */ containerDetail: outputs.aiplatform.v1.GoogleCloudAiplatformV1PipelineTaskExecutorDetailContainerDetailResponse; /** * The detailed info for a custom job executor. */ customJobDetail: outputs.aiplatform.v1.GoogleCloudAiplatformV1PipelineTaskExecutorDetailCustomJobDetailResponse; } /** * Pipeline template metadata if PipelineJob.template_uri is from supported template registry. Currently, the only supported registry is Artifact Registry. */ interface GoogleCloudAiplatformV1PipelineTemplateMetadataResponse { /** * The version_name in artifact registry. Will always be presented in output if the PipelineJob.template_uri is from supported template registry. Format is "sha256:abcdef123456...". */ version: string; } /** * Represents a network port in a container. */ interface GoogleCloudAiplatformV1PortResponse { /** * The number of the port to expose on the pod's IP address. Must be a valid port number, between 1 and 65535 inclusive. */ containerPort: number; } /** * Assigns input data to training, validation, and test sets based on the value of a provided key. Supported only for tabular Datasets. */ interface GoogleCloudAiplatformV1PredefinedSplitResponse { /** * The key is a name of one of the Dataset's data columns. The value of the key (either the label's value or value in the column) must be one of {`training`, `validation`, `test`}, and it defines to which set the given piece of data is assigned. If for a piece of data the key is not present or has an invalid value, that piece is ignored by the pipeline. */ key: string; } /** * Configuration for logging request-response to a BigQuery table. */ interface GoogleCloudAiplatformV1PredictRequestResponseLoggingConfigResponse { /** * BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` */ bigqueryDestination: outputs.aiplatform.v1.GoogleCloudAiplatformV1BigQueryDestinationResponse; /** * If logging is enabled or not. */ enabled: boolean; /** * Percentage of requests to be logged, expressed as a fraction in range(0,1]. */ samplingRate: number; } /** * Contains the schemata used in Model's predictions and explanations via PredictionService.Predict, PredictionService.Explain and BatchPredictionJob. */ interface GoogleCloudAiplatformV1PredictSchemataResponse { /** * Immutable. Points to a YAML file stored on Google Cloud Storage describing the format of a single instance, which are used in PredictRequest.instances, ExplainRequest.instances and BatchPredictionJob.input_config. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access. */ instanceSchemaUri: string; /** * Immutable. Points to a YAML file stored on Google Cloud Storage describing the parameters of prediction and explanation via PredictRequest.parameters, ExplainRequest.parameters and BatchPredictionJob.model_parameters. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI, if no parameters are supported, then it is set to an empty string. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access. */ parametersSchemaUri: string; /** * Immutable. Points to a YAML file stored on Google Cloud Storage describing the format of a single prediction produced by this Model, which are returned via PredictResponse.predictions, ExplainResponse.explanations, and BatchPredictionJob.output_config. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access. */ predictionSchemaUri: string; } /** * Preset configuration for example-based explanations */ interface GoogleCloudAiplatformV1PresetsResponse { /** * The modality of the uploaded model, which automatically configures the distance measurement and feature normalization for the underlying example index and queries. If your model does not precisely fit one of these types, it is okay to choose the closest type. */ modality: string; /** * Preset option controlling parameters for speed-precision trade-off when querying for examples. If omitted, defaults to `PRECISE`. */ query: string; } /** * PrivateEndpoints proto is used to provide paths for users to send requests privately. To send request via private service access, use predict_http_uri, explain_http_uri or health_http_uri. To send request via private service connect, use service_attachment. */ interface GoogleCloudAiplatformV1PrivateEndpointsResponse { /** * Http(s) path to send explain requests. */ explainHttpUri: string; /** * Http(s) path to send health check requests. */ healthHttpUri: string; /** * Http(s) path to send prediction requests. */ predictHttpUri: string; /** * The name of the service attachment resource. Populated if private service connect is enabled. */ serviceAttachment: string; } /** * Represents configuration for private service connect. */ interface GoogleCloudAiplatformV1PrivateServiceConnectConfigResponse { /** * If true, expose the IndexEndpoint via private service connect. */ enablePrivateServiceConnect: boolean; /** * A list of Projects from which the forwarding rule will target the service attachment. */ projectAllowlist: string[]; } /** * ExecAction specifies a command to execute. */ interface GoogleCloudAiplatformV1ProbeExecActionResponse { /** * Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. */ command: string[]; } /** * Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. */ interface GoogleCloudAiplatformV1ProbeResponse { /** * Exec specifies the action to take. */ exec: outputs.aiplatform.v1.GoogleCloudAiplatformV1ProbeExecActionResponse; /** * How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Must be less than timeout_seconds. Maps to Kubernetes probe argument 'periodSeconds'. */ periodSeconds: number; /** * Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Must be greater or equal to period_seconds. Maps to Kubernetes probe argument 'timeoutSeconds'. */ timeoutSeconds: number; } /** * The spec of a Python packaged code. */ interface GoogleCloudAiplatformV1PythonPackageSpecResponse { /** * Command line arguments to be passed to the Python task. */ args: string[]; /** * Environment variables to be passed to the python module. Maximum limit is 100. */ env: outputs.aiplatform.v1.GoogleCloudAiplatformV1EnvVarResponse[]; /** * The URI of a container image in Artifact Registry that will run the provided Python package. Vertex AI provides a wide range of executor images with pre-installed packages to meet users' various use cases. See the list of [pre-built containers for training](https://cloud.google.com/vertex-ai/docs/training/pre-built-containers). You must use an image from this list. */ executorImageUri: string; /** * The Google Cloud Storage location of the Python package files which are the training program and its dependent packages. The maximum number of package URIs is 100. */ packageUris: string[]; /** * The Python module name to run after installing the packages. */ pythonModule: string; } /** * Statistics information about resource consumption. */ interface GoogleCloudAiplatformV1ResourcesConsumedResponse { /** * The number of replica hours used. Note that many replicas may run in parallel, and additionally any given work may be queued for some time. Therefore this value is not strictly related to wall time. */ replicaHours: number; } /** * Active learning data sampling config. For every active learning labeling iteration, it will select a batch of data based on the sampling strategy. */ interface GoogleCloudAiplatformV1SampleConfigResponse { /** * The percentage of data needed to be labeled in each following batch (except the first batch). */ followingBatchSamplePercentage: number; /** * The percentage of data needed to be labeled in the first batch. */ initialBatchSamplePercentage: number; /** * Field to choose sampling strategy. Sampling strategy will decide which data should be selected for human labeling in every batch. */ sampleStrategy: string; } /** * An attribution method that approximates Shapley values for features that contribute to the label being predicted. A sampling strategy is used to approximate the value rather than considering all subsets of features. */ interface GoogleCloudAiplatformV1SampledShapleyAttributionResponse { /** * The number of feature permutations to consider when approximating the Shapley values. Valid range of its value is [1, 50], inclusively. */ pathCount: number; } /** * Requests are randomly selected. */ interface GoogleCloudAiplatformV1SamplingStrategyRandomSampleConfigResponse { /** * Sample rate (0, 1] */ sampleRate: number; } /** * Sampling Strategy for logging, can be for both training and prediction dataset. */ interface GoogleCloudAiplatformV1SamplingStrategyResponse { /** * Random sample config. Will support more sampling strategies later. */ randomSampleConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1SamplingStrategyRandomSampleConfigResponse; } /** * A SavedQuery is a view of the dataset. It references a subset of annotations by problem type and filters. */ interface GoogleCloudAiplatformV1SavedQueryResponse { /** * Filters on the Annotations in the dataset. */ annotationFilter: string; /** * Number of AnnotationSpecs in the context of the SavedQuery. */ annotationSpecCount: number; /** * Timestamp when this SavedQuery was created. */ createTime: string; /** * The user-defined name of the SavedQuery. The name can be up to 128 characters long and can consist of any UTF-8 characters. */ displayName: string; /** * Used to perform a consistent read-modify-write update. If not set, a blind "overwrite" update happens. */ etag: string; /** * Some additional information about the SavedQuery. */ metadata: any; /** * Resource name of the SavedQuery. */ name: string; /** * Problem type of the SavedQuery. Allowed values: * IMAGE_CLASSIFICATION_SINGLE_LABEL * IMAGE_CLASSIFICATION_MULTI_LABEL * IMAGE_BOUNDING_POLY * IMAGE_BOUNDING_BOX * TEXT_CLASSIFICATION_SINGLE_LABEL * TEXT_CLASSIFICATION_MULTI_LABEL * TEXT_EXTRACTION * TEXT_SENTIMENT * VIDEO_CLASSIFICATION * VIDEO_OBJECT_TRACKING */ problemType: string; /** * If the Annotations belonging to the SavedQuery can be used for AutoML training. */ supportAutomlTraining: boolean; /** * Timestamp when SavedQuery was last updated. */ updateTime: string; } /** * Status of a scheduled run. */ interface GoogleCloudAiplatformV1ScheduleRunResponseResponse { /** * The response of the scheduled run. */ runResponse: string; /** * The scheduled run time based on the user-specified schedule. */ scheduledRunTime: string; } /** * All parameters related to queuing and scheduling of custom jobs. */ interface GoogleCloudAiplatformV1SchedulingResponse { /** * Optional. Indicates if the job should retry for internal errors after the job starts running. If true, overrides `Scheduling.restart_job_on_worker_restart` to false. */ disableRetries: boolean; /** * Restarts the entire CustomJob if a worker gets restarted. This feature can be used by distributed training jobs that are not resilient to workers leaving and joining a job. */ restartJobOnWorkerRestart: boolean; /** * The maximum job running time. The default is 7 days. */ timeout: string; } /** * Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf */ interface GoogleCloudAiplatformV1SmoothGradConfigResponse { /** * This is similar to noise_sigma, but provides additional flexibility. A separate noise sigma can be provided for each feature, which is useful if their distributions are different. No noise is added to features that are not set. If this field is unset, noise_sigma will be used for all features. */ featureNoiseSigma: outputs.aiplatform.v1.GoogleCloudAiplatformV1FeatureNoiseSigmaResponse; /** * This is a single float value and will be used to add noise to all the features. Use this field when all features are normalized to have the same distribution: scale to range [0, 1], [-1, 1] or z-scoring, where features are normalized to have 0-mean and 1-variance. Learn more about [normalization](https://developers.google.com/machine-learning/data-prep/transform/normalization). For best results the recommended value is about 10% - 20% of the standard deviation of the input feature. Refer to section 3.2 of the SmoothGrad paper: https://arxiv.org/pdf/1706.03825.pdf. Defaults to 0.1. If the distribution is different per feature, set feature_noise_sigma instead for each feature. */ noiseSigma: number; /** * The number of gradient samples to use for approximation. The higher this number, the more accurate the gradient is, but the runtime complexity increases by this factor as well. Valid range of its value is [1, 50]. Defaults to 3. */ noisySampleCount: number; } /** * Assigns input data to the training, validation, and test sets so that the distribution of values found in the categorical column (as specified by the `key` field) is mirrored within each split. The fraction values determine the relative sizes of the splits. For example, if the specified column has three values, with 50% of the rows having value "A", 25% value "B", and 25% value "C", and the split fractions are specified as 80/10/10, then the training set will constitute 80% of the training data, with about 50% of the training set rows having the value "A" for the specified column, about 25% having the value "B", and about 25% having the value "C". Only the top 500 occurring values are used; any values not in the top 500 values are randomly assigned to a split. If less than three rows contain a specific value, those rows are randomly assigned. Supported only for tabular Datasets. */ interface GoogleCloudAiplatformV1StratifiedSplitResponse { /** * The key is a name of one of the Dataset's data columns. The key provided must be for a categorical column. */ key: string; /** * The fraction of the input data that is to be used to evaluate the Model. */ testFraction: number; /** * The fraction of the input data that is to be used to train the Model. */ trainingFraction: number; /** * The fraction of the input data that is to be used to validate the Model. */ validationFraction: number; } /** * Configuration for ConvexAutomatedStoppingSpec. When there are enough completed trials (configured by min_measurement_count), for pending trials with enough measurements and steps, the policy first computes an overestimate of the objective value at max_num_steps according to the slope of the incomplete objective value curve. No prediction can be made if the curve is completely flat. If the overestimation is worse than the best objective value of the completed trials, this pending trial will be early-stopped, but a last measurement will be added to the pending trial with max_num_steps and predicted objective value from the autoregression model. */ interface GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpecResponse { /** * The hyper-parameter name used in the tuning job that stands for learning rate. Leave it blank if learning rate is not in a parameter in tuning. The learning_rate is used to estimate the objective value of the ongoing trial. */ learningRateParameterName: string; /** * Steps used in predicting the final objective for early stopped trials. In general, it's set to be the same as the defined steps in training / tuning. If not defined, it will learn it from the completed trials. When use_steps is false, this field is set to the maximum elapsed seconds. */ maxStepCount: string; /** * The minimal number of measurements in a Trial. Early-stopping checks will not trigger if less than min_measurement_count+1 completed trials or pending trials with less than min_measurement_count measurements. If not defined, the default value is 5. */ minMeasurementCount: string; /** * Minimum number of steps for a trial to complete. Trials which do not have a measurement with step_count > min_step_count won't be considered for early stopping. It's ok to set it to 0, and a trial can be early stopped at any stage. By default, min_step_count is set to be one-tenth of the max_step_count. When use_elapsed_duration is true, this field is set to the minimum elapsed seconds. */ minStepCount: string; /** * ConvexAutomatedStoppingSpec by default only updates the trials that needs to be early stopped using a newly trained auto-regressive model. When this flag is set to True, all stopped trials from the beginning are potentially updated in terms of their `final_measurement`. Also, note that the training logic of autoregressive models is different in this case. Enabling this option has shown better results and this may be the default option in the future. */ updateAllStoppedTrials: boolean; /** * This bool determines whether or not the rule is applied based on elapsed_secs or steps. If use_elapsed_duration==false, the early stopping decision is made according to the predicted objective values according to the target steps. If use_elapsed_duration==true, elapsed_secs is used instead of steps. Also, in this case, the parameters max_num_steps and min_num_steps are overloaded to contain max_elapsed_seconds and min_elapsed_seconds. */ useElapsedDuration: boolean; } /** * The decay curve automated stopping rule builds a Gaussian Process Regressor to predict the final objective value of a Trial based on the already completed Trials and the intermediate measurements of the current Trial. Early stopping is requested for the current Trial if there is very low probability to exceed the optimal value found so far. */ interface GoogleCloudAiplatformV1StudySpecDecayCurveAutomatedStoppingSpecResponse { /** * True if Measurement.elapsed_duration is used as the x-axis of each Trials Decay Curve. Otherwise, Measurement.step_count will be used as the x-axis. */ useElapsedDuration: boolean; } /** * The median automated stopping rule stops a pending Trial if the Trial's best objective_value is strictly below the median 'performance' of all completed Trials reported up to the Trial's last measurement. Currently, 'performance' refers to the running average of the objective values reported by the Trial in each measurement. */ interface GoogleCloudAiplatformV1StudySpecMedianAutomatedStoppingSpecResponse { /** * True if median automated stopping rule applies on Measurement.elapsed_duration. It means that elapsed_duration field of latest measurement of current Trial is used to compute median objective value for each completed Trials. */ useElapsedDuration: boolean; } /** * Represents a metric to optimize. */ interface GoogleCloudAiplatformV1StudySpecMetricSpecResponse { /** * The optimization goal of the metric. */ goal: string; /** * The ID of the metric. Must not contain whitespaces and must be unique amongst all MetricSpecs. */ metricId: string; /** * Used for safe search. In the case, the metric will be a safety metric. You must provide a separate metric for objective metric. */ safetyConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecMetricSpecSafetyMetricConfigResponse; } /** * Used in safe optimization to specify threshold levels and risk tolerance. */ interface GoogleCloudAiplatformV1StudySpecMetricSpecSafetyMetricConfigResponse { /** * Desired minimum fraction of safe trials (over total number of trials) that should be targeted by the algorithm at any time during the study (best effort). This should be between 0.0 and 1.0 and a value of 0.0 means that there is no minimum and an algorithm proceeds without targeting any specific fraction. A value of 1.0 means that the algorithm attempts to only Suggest safe Trials. */ desiredMinSafeTrialsFraction: number; /** * Safety threshold (boundary value between safe and unsafe). NOTE that if you leave SafetyMetricConfig unset, a default value of 0 will be used. */ safetyThreshold: number; } /** * Value specification for a parameter in `CATEGORICAL` type. */ interface GoogleCloudAiplatformV1StudySpecParameterSpecCategoricalValueSpecResponse { /** * A default value for a `CATEGORICAL` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline. */ defaultValue: string; /** * The list of possible categories. */ values: string[]; } /** * Represents the spec to match categorical values from parent parameter. */ interface GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecCategoricalValueConditionResponse { /** * Matches values of the parent parameter of 'CATEGORICAL' type. All values must exist in `categorical_value_spec` of parent parameter. */ values: string[]; } /** * Represents the spec to match discrete values from parent parameter. */ interface GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecDiscreteValueConditionResponse { /** * Matches values of the parent parameter of 'DISCRETE' type. All values must exist in `discrete_value_spec` of parent parameter. The Epsilon of the value matching is 1e-10. */ values: number[]; } /** * Represents the spec to match integer values from parent parameter. */ interface GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecIntValueConditionResponse { /** * Matches values of the parent parameter of 'INTEGER' type. All values must lie in `integer_value_spec` of parent parameter. */ values: string[]; } /** * Represents a parameter spec with condition from its parent parameter. */ interface GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecResponse { /** * The spec for a conditional parameter. */ parameterSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecParameterSpecResponse; /** * The spec for matching values from a parent parameter of `CATEGORICAL` type. */ parentCategoricalValues: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecCategoricalValueConditionResponse; /** * The spec for matching values from a parent parameter of `DISCRETE` type. */ parentDiscreteValues: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecDiscreteValueConditionResponse; /** * The spec for matching values from a parent parameter of `INTEGER` type. */ parentIntValues: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecIntValueConditionResponse; } /** * Value specification for a parameter in `DISCRETE` type. */ interface GoogleCloudAiplatformV1StudySpecParameterSpecDiscreteValueSpecResponse { /** * A default value for a `DISCRETE` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. It automatically rounds to the nearest feasible discrete point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline. */ defaultValue: number; /** * A list of possible values. The list should be in increasing order and at least 1e-10 apart. For instance, this parameter might have possible settings of 1.5, 2.5, and 4.0. This list should not contain more than 1,000 values. */ values: number[]; } /** * Value specification for a parameter in `DOUBLE` type. */ interface GoogleCloudAiplatformV1StudySpecParameterSpecDoubleValueSpecResponse { /** * A default value for a `DOUBLE` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline. */ defaultValue: number; /** * Inclusive maximum value of the parameter. */ maxValue: number; /** * Inclusive minimum value of the parameter. */ minValue: number; } /** * Value specification for a parameter in `INTEGER` type. */ interface GoogleCloudAiplatformV1StudySpecParameterSpecIntegerValueSpecResponse { /** * A default value for an `INTEGER` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline. */ defaultValue: string; /** * Inclusive maximum value of the parameter. */ maxValue: string; /** * Inclusive minimum value of the parameter. */ minValue: string; } /** * Represents a single parameter to optimize. */ interface GoogleCloudAiplatformV1StudySpecParameterSpecResponse { /** * The value spec for a 'CATEGORICAL' parameter. */ categoricalValueSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecParameterSpecCategoricalValueSpecResponse; /** * A conditional parameter node is active if the parameter's value matches the conditional node's parent_value_condition. If two items in conditional_parameter_specs have the same name, they must have disjoint parent_value_condition. */ conditionalParameterSpecs: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecResponse[]; /** * The value spec for a 'DISCRETE' parameter. */ discreteValueSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecParameterSpecDiscreteValueSpecResponse; /** * The value spec for a 'DOUBLE' parameter. */ doubleValueSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecParameterSpecDoubleValueSpecResponse; /** * The value spec for an 'INTEGER' parameter. */ integerValueSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecParameterSpecIntegerValueSpecResponse; /** * The ID of the parameter. Must not contain whitespaces and must be unique amongst all ParameterSpecs. */ parameterId: string; /** * How the parameter should be scaled. Leave unset for `CATEGORICAL` parameters. */ scaleType: string; } /** * Represents specification of a Study. */ interface GoogleCloudAiplatformV1StudySpecResponse { /** * The search algorithm specified for the Study. */ algorithm: string; /** * The automated early stopping spec using convex stopping rule. */ convexAutomatedStoppingSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpecResponse; /** * The automated early stopping spec using decay curve rule. */ decayCurveStoppingSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecDecayCurveAutomatedStoppingSpecResponse; /** * Describe which measurement selection type will be used */ measurementSelectionType: string; /** * The automated early stopping spec using median rule. */ medianAutomatedStoppingSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecMedianAutomatedStoppingSpecResponse; /** * Metric specs for the Study. */ metrics: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecMetricSpecResponse[]; /** * The observation noise level of the study. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline. */ observationNoise: string; /** * The set of parameters to tune. */ parameters: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecParameterSpecResponse[]; /** * Conditions for automated stopping of a Study. Enable automated stopping by configuring at least one condition. */ studyStoppingConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudySpecStudyStoppingConfigResponse; } /** * The configuration (stopping conditions) for automated stopping of a Study. Conditions include trial budgets, time budgets, and convergence detection. */ interface GoogleCloudAiplatformV1StudySpecStudyStoppingConfigResponse { /** * If the objective value has not improved for this much time, stop the study. WARNING: Effective only for single-objective studies. */ maxDurationNoProgress: string; /** * If there are more than this many trials, stop the study. */ maxNumTrials: number; /** * If the objective value has not improved for this many consecutive trials, stop the study. WARNING: Effective only for single-objective studies. */ maxNumTrialsNoProgress: number; /** * If the specified time or duration has passed, stop the study. */ maximumRuntimeConstraint: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudyTimeConstraintResponse; /** * If there are fewer than this many COMPLETED trials, do not stop the study. */ minNumTrials: number; /** * Each "stopping rule" in this proto specifies an "if" condition. Before Vizier would generate a new suggestion, it first checks each specified stopping rule, from top to bottom in this list. Note that the first few rules (e.g. minimum_runtime_constraint, min_num_trials) will prevent other stopping rules from being evaluated until they are met. For example, setting `min_num_trials=5` and `always_stop_after= 1 hour` means that the Study will ONLY stop after it has 5 COMPLETED trials, even if more than an hour has passed since its creation. It follows the first applicable rule (whose "if" condition is satisfied) to make a stopping decision. If none of the specified rules are applicable, then Vizier decides that the study should not stop. If Vizier decides that the study should stop, the study enters STOPPING state (or STOPPING_ASAP if should_stop_asap = true). IMPORTANT: The automatic study state transition happens precisely as described above; that is, deleting trials or updating StudyConfig NEVER automatically moves the study state back to ACTIVE. If you want to _resume_ a Study that was stopped, 1) change the stopping conditions if necessary, 2) activate the study, and then 3) ask for suggestions. If the specified time or duration has not passed, do not stop the study. */ minimumRuntimeConstraint: outputs.aiplatform.v1.GoogleCloudAiplatformV1StudyTimeConstraintResponse; /** * If true, a Study enters STOPPING_ASAP whenever it would normally enters STOPPING state. The bottom line is: set to true if you want to interrupt on-going evaluations of Trials as soon as the study stopping condition is met. (Please see Study.State documentation for the source of truth). */ shouldStopAsap: boolean; } /** * Time-based Constraint for Study */ interface GoogleCloudAiplatformV1StudyTimeConstraintResponse { /** * Compares the wallclock time to this time. Must use UTC timezone. */ endTime: string; /** * Counts the wallclock time passed since the creation of this Study. */ maxDuration: string; } /** * Describes metadata for a TensorboardTimeSeries. */ interface GoogleCloudAiplatformV1TensorboardTimeSeriesMetadataResponse { /** * The largest blob sequence length (number of blobs) of all data points in this time series, if its ValueType is BLOB_SEQUENCE. */ maxBlobSequenceLength: string; /** * Max step index of all data points within a TensorboardTimeSeries. */ maxStep: string; /** * Max wall clock timestamp of all data points within a TensorboardTimeSeries. */ maxWallTime: string; } /** * The config for feature monitoring threshold. */ interface GoogleCloudAiplatformV1ThresholdConfigResponse { /** * Specify a threshold value that can trigger the alert. If this threshold config is for feature distribution distance: 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence. Each feature must have a non-zero threshold if they need to be monitored. Otherwise no alert will be triggered for that feature. */ value: number; } /** * Assigns input data to training, validation, and test sets based on a provided timestamps. The youngest data pieces are assigned to training set, next to validation set, and the oldest to the test set. Supported only for tabular Datasets. */ interface GoogleCloudAiplatformV1TimestampSplitResponse { /** * The key is a name of one of the Dataset's data columns. The values of the key (the values in the column) must be in RFC 3339 `date-time` format, where `time-offset` = `"Z"` (e.g. 1985-04-12T23:20:50.52Z). If for a piece of data the key is not present or has an invalid value, that piece is ignored by the pipeline. */ key: string; /** * The fraction of the input data that is to be used to evaluate the Model. */ testFraction: number; /** * The fraction of the input data that is to be used to train the Model. */ trainingFraction: number; /** * The fraction of the input data that is to be used to validate the Model. */ validationFraction: number; } /** * CMLE training config. For every active learning labeling iteration, system will train a machine learning model on CMLE. The trained model will be used by data sampling algorithm to select DataItems. */ interface GoogleCloudAiplatformV1TrainingConfigResponse { /** * The timeout hours for the CMLE training job, expressed in milli hours i.e. 1,000 value in this field means 1 hour. */ timeoutTrainingMilliHours: string; } /** * A message representing a parameter to be tuned. */ interface GoogleCloudAiplatformV1TrialParameterResponse { /** * The ID of the parameter. The parameter should be defined in StudySpec's Parameters. */ parameterId: string; /** * The value of the parameter. `number_value` will be set if a parameter defined in StudySpec is in type 'INTEGER', 'DOUBLE' or 'DISCRETE'. `string_value` will be set if a parameter defined in StudySpec is in type 'CATEGORICAL'. */ value: any; } /** * A message representing a Trial. A Trial contains a unique set of Parameters that has been or will be evaluated, along with the objective metrics got by running the Trial. */ interface GoogleCloudAiplatformV1TrialResponse { /** * The identifier of the client that originally requested this Trial. Each client is identified by a unique client_id. When a client asks for a suggestion, Vertex AI Vizier will assign it a Trial. The client should evaluate the Trial, complete it, and report back to Vertex AI Vizier. If suggestion is asked again by same client_id before the Trial is completed, the same Trial will be returned. Multiple clients with different client_ids can ask for suggestions simultaneously, each of them will get their own Trial. */ clientId: string; /** * The CustomJob name linked to the Trial. It's set for a HyperparameterTuningJob's Trial. */ customJob: string; /** * Time when the Trial's status changed to `SUCCEEDED` or `INFEASIBLE`. */ endTime: string; /** * The final measurement containing the objective value. */ finalMeasurement: outputs.aiplatform.v1.GoogleCloudAiplatformV1MeasurementResponse; /** * A human readable string describing why the Trial is infeasible. This is set only if Trial state is `INFEASIBLE`. */ infeasibleReason: string; /** * A list of measurements that are strictly lexicographically ordered by their induced tuples (steps, elapsed_duration). These are used for early stopping computations. */ measurements: outputs.aiplatform.v1.GoogleCloudAiplatformV1MeasurementResponse[]; /** * Resource name of the Trial assigned by the service. */ name: string; /** * The parameters of the Trial. */ parameters: outputs.aiplatform.v1.GoogleCloudAiplatformV1TrialParameterResponse[]; /** * Time when the Trial was started. */ startTime: string; /** * The detailed state of the Trial. */ state: string; /** * URIs for accessing [interactive shells](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) (one URI for each training node). Only available if this trial is part of a HyperparameterTuningJob and the job's trial_job_spec.enable_web_access field is `true`. The keys are names of each node used for the trial; for example, `workerpool0-0` for the primary node, `workerpool1-0` for the first node in the second worker pool, and `workerpool1-1` for the second node in the second worker pool. The values are the URIs for each node's interactive shell. */ webAccessUris: { [key: string]: string; }; } /** * Contains model information necessary to perform batch prediction without requiring a full model import. */ interface GoogleCloudAiplatformV1UnmanagedContainerModelResponse { /** * The path to the directory containing the Model artifact and any of its supporting files. */ artifactUri: string; /** * Input only. The specification of the container that is to be used when deploying this Model. */ containerSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1ModelContainerSpecResponse; /** * Contains the schemata used in Model's predictions and explanations */ predictSchemata: outputs.aiplatform.v1.GoogleCloudAiplatformV1PredictSchemataResponse; } /** * Represents the spec of a worker pool in a job. */ interface GoogleCloudAiplatformV1WorkerPoolSpecResponse { /** * The custom container task. */ containerSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1ContainerSpecResponse; /** * Disk spec. */ diskSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1DiskSpecResponse; /** * Optional. Immutable. The specification of a single machine. */ machineSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1MachineSpecResponse; /** * Optional. List of NFS mount spec. */ nfsMounts: outputs.aiplatform.v1.GoogleCloudAiplatformV1NfsMountResponse[]; /** * The Python packaged task. */ pythonPackageSpec: outputs.aiplatform.v1.GoogleCloudAiplatformV1PythonPackageSpecResponse; /** * Optional. The number of worker replicas to use for this worker pool. */ replicaCount: string; } /** * An explanation method that redistributes Integrated Gradients attributions to segmented regions, taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1906.02825 Supported only by image Models. */ interface GoogleCloudAiplatformV1XraiAttributionResponse { /** * Config for XRAI with blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383 */ blurBaselineConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1BlurBaselineConfigResponse; /** * Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf */ smoothGradConfig: outputs.aiplatform.v1.GoogleCloudAiplatformV1SmoothGradConfigResponse; /** * The number of steps for approximating the path integral. A good value to start is 50 and gradually increase until the sum to diff property is met within the desired error range. Valid range of its value is [1, 100], inclusively. */ stepCount: number; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.aiplatform.v1.GoogleTypeExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface GoogleRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface GoogleTypeExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Represents an amount of money with its currency type. */ interface GoogleTypeMoneyResponse { /** * The three-letter currency code defined in ISO 4217. */ currencyCode: string; /** * Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. */ nanos: number; /** * The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. */ units: string; } } namespace v1beta1 { /** * Parameters that configure the active learning pipeline. Active learning will label the data incrementally by several iterations. For every iteration, it will select a batch of data based on the sampling strategy. */ interface GoogleCloudAiplatformV1beta1ActiveLearningConfigResponse { /** * Max number of human labeled DataItems. */ maxDataItemCount: string; /** * Max percent of total DataItems for human labeling. */ maxDataItemPercentage: number; /** * Active learning data sampling config. For every active learning labeling iteration, it will select a batch of data based on the sampling strategy. */ sampleConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1SampleConfigResponse; /** * CMLE training config. For every active learning labeling iteration, system will train a machine learning model on CMLE. The trained model will be used by data sampling algorithm to select DataItems. */ trainingConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1TrainingConfigResponse; } /** * A description of resources that to large degree are decided by Vertex AI, and require only a modest additional configuration. Each Model supporting these resources documents its specific guidelines. */ interface GoogleCloudAiplatformV1beta1AutomaticResourcesResponse { /** * Immutable. The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, a no upper bound for scaling under heavy traffic will be assume, though Vertex AI may be unable to scale beyond certain replica number. */ maxReplicaCount: number; /** * Immutable. The minimum number of replicas this DeployedModel will be always deployed on. If traffic against it increases, it may dynamically be deployed onto more replicas up to max_replica_count, and as traffic decreases, some of these extra replicas may be freed. If the requested value is too large, the deployment will error. */ minReplicaCount: number; } /** * The metric specification that defines the target resource utilization (CPU utilization, accelerator's duty cycle, and so on) for calculating the desired replica count. */ interface GoogleCloudAiplatformV1beta1AutoscalingMetricSpecResponse { /** * The resource metric name. Supported metrics: * For Online Prediction: * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle` * `aiplatform.googleapis.com/prediction/online/cpu/utilization` */ metricName: string; /** * The target resource utilization in percentage (1% - 100%) for the given metric; once the real usage deviates from the target by a certain percentage, the machine replicas change. The default value is 60 (representing 60%) if not provided. */ target: number; } /** * A description of resources that are used for performing batch operations, are dedicated to a Model, and need manual configuration. */ interface GoogleCloudAiplatformV1beta1BatchDedicatedResourcesResponse { /** * Immutable. The specification of a single machine. */ machineSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1MachineSpecResponse; /** * Immutable. The maximum number of machine replicas the batch operation may be scaled to. The default value is 10. */ maxReplicaCount: number; /** * Immutable. The number of machine replicas used at the start of the batch operation. If not set, Vertex AI decides starting number, not greater than max_replica_count */ startingReplicaCount: number; } /** * Configures the input to BatchPredictionJob. See Model.supported_input_storage_formats for Model's supported input formats, and how instances should be expressed via any of them. */ interface GoogleCloudAiplatformV1beta1BatchPredictionJobInputConfigResponse { /** * The BigQuery location of the input table. The schema of the table should be in the format described by the given context OpenAPI Schema, if one is provided. The table may contain additional columns that are not described by the schema, and they will be ignored. */ bigquerySource: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1BigQuerySourceResponse; /** * The Cloud Storage location for the input instances. */ gcsSource: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1GcsSourceResponse; /** * The format in which instances are given, must be one of the Model's supported_input_storage_formats. */ instancesFormat: string; } /** * Configuration defining how to transform batch prediction input instances to the instances that the Model accepts. */ interface GoogleCloudAiplatformV1beta1BatchPredictionJobInstanceConfigResponse { /** * Fields that will be excluded in the prediction instance that is sent to the Model. Excluded will be attached to the batch prediction output if key_field is not specified. When excluded_fields is populated, included_fields must be empty. The input must be JSONL with objects at each line, CSV, BigQuery or TfRecord. */ excludedFields: string[]; /** * Fields that will be included in the prediction instance that is sent to the Model. If instance_type is `array`, the order of field names in included_fields also determines the order of the values in the array. When included_fields is populated, excluded_fields must be empty. The input must be JSONL with objects at each line, CSV, BigQuery or TfRecord. */ includedFields: string[]; /** * The format of the instance that the Model accepts. Vertex AI will convert compatible batch prediction input instance formats to the specified format. Supported values are: * `object`: Each input is converted to JSON object format. * For `bigquery`, each row is converted to an object. * For `jsonl`, each line of the JSONL input must be an object. * Does not apply to `csv`, `file-list`, `tf-record`, or `tf-record-gzip`. * `array`: Each input is converted to JSON array format. * For `bigquery`, each row is converted to an array. The order of columns is determined by the BigQuery column order, unless included_fields is populated. included_fields must be populated for specifying field orders. * For `jsonl`, if each line of the JSONL input is an object, included_fields must be populated for specifying field orders. * Does not apply to `csv`, `file-list`, `tf-record`, or `tf-record-gzip`. If not specified, Vertex AI converts the batch prediction input as follows: * For `bigquery` and `csv`, the behavior is the same as `array`. The order of columns is the same as defined in the file or table, unless included_fields is populated. * For `jsonl`, the prediction instance format is determined by each line of the input. * For `tf-record`/`tf-record-gzip`, each record will be converted to an object in the format of `{"b64": }`, where `` is the Base64-encoded string of the content of the record. * For `file-list`, each file in the list will be converted to an object in the format of `{"b64": }`, where `` is the Base64-encoded string of the content of the file. */ instanceType: string; /** * The name of the field that is considered as a key. The values identified by the key field is not included in the transformed instances that is sent to the Model. This is similar to specifying this name of the field in excluded_fields. In addition, the batch prediction output will not include the instances. Instead the output will only include the value of the key field, in a field named `key` in the output: * For `jsonl` output format, the output will have a `key` field instead of the `instance` field. * For `csv`/`bigquery` output format, the output will have have a `key` column instead of the instance feature columns. The input must be JSONL with objects at each line, CSV, BigQuery or TfRecord. */ keyField: string; } /** * Configures the output of BatchPredictionJob. See Model.supported_output_storage_formats for supported output formats, and how predictions are expressed via any of them. */ interface GoogleCloudAiplatformV1beta1BatchPredictionJobOutputConfigResponse { /** * The BigQuery project or dataset location where the output is to be written to. If project is provided, a new dataset is created with name `prediction__` where is made BigQuery-dataset-name compatible (for example, most special characters become underscores), and timestamp is in YYYY_MM_DDThh_mm_ss_sssZ "based on ISO-8601" format. In the dataset two tables will be created, `predictions`, and `errors`. If the Model has both instance and prediction schemata defined then the tables have columns as follows: The `predictions` table contains instances for which the prediction succeeded, it has columns as per a concatenation of the Model's instance and prediction schemata. The `errors` table contains rows for which the prediction has failed, it has instance columns, as per the instance schema, followed by a single "errors" column, which as values has google.rpc.Status represented as a STRUCT, and containing only `code` and `message`. */ bigqueryDestination: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1BigQueryDestinationResponse; /** * The Cloud Storage location of the directory where the output is to be written to. In the given directory a new directory is created. Its name is `prediction--`, where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. Inside of it files `predictions_0001.`, `predictions_0002.`, ..., `predictions_N.` are created where `` depends on chosen predictions_format, and N may equal 0001 and depends on the total number of successfully predicted instances. If the Model has both instance and prediction schemata defined then each such file contains predictions as per the predictions_format. If prediction for any instance failed (partially or completely), then an additional `errors_0001.`, `errors_0002.`,..., `errors_N.` files are created (N depends on total number of failed predictions). These files contain the failed instances, as per their schema, followed by an additional `error` field which as value has google.rpc.Status containing only `code` and `message` fields. */ gcsDestination: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1GcsDestinationResponse; /** * The format in which Vertex AI gives the predictions, must be one of the Model's supported_output_storage_formats. */ predictionsFormat: string; } /** * Further describes this job's output. Supplements output_config. */ interface GoogleCloudAiplatformV1beta1BatchPredictionJobOutputInfoResponse { /** * The path of the BigQuery dataset created, in `bq://projectId.bqDatasetId` format, into which the prediction output is written. */ bigqueryOutputDataset: string; /** * The name of the BigQuery table created, in `predictions_` format, into which the prediction output is written. Can be used by UI to generate the BigQuery output path, for example. */ bigqueryOutputTable: string; /** * The full path of the Cloud Storage directory created, into which the prediction output is written. */ gcsOutputDirectory: string; } /** * The BigQuery location for the output content. */ interface GoogleCloudAiplatformV1beta1BigQueryDestinationResponse { /** * BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: * BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. */ outputUri: string; } /** * The BigQuery location for the input content. */ interface GoogleCloudAiplatformV1beta1BigQuerySourceResponse { /** * BigQuery URI to a table, up to 2000 characters long. Accepted forms: * BigQuery path. For example: `bq://projectId.bqDatasetId.bqTableId`. */ inputUri: string; } /** * Config for blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383 */ interface GoogleCloudAiplatformV1beta1BlurBaselineConfigResponse { /** * The standard deviation of the blur kernel for the blurred baseline. The same blurring parameter is used for both the height and the width dimension. If not set, the method defaults to the zero (i.e. black for images) baseline. */ maxBlurSigma: number; } /** * Success and error statistics of processing multiple entities (for example, DataItems or structured data rows) in batch. */ interface GoogleCloudAiplatformV1beta1CompletionStatsResponse { /** * The number of entities for which any error was encountered. */ failedCount: string; /** * In cases when enough errors are encountered a job, pipeline, or operation may be failed as a whole. Below is the number of entities for which the processing had not been finished (either in successful or failed state). Set to -1 if the number is unknown (for example, the operation failed before the total entity number could be collected). */ incompleteCount: string; /** * The number of entities that had been processed successfully. */ successfulCount: string; /** * The number of the successful forecast points that are generated by the forecasting model. This is ONLY used by the forecasting batch prediction. */ successfulForecastPointCount: string; } /** * The spec of a Container. */ interface GoogleCloudAiplatformV1beta1ContainerSpecResponse { /** * The arguments to be passed when starting the container. */ args: string[]; /** * The command to be invoked when the container is started. It overrides the entrypoint instruction in Dockerfile when provided. */ command: string[]; /** * Environment variables to be passed to the container. Maximum limit is 100. */ env: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1EnvVarResponse[]; /** * The URI of a container image in the Container Registry that is to be run on each worker replica. */ imageUri: string; } /** * Instance of a general context. */ interface GoogleCloudAiplatformV1beta1ContextResponse { /** * Timestamp when this Context was created. */ createTime: string; /** * Description of the Context */ description: string; /** * User provided display name of the Context. May be up to 128 Unicode characters. */ displayName: string; /** * An eTag used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens. */ etag: string; /** * The labels with user-defined metadata to organize your Contexts. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Context (System labels are excluded). */ labels: { [key: string]: string; }; /** * Properties of the Context. Top level metadata keys' heading and trailing spaces will be trimmed. The size of this field should not exceed 200KB. */ metadata: { [key: string]: string; }; /** * Immutable. The resource name of the Context. */ name: string; /** * A list of resource names of Contexts that are parents of this Context. A Context may have at most 10 parent_contexts. */ parentContexts: string[]; /** * The title of the schema describing the metadata. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store. */ schemaTitle: string; /** * The version of the schema in schema_name to use. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store. */ schemaVersion: string; /** * Timestamp when this Context was last updated. */ updateTime: string; } /** * Request message for PipelineService.CreatePipelineJob. */ interface GoogleCloudAiplatformV1beta1CreatePipelineJobRequestResponse { /** * The resource name of the Location to create the PipelineJob in. Format: `projects/{project}/locations/{location}` */ parent: string; /** * The PipelineJob to create. */ pipelineJob: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PipelineJobResponse; /** * The ID to use for the PipelineJob, which will become the final component of the PipelineJob name. If not provided, an ID will be automatically generated. This value should be less than 128 characters, and valid characters are `/a-z-/`. */ pipelineJobId: string; } /** * Represents the spec of a CustomJob. */ interface GoogleCloudAiplatformV1beta1CustomJobSpecResponse { /** * The Cloud Storage location to store the output of this CustomJob or HyperparameterTuningJob. For HyperparameterTuningJob, the baseOutputDirectory of each child CustomJob backing a Trial is set to a subdirectory of name id under its parent HyperparameterTuningJob's baseOutputDirectory. The following Vertex AI environment variables will be passed to containers or python modules when this field is set: For CustomJob: * AIP_MODEL_DIR = `/model/` * AIP_CHECKPOINT_DIR = `/checkpoints/` * AIP_TENSORBOARD_LOG_DIR = `/logs/` For CustomJob backing a Trial of HyperparameterTuningJob: * AIP_MODEL_DIR = `//model/` * AIP_CHECKPOINT_DIR = `//checkpoints/` * AIP_TENSORBOARD_LOG_DIR = `//logs/` */ baseOutputDirectory: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1GcsDestinationResponse; /** * Optional. Whether you want Vertex AI to enable access to the customized dashboard in training chief container. If set to `true`, you can access the dashboard at the URIs given by CustomJob.web_access_uris or Trial.web_access_uris (within HyperparameterTuningJob.trials). */ enableDashboardAccess: boolean; /** * Optional. Whether you want Vertex AI to enable [interactive shell access](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) to training containers. If set to `true`, you can access interactive shells at the URIs given by CustomJob.web_access_uris or Trial.web_access_uris (within HyperparameterTuningJob.trials). */ enableWebAccess: boolean; /** * Optional. The Experiment associated with this job. Format: `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}` */ experiment: string; /** * Optional. The Experiment Run associated with this job. Format: `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}` */ experimentRun: string; /** * Optional. The full name of the Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the Job should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in `12345`, and {network} is a network name. To specify this field, you must have already [configured VPC Network Peering for Vertex AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering). If this field is left unspecified, the job is not peered with any network. */ network: string; /** * Optional. The ID of the PersistentResource in the same Project and Location which to run If this is specified, the job will be run on existing machines held by the PersistentResource instead of on-demand short-live machines. The network and CMEK configs on the job should be consistent with those on the PersistentResource, otherwise, the job will be rejected. */ persistentResourceId: string; /** * The ID of the location to store protected artifacts. e.g. us-central1. Populate only when the location is different than CustomJob location. List of supported locations: https://cloud.google.com/vertex-ai/docs/general/locations */ protectedArtifactLocationId: string; /** * Optional. A list of names for the reserved ip ranges under the VPC network that can be used for this job. If set, we will deploy the job within the provided ip ranges. Otherwise, the job will be deployed to any ip ranges under the provided VPC network. Example: ['vertex-ai-ip-range']. */ reservedIpRanges: string[]; /** * Scheduling options for a CustomJob. */ scheduling: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1SchedulingResponse; /** * Specifies the service account for workload run-as account. Users submitting jobs must have act-as permission on this run-as account. If unspecified, the [Vertex AI Custom Code Service Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) for the CustomJob's project is used. */ serviceAccount: string; /** * Optional. The name of a Vertex AI Tensorboard resource to which this CustomJob will upload Tensorboard logs. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}` */ tensorboard: string; /** * The spec of the worker pools including machine type and Docker image. All worker pools except the first one are optional and can be skipped by providing an empty value. */ workerPoolSpecs: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1WorkerPoolSpecResponse[]; } /** * A description of resources that are dedicated to a DeployedModel, and that need a higher degree of manual configuration. */ interface GoogleCloudAiplatformV1beta1DedicatedResourcesResponse { /** * Immutable. The metric specifications that overrides a resource utilization metric (CPU utilization, accelerator's duty cycle, and so on) target value (default to 60 if not set). At most one entry is allowed per metric. If machine_spec.accelerator_count is above 0, the autoscaling will be based on both CPU utilization and accelerator's duty cycle metrics and scale up when either metrics exceeds its target value while scale down if both metrics are under their target value. The default target value is 60 for both metrics. If machine_spec.accelerator_count is 0, the autoscaling will be based on CPU utilization metric only with default target value 60 if not explicitly set. For example, in the case of Online Prediction, if you want to override target CPU utilization to 80, you should set autoscaling_metric_specs.metric_name to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and autoscaling_metric_specs.target to `80`. */ autoscalingMetricSpecs: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1AutoscalingMetricSpecResponse[]; /** * Immutable. The specification of a single machine used by the prediction. */ machineSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1MachineSpecResponse; /** * Immutable. The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, will use min_replica_count as the default value. The value of this field impacts the charge against Vertex CPU and GPU quotas. Specifically, you will be charged for (max_replica_count * number of cores in the selected machine type) and (max_replica_count * number of GPUs per replica in the selected machine type). */ maxReplicaCount: number; /** * Immutable. The minimum number of machine replicas this DeployedModel will be always deployed on. This value must be greater than or equal to 1. If traffic against the DeployedModel increases, it may dynamically be deployed onto more replicas, and as traffic decreases, some of these extra replicas may be freed. */ minReplicaCount: number; } /** * Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). */ interface GoogleCloudAiplatformV1beta1DeployedIndexAuthConfigAuthProviderResponse { /** * A list of allowed JWT issuers. Each entry must be a valid Google service account, in the following format: `service-account-name@project-id.iam.gserviceaccount.com` */ allowedIssuers: string[]; /** * The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. */ audiences: string[]; } /** * Used to set up the auth on the DeployedIndex's private endpoint. */ interface GoogleCloudAiplatformV1beta1DeployedIndexAuthConfigResponse { /** * Defines the authentication provider that the DeployedIndex uses. */ authProvider: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1DeployedIndexAuthConfigAuthProviderResponse; } /** * Points to a DeployedIndex. */ interface GoogleCloudAiplatformV1beta1DeployedIndexRefResponse { /** * Immutable. The ID of the DeployedIndex in the above IndexEndpoint. */ deployedIndexId: string; /** * Immutable. A resource name of the IndexEndpoint. */ indexEndpoint: string; } /** * A deployment of an Index. IndexEndpoints contain one or more DeployedIndexes. */ interface GoogleCloudAiplatformV1beta1DeployedIndexResponse { /** * Optional. A description of resources that the DeployedIndex uses, which to large degree are decided by Vertex AI, and optionally allows only a modest additional configuration. If min_replica_count is not set, the default value is 2 (we don't provide SLA when min_replica_count=1). If max_replica_count is not set, the default value is min_replica_count. The max allowed replica count is 1000. */ automaticResources: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1AutomaticResourcesResponse; /** * Timestamp when the DeployedIndex was created. */ createTime: string; /** * Optional. A description of resources that are dedicated to the DeployedIndex, and that need a higher degree of manual configuration. The field min_replica_count must be set to a value strictly greater than 0, or else validation will fail. We don't provide SLA when min_replica_count=1. If max_replica_count is not set, the default value is min_replica_count. The max allowed replica count is 1000. Available machine types for SMALL shard: e2-standard-2 and all machine types available for MEDIUM and LARGE shard. Available machine types for MEDIUM shard: e2-standard-16 and all machine types available for LARGE shard. Available machine types for LARGE shard: e2-highmem-16, n2d-standard-32. n1-standard-16 and n1-standard-32 are still available, but we recommend e2-standard-16 and e2-highmem-16 for cost efficiency. */ dedicatedResources: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1DedicatedResourcesResponse; /** * Optional. If set, the authentication is enabled for the private endpoint. */ deployedIndexAuthConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1DeployedIndexAuthConfigResponse; /** * Optional. The deployment group can be no longer than 64 characters (eg: 'test', 'prod'). If not set, we will use the 'default' deployment group. Creating `deployment_groups` with `reserved_ip_ranges` is a recommended practice when the peered network has multiple peering ranges. This creates your deployments from predictable IP spaces for easier traffic administration. Also, one deployment_group (except 'default') can only be used with the same reserved_ip_ranges which means if the deployment_group has been used with reserved_ip_ranges: [a, b, c], using it with [a, b] or [d, e] is disallowed. Note: we only support up to 5 deployment groups(not including 'default'). */ deploymentGroup: string; /** * The display name of the DeployedIndex. If not provided upon creation, the Index's display_name is used. */ displayName: string; /** * Optional. If true, private endpoint's access logs are sent to Cloud Logging. These logs are like standard server access logs, containing information like timestamp and latency for each MatchRequest. Note that logs may incur a cost, especially if the deployed index receives a high queries per second rate (QPS). Estimate your costs before enabling this option. */ enableAccessLogging: boolean; /** * The name of the Index this is the deployment of. We may refer to this Index as the DeployedIndex's "original" Index. */ index: string; /** * The DeployedIndex may depend on various data on its original Index. Additionally when certain changes to the original Index are being done (e.g. when what the Index contains is being changed) the DeployedIndex may be asynchronously updated in the background to reflect these changes. If this timestamp's value is at least the Index.update_time of the original Index, it means that this DeployedIndex and the original Index are in sync. If this timestamp is older, then to see which updates this DeployedIndex already contains (and which it does not), one must list the operations that are running on the original Index. Only the successfully completed Operations with update_time equal or before this sync time are contained in this DeployedIndex. */ indexSyncTime: string; /** * Provides paths for users to send requests directly to the deployed index services running on Cloud via private services access. This field is populated if network is configured. */ privateEndpoints: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1IndexPrivateEndpointsResponse; /** * Optional. A list of reserved ip ranges under the VPC network that can be used for this DeployedIndex. If set, we will deploy the index within the provided ip ranges. Otherwise, the index might be deployed to any ip ranges under the provided VPC network. The value should be the name of the address (https://cloud.google.com/compute/docs/reference/rest/v1/addresses) Example: ['vertex-ai-ip-range']. For more information about subnets and network IP ranges, please see https://cloud.google.com/vpc/docs/subnets#manually_created_subnet_ip_ranges. */ reservedIpRanges: string[]; } /** * Points to a DeployedModel. */ interface GoogleCloudAiplatformV1beta1DeployedModelRefResponse { /** * Immutable. An ID of a DeployedModel in the above Endpoint. */ deployedModelId: string; /** * Immutable. A resource name of an Endpoint. */ endpoint: string; } /** * A deployment of a Model. Endpoints contain one or more DeployedModels. */ interface GoogleCloudAiplatformV1beta1DeployedModelResponse { /** * A description of resources that to large degree are decided by Vertex AI, and require only a modest additional configuration. */ automaticResources: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1AutomaticResourcesResponse; /** * Timestamp when the DeployedModel was created. */ createTime: string; /** * A description of resources that are dedicated to the DeployedModel, and that need a higher degree of manual configuration. */ dedicatedResources: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1DedicatedResourcesResponse; /** * If true, deploy the model without explainable feature, regardless the existence of Model.explanation_spec or explanation_spec. */ disableExplanations: boolean; /** * The display name of the DeployedModel. If not provided upon creation, the Model's display_name is used. */ displayName: string; /** * If true, online prediction access logs are sent to Cloud Logging. These logs are like standard server access logs, containing information like timestamp and latency for each prediction request. Note that logs may incur a cost, especially if your project receives prediction requests at a high queries per second rate (QPS). Estimate your costs before enabling this option. */ enableAccessLogging: boolean; /** * If true, the container of the DeployedModel instances will send `stderr` and `stdout` streams to Cloud Logging. Only supported for custom-trained Models and AutoML Tabular Models. */ enableContainerLogging: boolean; /** * Explanation configuration for this DeployedModel. When deploying a Model using EndpointService.DeployModel, this value overrides the value of Model.explanation_spec. All fields of explanation_spec are optional in the request. If a field of explanation_spec is not populated, the value of the same field of Model.explanation_spec is inherited. If the corresponding Model.explanation_spec is not populated, all fields of the explanation_spec will be used for the explanation configuration. */ explanationSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ExplanationSpecResponse; /** * The resource name of the Model that this is the deployment of. Note that the Model may be in a different location than the DeployedModel's Endpoint. The resource name may contain version id or version alias to specify the version. Example: `projects/{project}/locations/{location}/models/{model}@2` or `projects/{project}/locations/{location}/models/{model}@golden` if no version is specified, the default version will be deployed. */ model: string; /** * The version ID of the model that is deployed. */ modelVersionId: string; /** * Provide paths for users to send predict/explain/health requests directly to the deployed model services running on Cloud via private services access. This field is populated if network is configured. */ privateEndpoints: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PrivateEndpointsResponse; /** * The service account that the DeployedModel's container runs as. Specify the email address of the service account. If this service account is not specified, the container runs as a service account that doesn't have access to the resource project. Users deploying the Model must have the `iam.serviceAccounts.actAs` permission on this service account. */ serviceAccount: string; /** * The resource name of the shared DeploymentResourcePool to deploy on. Format: `projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}` */ sharedResources: string; } /** * Represents the spec of disk options. */ interface GoogleCloudAiplatformV1beta1DiskSpecResponse { /** * Size in GB of the boot disk (default is 100GB). */ bootDiskSizeGb: number; /** * Type of the boot disk (default is "pd-ssd"). Valid values: "pd-ssd" (Persistent Disk Solid State Drive) or "pd-standard" (Persistent Disk Hard Disk Drive). */ bootDiskType: string; } /** * Represents a customer-managed encryption key spec that can be applied to a top-level resource. */ interface GoogleCloudAiplatformV1beta1EncryptionSpecResponse { /** * The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. The key needs to be in the same region as where the compute resource is created. */ kmsKeyName: string; } /** * Represents an environment variable present in a Container or Python Module. */ interface GoogleCloudAiplatformV1beta1EnvVarResponse { /** * Name of the environment variable. Must be a valid C identifier. */ name: string; /** * Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. */ value: string; } /** * The Cloud Storage input instances. */ interface GoogleCloudAiplatformV1beta1ExamplesExampleGcsSourceResponse { /** * The format in which instances are given, if not specified, assume it's JSONL format. Currently only JSONL format is supported. */ dataFormat: string; /** * The Cloud Storage location for the input instances. */ gcsSource: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1GcsSourceResponse; } /** * Example-based explainability that returns the nearest neighbors from the provided dataset. */ interface GoogleCloudAiplatformV1beta1ExamplesResponse { /** * The Cloud Storage input instances. */ exampleGcsSource: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ExamplesExampleGcsSourceResponse; /** * The Cloud Storage locations that contain the instances to be indexed for approximate nearest neighbor search. */ gcsSource: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1GcsSourceResponse; /** * The full configuration for the generated index, the semantics are the same as metadata and should match [NearestNeighborSearchConfig](https://cloud.google.com/vertex-ai/docs/explainable-ai/configuring-explanations-example-based#nearest-neighbor-search-config). */ nearestNeighborSearchConfig: any; /** * The number of neighbors to return when querying for examples. */ neighborCount: number; /** * Simplified preset configuration, which automatically sets configuration values based on the desired query speed-precision trade-off and modality. */ presets: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PresetsResponse; } /** * Instance of a general execution. */ interface GoogleCloudAiplatformV1beta1ExecutionResponse { /** * Timestamp when this Execution was created. */ createTime: string; /** * Description of the Execution */ description: string; /** * User provided display name of the Execution. May be up to 128 Unicode characters. */ displayName: string; /** * An eTag used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens. */ etag: string; /** * The labels with user-defined metadata to organize your Executions. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Execution (System labels are excluded). */ labels: { [key: string]: string; }; /** * Properties of the Execution. Top level metadata keys' heading and trailing spaces will be trimmed. The size of this field should not exceed 200KB. */ metadata: { [key: string]: string; }; /** * The resource name of the Execution. */ name: string; /** * The title of the schema describing the metadata. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store. */ schemaTitle: string; /** * The version of the schema in `schema_title` to use. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store. */ schemaVersion: string; /** * The state of this Execution. This is a property of the Execution, and does not imply or capture any ongoing process. This property is managed by clients (such as Vertex AI Pipelines) and the system does not prescribe or check the validity of state transitions. */ state: string; /** * Timestamp when this Execution was last updated. */ updateTime: string; } /** * Metadata describing the Model's input and output for explanation. */ interface GoogleCloudAiplatformV1beta1ExplanationMetadataResponse { /** * Points to a YAML file stored on Google Cloud Storage describing the format of the feature attributions. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML tabular Models always have this field populated by Vertex AI. Note: The URI given on output may be different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access. */ featureAttributionsSchemaUri: string; /** * Map from feature names to feature input metadata. Keys are the name of the features. Values are the specification of the feature. An empty InputMetadata is valid. It describes a text feature which has the name specified as the key in ExplanationMetadata.inputs. The baseline of the empty feature is chosen by Vertex AI. For Vertex AI-provided Tensorflow images, the key can be any friendly name of the feature. Once specified, featureAttributions are keyed by this key (if not grouped with another feature). For custom images, the key must match with the key in instance. */ inputs: { [key: string]: string; }; /** * Name of the source to generate embeddings for example based explanations. */ latentSpaceSource: string; /** * Map from output names to output metadata. For Vertex AI-provided Tensorflow images, keys can be any user defined string that consists of any UTF-8 characters. For custom images, keys are the name of the output field in the prediction to be explained. Currently only one key is allowed. */ outputs: { [key: string]: string; }; } /** * Parameters to configure explaining for Model's predictions. */ interface GoogleCloudAiplatformV1beta1ExplanationParametersResponse { /** * Example-based explanations that returns the nearest neighbors from the provided dataset. */ examples: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ExamplesResponse; /** * An attribution method that computes Aumann-Shapley values taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1703.01365 */ integratedGradientsAttribution: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1IntegratedGradientsAttributionResponse; /** * If populated, only returns attributions that have output_index contained in output_indices. It must be an ndarray of integers, with the same shape of the output it's explaining. If not populated, returns attributions for top_k indices of outputs. If neither top_k nor output_indices is populated, returns the argmax index of the outputs. Only applicable to Models that predict multiple outputs (e,g, multi-class Models that predict multiple classes). */ outputIndices: any[]; /** * An attribution method that approximates Shapley values for features that contribute to the label being predicted. A sampling strategy is used to approximate the value rather than considering all subsets of features. Refer to this paper for model details: https://arxiv.org/abs/1306.4265. */ sampledShapleyAttribution: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1SampledShapleyAttributionResponse; /** * If populated, returns attributions for top K indices of outputs (defaults to 1). Only applies to Models that predicts more than one outputs (e,g, multi-class Models). When set to -1, returns explanations for all outputs. */ topK: number; /** * An attribution method that redistributes Integrated Gradients attribution to segmented regions, taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1906.02825 XRAI currently performs better on natural images, like a picture of a house or an animal. If the images are taken in artificial environments, like a lab or manufacturing line, or from diagnostic equipment, like x-rays or quality-control cameras, use Integrated Gradients instead. */ xraiAttribution: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1XraiAttributionResponse; } /** * Specification of Model explanation. */ interface GoogleCloudAiplatformV1beta1ExplanationSpecResponse { /** * Optional. Metadata describing the Model's input and output for explanation. */ metadata: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ExplanationMetadataResponse; /** * Parameters that configure explaining of the Model's predictions. */ parameters: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ExplanationParametersResponse; } /** * Input source type for BigQuery Tables and Views. */ interface GoogleCloudAiplatformV1beta1FeatureGroupBigQueryResponse { /** * Immutable. The BigQuery source URI that points to either a BigQuery Table or View. */ bigQuerySource: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1BigQuerySourceResponse; /** * Optional. Columns to construct entity_id / row keys. Currently only supports 1 entity_id_column. If not provided defaults to `entity_id`. */ entityIdColumns: string[]; } /** * A list of historical SnapshotAnalysis or ImportFeaturesAnalysis stats requested by user, sorted by FeatureStatsAnomaly.start_time descending. */ interface GoogleCloudAiplatformV1beta1FeatureMonitoringStatsAnomalyResponse { /** * The stats and anomalies generated at specific timestamp. */ featureStatsAnomaly: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeatureStatsAnomalyResponse; /** * The objective for each stats. */ objective: string; } /** * Noise sigma for a single feature. */ interface GoogleCloudAiplatformV1beta1FeatureNoiseSigmaNoiseSigmaForFeatureResponse { /** * The name of the input feature for which noise sigma is provided. The features are defined in explanation metadata inputs. */ name: string; /** * This represents the standard deviation of the Gaussian kernel that will be used to add noise to the feature prior to computing gradients. Similar to noise_sigma but represents the noise added to the current feature. Defaults to 0.1. */ sigma: number; } /** * Noise sigma by features. Noise sigma represents the standard deviation of the gaussian kernel that will be used to add noise to interpolated inputs prior to computing gradients. */ interface GoogleCloudAiplatformV1beta1FeatureNoiseSigmaResponse { /** * Noise sigma per feature. No noise is added to features that are not set. */ noiseSigma: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeatureNoiseSigmaNoiseSigmaForFeatureResponse[]; } interface GoogleCloudAiplatformV1beta1FeatureOnlineStoreBigtableAutoScalingResponse { /** * Optional. A percentage of the cluster's CPU capacity. Can be from 10% to 80%. When a cluster's CPU utilization exceeds the target that you have set, Bigtable immediately adds nodes to the cluster. When CPU utilization is substantially lower than the target, Bigtable removes nodes. If not set will default to 50%. */ cpuUtilizationTarget: number; /** * The maximum number of nodes to scale up to. Must be greater than or equal to min_node_count, and less than or equal to 10 times of 'min_node_count'. */ maxNodeCount: number; /** * The minimum number of nodes to scale down to. Must be greater than or equal to 1. */ minNodeCount: number; } interface GoogleCloudAiplatformV1beta1FeatureOnlineStoreBigtableResponse { /** * Autoscaling config applied to Bigtable Instance. */ autoScaling: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeatureOnlineStoreBigtableAutoScalingResponse; } /** * The dedicated serving endpoint for this FeatureOnlineStore. Only need to set when you choose Optimized storage type or enable EmbeddingManagement. Will use public endpoint by default. */ interface GoogleCloudAiplatformV1beta1FeatureOnlineStoreDedicatedServingEndpointResponse { /** * Optional. Private service connect config. If PrivateServiceConnectConfig.enable_private_service_connect set to true, customers will use private service connection to send request. Otherwise, the connection will set to public endpoint. */ privateServiceConnectConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PrivateServiceConnectConfigResponse; /** * This field will be populated with the domain name to use for this FeatureOnlineStore */ publicEndpointDomainName: string; /** * The name of the service attachment resource. Populated if private service connect is enabled and after FeatureViewSync is created. */ serviceAttachment: string; } /** * Contains settings for embedding management. */ interface GoogleCloudAiplatformV1beta1FeatureOnlineStoreEmbeddingManagementResponse { /** * Optional. Immutable. Whether to enable embedding management in this FeatureOnlineStore. It's immutable after creation to ensure the FeatureOnlineStore availability. */ enabled: boolean; } /** * Optimized storage type */ interface GoogleCloudAiplatformV1beta1FeatureOnlineStoreOptimizedResponse { } /** * Stats and Anomaly generated at specific timestamp for specific Feature. The start_time and end_time are used to define the time range of the dataset that current stats belongs to, e.g. prediction traffic is bucketed into prediction datasets by time window. If the Dataset is not defined by time window, start_time = end_time. Timestamp of the stats and anomalies always refers to end_time. Raw stats and anomalies are stored in stats_uri or anomaly_uri in the tensorflow defined protos. Field data_stats contains almost identical information with the raw stats in Vertex AI defined proto, for UI to display. */ interface GoogleCloudAiplatformV1beta1FeatureStatsAnomalyResponse { /** * This is the threshold used when detecting anomalies. The threshold can be changed by user, so this one might be different from ThresholdConfig.value. */ anomalyDetectionThreshold: number; /** * Path of the anomaly file for current feature values in Cloud Storage bucket. Format: gs:////anomalies. Example: gs://monitoring_bucket/feature_name/anomalies. Stats are stored as binary format with Protobuf message Anoamlies are stored as binary format with Protobuf message [tensorflow.metadata.v0.AnomalyInfo] (https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/anomalies.proto). */ anomalyUri: string; /** * Deviation from the current stats to baseline stats. 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence. */ distributionDeviation: number; /** * The end timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), end_time indicates the timestamp of the data used to generate stats (e.g. timestamp we take snapshots for feature values). */ endTime: string; /** * Feature importance score, only populated when cross-feature monitoring is enabled. For now only used to represent feature attribution score within range [0, 1] for ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_SKEW and ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_DRIFT. */ score: number; /** * The start timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), start_time is only used to indicate the monitoring intervals, so it always equals to (end_time - monitoring_interval). */ startTime: string; /** * Path of the stats file for current feature values in Cloud Storage bucket. Format: gs:////stats. Example: gs://monitoring_bucket/feature_name/stats. Stats are stored as binary format with Protobuf message [tensorflow.metadata.v0.FeatureNameStatistics](https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/statistics.proto). */ statsUri: string; } interface GoogleCloudAiplatformV1beta1FeatureViewBigQuerySourceResponse { /** * Columns to construct entity_id / row keys. Start by supporting 1 only. */ entityIdColumns: string[]; /** * The BigQuery view URI that will be materialized on each sync trigger based on FeatureView.SyncConfig. */ uri: string; } /** * Features belonging to a single feature group that will be synced to Online Store. */ interface GoogleCloudAiplatformV1beta1FeatureViewFeatureRegistrySourceFeatureGroupResponse { /** * Identifier of the feature group. */ featureGroupId: string; /** * Identifiers of features under the feature group. */ featureIds: string[]; } /** * A Feature Registry source for features that need to be synced to Online Store. */ interface GoogleCloudAiplatformV1beta1FeatureViewFeatureRegistrySourceResponse { /** * List of features that need to be synced to Online Store. */ featureGroups: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeatureViewFeatureRegistrySourceFeatureGroupResponse[]; } interface GoogleCloudAiplatformV1beta1FeatureViewSyncConfigResponse { /** * Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled runs. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or "TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, "CRON_TZ=America/New_York 1 * * * *", or "TZ=America/New_York 1 * * * *". */ cron: string; } interface GoogleCloudAiplatformV1beta1FeatureViewVectorSearchConfigBruteForceConfigResponse { } /** * Configuration for vector search. */ interface GoogleCloudAiplatformV1beta1FeatureViewVectorSearchConfigResponse { /** * Optional. Configuration options for using brute force search, which simply implements the standard linear search in the database for each query. It is primarily meant for benchmarking and to generate the ground truth for approximate search. */ bruteForceConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeatureViewVectorSearchConfigBruteForceConfigResponse; /** * Optional. Column of crowding. This column contains crowding attribute which is a constraint on a neighbor list produced by nearest neighbor search requiring that no more than some value k' of the k neighbors returned have the same value of crowding_attribute. */ crowdingColumn: string; /** * Optional. The distance measure used in nearest neighbor search. */ distanceMeasureType: string; /** * Optional. Column of embedding. This column contains the source data to create index for vector search. embedding_column must be set when using vector search. */ embeddingColumn: string; /** * Optional. The number of dimensions of the input embedding. */ embeddingDimension: number; /** * Optional. Columns of features that're used to filter vector search results. */ filterColumns: string[]; /** * Optional. Configuration options for the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396 */ treeAhConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeatureViewVectorSearchConfigTreeAHConfigResponse; } interface GoogleCloudAiplatformV1beta1FeatureViewVectorSearchConfigTreeAHConfigResponse { /** * Optional. Number of embeddings on each leaf node. The default value is 1000 if not set. */ leafNodeEmbeddingCount: string; } /** * Configuration of the Featurestore's ImportFeature Analysis Based Monitoring. This type of analysis generates statistics for values of each Feature imported by every ImportFeatureValues operation. */ interface GoogleCloudAiplatformV1beta1FeaturestoreMonitoringConfigImportFeaturesAnalysisResponse { /** * The baseline used to do anomaly detection for the statistics generated by import features analysis. */ anomalyDetectionBaseline: string; /** * Whether to enable / disable / inherite default hebavior for import features analysis. */ state: string; } /** * Configuration of how features in Featurestore are monitored. */ interface GoogleCloudAiplatformV1beta1FeaturestoreMonitoringConfigResponse { /** * Threshold for categorical features of anomaly detection. This is shared by all types of Featurestore Monitoring for categorical features (i.e. Features with type (Feature.ValueType) BOOL or STRING). */ categoricalThresholdConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeaturestoreMonitoringConfigThresholdConfigResponse; /** * The config for ImportFeatures Analysis Based Feature Monitoring. */ importFeaturesAnalysis: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeaturestoreMonitoringConfigImportFeaturesAnalysisResponse; /** * Threshold for numerical features of anomaly detection. This is shared by all objectives of Featurestore Monitoring for numerical features (i.e. Features with type (Feature.ValueType) DOUBLE or INT64). */ numericalThresholdConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeaturestoreMonitoringConfigThresholdConfigResponse; /** * The config for Snapshot Analysis Based Feature Monitoring. */ snapshotAnalysis: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeaturestoreMonitoringConfigSnapshotAnalysisResponse; } /** * Configuration of the Featurestore's Snapshot Analysis Based Monitoring. This type of analysis generates statistics for each Feature based on a snapshot of the latest feature value of each entities every monitoring_interval. */ interface GoogleCloudAiplatformV1beta1FeaturestoreMonitoringConfigSnapshotAnalysisResponse { /** * The monitoring schedule for snapshot analysis. For EntityType-level config: unset / disabled = true indicates disabled by default for Features under it; otherwise by default enable snapshot analysis monitoring with monitoring_interval for Features under it. Feature-level config: disabled = true indicates disabled regardless of the EntityType-level config; unset monitoring_interval indicates going with EntityType-level config; otherwise run snapshot analysis monitoring with monitoring_interval regardless of the EntityType-level config. Explicitly Disable the snapshot analysis based monitoring. */ disabled: boolean; /** * Configuration of the snapshot analysis based monitoring pipeline running interval. The value is rolled up to full day. If both monitoring_interval_days and the deprecated `monitoring_interval` field are set when creating/updating EntityTypes/Features, monitoring_interval_days will be used. */ monitoringInterval: string; /** * Configuration of the snapshot analysis based monitoring pipeline running interval. The value indicates number of days. */ monitoringIntervalDays: number; /** * Customized export features time window for snapshot analysis. Unit is one day. Default value is 3 weeks. Minimum value is 1 day. Maximum value is 4000 days. */ stalenessDays: number; } /** * The config for Featurestore Monitoring threshold. */ interface GoogleCloudAiplatformV1beta1FeaturestoreMonitoringConfigThresholdConfigResponse { /** * Specify a threshold value that can trigger the alert. 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence. Each feature must have a non-zero threshold if they need to be monitored. Otherwise no alert will be triggered for that feature. */ value: number; } /** * OnlineServingConfig specifies the details for provisioning online serving resources. */ interface GoogleCloudAiplatformV1beta1FeaturestoreOnlineServingConfigResponse { /** * The number of nodes for the online store. The number of nodes doesn't scale automatically, but you can manually update the number of nodes. If set to 0, the featurestore will not have an online store and cannot be used for online serving. */ fixedNodeCount: number; /** * Online serving scaling configuration. Only one of `fixed_node_count` and `scaling` can be set. Setting one will reset the other. */ scaling: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeaturestoreOnlineServingConfigScalingResponse; } /** * Online serving scaling configuration. If min_node_count and max_node_count are set to the same value, the cluster will be configured with the fixed number of node (no auto-scaling). */ interface GoogleCloudAiplatformV1beta1FeaturestoreOnlineServingConfigScalingResponse { /** * Optional. The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80. When a cluster's CPU utilization exceeds the target that you have set, Bigtable immediately adds nodes to the cluster. When CPU utilization is substantially lower than the target, Bigtable removes nodes. If not set or set to 0, default to 50. */ cpuUtilizationTarget: number; /** * The maximum number of nodes to scale up to. Must be greater than min_node_count, and less than or equal to 10 times of 'min_node_count'. */ maxNodeCount: number; /** * The minimum number of nodes to scale down to. Must be greater than or equal to 1. */ minNodeCount: number; } /** * Assigns input data to training, validation, and test sets based on the given filters, data pieces not matched by any filter are ignored. Currently only supported for Datasets containing DataItems. If any of the filters in this message are to match nothing, then they can be set as '-' (the minus sign). Supported only for unstructured Datasets. */ interface GoogleCloudAiplatformV1beta1FilterSplitResponse { /** * A filter on DataItems of the Dataset. DataItems that match this filter are used to test the Model. A filter with same syntax as the one used in DatasetService.ListDataItems may be used. If a single DataItem is matched by more than one of the FilterSplit filters, then it is assigned to the first set that applies to it in the training, validation, test order. */ testFilter: string; /** * A filter on DataItems of the Dataset. DataItems that match this filter are used to train the Model. A filter with same syntax as the one used in DatasetService.ListDataItems may be used. If a single DataItem is matched by more than one of the FilterSplit filters, then it is assigned to the first set that applies to it in the training, validation, test order. */ trainingFilter: string; /** * A filter on DataItems of the Dataset. DataItems that match this filter are used to validate the Model. A filter with same syntax as the one used in DatasetService.ListDataItems may be used. If a single DataItem is matched by more than one of the FilterSplit filters, then it is assigned to the first set that applies to it in the training, validation, test order. */ validationFilter: string; } /** * Assigns the input data to training, validation, and test sets as per the given fractions. Any of `training_fraction`, `validation_fraction` and `test_fraction` may optionally be provided, they must sum to up to 1. If the provided ones sum to less than 1, the remainder is assigned to sets as decided by Vertex AI. If none of the fractions are set, by default roughly 80% of data is used for training, 10% for validation, and 10% for test. */ interface GoogleCloudAiplatformV1beta1FractionSplitResponse { /** * The fraction of the input data that is to be used to evaluate the Model. */ testFraction: number; /** * The fraction of the input data that is to be used to train the Model. */ trainingFraction: number; /** * The fraction of the input data that is to be used to validate the Model. */ validationFraction: number; } /** * The Google Cloud Storage location where the output is to be written to. */ interface GoogleCloudAiplatformV1beta1GcsDestinationResponse { /** * Google Cloud Storage URI to output directory. If the uri doesn't end with '/', a '/' will be automatically appended. The directory is created if it doesn't exist. */ outputUriPrefix: string; } /** * The Google Cloud Storage location for the input content. */ interface GoogleCloudAiplatformV1beta1GcsSourceResponse { /** * Google Cloud Storage URI(-s) to the input file(s). May contain wildcards. For more information on wildcards, see https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames. */ uris: string[]; } /** * IndexPrivateEndpoints proto is used to provide paths for users to send requests via private endpoints (e.g. private service access, private service connect). To send request via private service access, use match_grpc_address. To send request via private service connect, use service_attachment. */ interface GoogleCloudAiplatformV1beta1IndexPrivateEndpointsResponse { /** * The ip address used to send match gRPC requests. */ matchGrpcAddress: string; /** * The name of the service attachment resource. Populated if private service connect is enabled. */ serviceAttachment: string; } /** * Stats of the Index. */ interface GoogleCloudAiplatformV1beta1IndexStatsResponse { /** * The number of shards in the Index. */ shardsCount: number; /** * The number of vectors in the Index. */ vectorsCount: string; } /** * Specifies Vertex AI owned input data to be used for training, and possibly evaluating, the Model. */ interface GoogleCloudAiplatformV1beta1InputDataConfigResponse { /** * Applicable only to custom training with Datasets that have DataItems and Annotations. Cloud Storage URI that points to a YAML file describing the annotation schema. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/annotation/ , note that the chosen schema must be consistent with metadata of the Dataset specified by dataset_id. Only Annotations that both match this schema and belong to DataItems not ignored by the split method are used in respectively training, validation or test role, depending on the role of the DataItem they are on. When used in conjunction with annotations_filter, the Annotations used for training are filtered by both annotations_filter and annotation_schema_uri. */ annotationSchemaUri: string; /** * Applicable only to Datasets that have DataItems and Annotations. A filter on Annotations of the Dataset. Only Annotations that both match this filter and belong to DataItems not ignored by the split method are used in respectively training, validation or test role, depending on the role of the DataItem they are on (for the auto-assigned that role is decided by Vertex AI). A filter with same syntax as the one used in ListAnnotations may be used, but note here it filters across all Annotations of the Dataset, and not just within a single DataItem. */ annotationsFilter: string; /** * Only applicable to custom training with tabular Dataset with BigQuery source. The BigQuery project location where the training data is to be written to. In the given project a new dataset is created with name `dataset___` where timestamp is in YYYY_MM_DDThh_mm_ss_sssZ format. All training input data is written into that dataset. In the dataset three tables are created, `training`, `validation` and `test`. * AIP_DATA_FORMAT = "bigquery". * AIP_TRAINING_DATA_URI = "bigquery_destination.dataset___.training" * AIP_VALIDATION_DATA_URI = "bigquery_destination.dataset___.validation" * AIP_TEST_DATA_URI = "bigquery_destination.dataset___.test" */ bigqueryDestination: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1BigQueryDestinationResponse; /** * The ID of the Dataset in the same Project and Location which data will be used to train the Model. The Dataset must use schema compatible with Model being trained, and what is compatible should be described in the used TrainingPipeline's training_task_definition. For tabular Datasets, all their data is exported to training, to pick and choose from. */ datasetId: string; /** * Split based on the provided filters for each set. */ filterSplit: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FilterSplitResponse; /** * Split based on fractions defining the size of each set. */ fractionSplit: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FractionSplitResponse; /** * The Cloud Storage location where the training data is to be written to. In the given directory a new directory is created with name: `dataset---` where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. All training input data is written into that directory. The Vertex AI environment variables representing Cloud Storage data URIs are represented in the Cloud Storage wildcard format to support sharded data. e.g.: "gs://.../training-*.jsonl" * AIP_DATA_FORMAT = "jsonl" for non-tabular data, "csv" for tabular data * AIP_TRAINING_DATA_URI = "gcs_destination/dataset---/training-*.${AIP_DATA_FORMAT}" * AIP_VALIDATION_DATA_URI = "gcs_destination/dataset---/validation-*.${AIP_DATA_FORMAT}" * AIP_TEST_DATA_URI = "gcs_destination/dataset---/test-*.${AIP_DATA_FORMAT}" */ gcsDestination: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1GcsDestinationResponse; /** * Whether to persist the ML use assignment to data item system labels. */ persistMlUseAssignment: boolean; /** * Supported only for tabular Datasets. Split based on a predefined key. */ predefinedSplit: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PredefinedSplitResponse; /** * Only applicable to Datasets that have SavedQueries. The ID of a SavedQuery (annotation set) under the Dataset specified by dataset_id used for filtering Annotations for training. Only Annotations that are associated with this SavedQuery are used in respectively training. When used in conjunction with annotations_filter, the Annotations used for training are filtered by both saved_query_id and annotations_filter. Only one of saved_query_id and annotation_schema_uri should be specified as both of them represent the same thing: problem type. */ savedQueryId: string; /** * Supported only for tabular Datasets. Split based on the distribution of the specified column. */ stratifiedSplit: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StratifiedSplitResponse; /** * Supported only for tabular Datasets. Split based on the timestamp of the input data pieces. */ timestampSplit: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1TimestampSplitResponse; } /** * An attribution method that computes the Aumann-Shapley value taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1703.01365 */ interface GoogleCloudAiplatformV1beta1IntegratedGradientsAttributionResponse { /** * Config for IG with blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383 */ blurBaselineConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1BlurBaselineConfigResponse; /** * Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf */ smoothGradConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1SmoothGradConfigResponse; /** * The number of steps for approximating the path integral. A good value to start is 50 and gradually increase until the sum to diff property is within the desired error range. Valid range of its value is [1, 100], inclusively. */ stepCount: number; } /** * Specification of a single machine. */ interface GoogleCloudAiplatformV1beta1MachineSpecResponse { /** * The number of accelerators to attach to the machine. */ acceleratorCount: number; /** * Immutable. The type of accelerator(s) that may be attached to the machine as per accelerator_count. */ acceleratorType: string; /** * Immutable. The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). For DeployedModel this field is optional, and the default value is `n1-standard-2`. For BatchPredictionJob or as part of WorkerPoolSpec this field is required. */ machineType: string; /** * Immutable. The topology of the TPUs. Corresponds to the TPU topologies available from GKE. (Example: tpu_topology: "2x2x1"). */ tpuTopology: string; } /** * Manual batch tuning parameters. */ interface GoogleCloudAiplatformV1beta1ManualBatchTuningParametersResponse { /** * Immutable. The number of the records (e.g. instances) of the operation given in each batch to a machine replica. Machine type, and size of a single record should be considered when setting this parameter, higher value speeds up the batch operation's execution, but too high value will result in a whole batch not fitting in a machine's memory, and the whole operation will fail. The default value is 64. */ batchSize: number; } /** * A message representing a metric in the measurement. */ interface GoogleCloudAiplatformV1beta1MeasurementMetricResponse { /** * The ID of the Metric. The Metric should be defined in StudySpec's Metrics. */ metricId: string; /** * The value for this metric. */ value: number; } /** * A message representing a Measurement of a Trial. A Measurement contains the Metrics got by executing a Trial using suggested hyperparameter values. */ interface GoogleCloudAiplatformV1beta1MeasurementResponse { /** * Time that the Trial has been running at the point of this Measurement. */ elapsedDuration: string; /** * A list of metrics got by evaluating the objective functions using suggested Parameter values. */ metrics: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1MeasurementMetricResponse[]; /** * The number of steps the machine learning model has been trained for. Must be non-negative. */ stepCount: string; } /** * Represents state information for a MetadataStore. */ interface GoogleCloudAiplatformV1beta1MetadataStoreMetadataStoreStateResponse { /** * The disk utilization of the MetadataStore in bytes. */ diskUtilizationBytes: string; } /** * Specification of a container for serving predictions. Some fields in this message correspond to fields in the [Kubernetes Container v1 core specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). */ interface GoogleCloudAiplatformV1beta1ModelContainerSpecResponse { /** * Immutable. Specifies arguments for the command that runs when the container starts. This overrides the container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). Specify this field as an array of executable and arguments, similar to a Docker `CMD`'s "default parameters" form. If you don't specify this field but do specify the command field, then the command from the `command` field runs without any additional arguments. See the [Kubernetes documentation about how the `command` and `args` fields interact with a container's `ENTRYPOINT` and `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). If you don't specify this field and don't specify the `command` field, then the container's [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#cmd) and `CMD` determine what runs based on their default behavior. See the Docker documentation about [how `CMD` and `ENTRYPOINT` interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). In this field, you can reference [environment variables set by Vertex AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) and environment variables set in the env field. You cannot reference environment variables set in the Docker image. In order for environment variables to be expanded, reference them by using the following syntax: $( VARIABLE_NAME) Note that this differs from Bash variable expansion, which does not use parentheses. If a variable cannot be resolved, the reference in the input string is used unchanged. To avoid variable expansion, you can escape this syntax with `$$`; for example: $$(VARIABLE_NAME) This field corresponds to the `args` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). */ args: string[]; /** * Immutable. Specifies the command that runs when the container starts. This overrides the container's [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint). Specify this field as an array of executable and arguments, similar to a Docker `ENTRYPOINT`'s "exec" form, not its "shell" form. If you do not specify this field, then the container's `ENTRYPOINT` runs, in conjunction with the args field or the container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd), if either exists. If this field is not specified and the container does not have an `ENTRYPOINT`, then refer to the Docker documentation about [how `CMD` and `ENTRYPOINT` interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). If you specify this field, then you can also specify the `args` field to provide additional arguments for this command. However, if you specify this field, then the container's `CMD` is ignored. See the [Kubernetes documentation about how the `command` and `args` fields interact with a container's `ENTRYPOINT` and `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). In this field, you can reference [environment variables set by Vertex AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) and environment variables set in the env field. You cannot reference environment variables set in the Docker image. In order for environment variables to be expanded, reference them by using the following syntax: $( VARIABLE_NAME) Note that this differs from Bash variable expansion, which does not use parentheses. If a variable cannot be resolved, the reference in the input string is used unchanged. To avoid variable expansion, you can escape this syntax with `$$`; for example: $$(VARIABLE_NAME) This field corresponds to the `command` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). */ command: string[]; /** * Immutable. Deployment timeout. TODO (b/306244185): Revise documentation before exposing. */ deploymentTimeout: string; /** * Immutable. List of environment variables to set in the container. After the container starts running, code running in the container can read these environment variables. Additionally, the command and args fields can reference these variables. Later entries in this list can also reference earlier entries. For example, the following example sets the variable `VAR_2` to have the value `foo bar`: ```json [ { "name": "VAR_1", "value": "foo" }, { "name": "VAR_2", "value": "$(VAR_1) bar" } ] ``` If you switch the order of the variables in the example, then the expansion does not occur. This field corresponds to the `env` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). */ env: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1EnvVarResponse[]; /** * Immutable. Specification for Kubernetes readiness probe. TODO (b/306244185): Revise documentation before exposing. */ healthProbe: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ProbeResponse; /** * Immutable. HTTP path on the container to send health checks to. Vertex AI intermittently sends GET requests to this path on the container's IP address and port to check that the container is healthy. Read more about [health checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health). For example, if you set this field to `/bar`, then Vertex AI intermittently sends a GET request to the `/bar` path on the port of your container specified by the first value of this `ModelContainerSpec`'s ports field. If you don't specify this field, it defaults to the following value when you deploy this Model to an Endpoint: /v1/endpoints/ENDPOINT/deployedModels/ DEPLOYED_MODEL:predict The placeholders in this value are replaced as follows: * ENDPOINT: The last segment (following `endpoints/`)of the Endpoint.name][] field of the Endpoint where this Model has been deployed. (Vertex AI makes this value available to your container code as the [`AIP_ENDPOINT_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`. (Vertex AI makes this value available to your container code as the [`AIP_DEPLOYED_MODEL_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) */ healthRoute: string; /** * Immutable. URI of the Docker image to be used as the custom container for serving predictions. This URI must identify an image in Artifact Registry or Container Registry. Learn more about the [container publishing requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing), including permissions requirements for the Vertex AI Service Agent. The container image is ingested upon ModelService.UploadModel, stored internally, and this original path is afterwards not used. To learn about the requirements for the Docker image itself, see [Custom container requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#). You can use the URI to one of Vertex AI's [pre-built container images for prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers) in this field. */ imageUri: string; /** * Immutable. List of ports to expose from the container. Vertex AI sends any prediction requests that it receives to the first port on this list. Vertex AI also sends [liveness and health checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#liveness) to this port. If you do not specify this field, it defaults to following value: ```json [ { "containerPort": 8080 } ] ``` Vertex AI does not use ports other than the first one listed. This field corresponds to the `ports` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). */ ports: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PortResponse[]; /** * Immutable. HTTP path on the container to send prediction requests to. Vertex AI forwards requests sent using projects.locations.endpoints.predict to this path on the container's IP address and port. Vertex AI then returns the container's response in the API response. For example, if you set this field to `/foo`, then when Vertex AI receives a prediction request, it forwards the request body in a POST request to the `/foo` path on the port of your container specified by the first value of this `ModelContainerSpec`'s ports field. If you don't specify this field, it defaults to the following value when you deploy this Model to an Endpoint: /v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict The placeholders in this value are replaced as follows: * ENDPOINT: The last segment (following `endpoints/`)of the Endpoint.name][] field of the Endpoint where this Model has been deployed. (Vertex AI makes this value available to your container code as the [`AIP_ENDPOINT_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`. (Vertex AI makes this value available to your container code as the [`AIP_DEPLOYED_MODEL_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) */ predictRoute: string; /** * Immutable. The amount of the VM memory to reserve as the shared memory for the model in megabytes. TODO (b/306244185): Revise documentation before exposing. */ sharedMemorySizeMb: string; /** * Immutable. Specification for Kubernetes startup probe. TODO (b/306244185): Revise documentation before exposing. */ startupProbe: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ProbeResponse; } /** * ModelDeploymentMonitoringBigQueryTable specifies the BigQuery table name as well as some information of the logs stored in this table. */ interface GoogleCloudAiplatformV1beta1ModelDeploymentMonitoringBigQueryTableResponse { /** * The created BigQuery table to store logs. Customer could do their own query & analysis. Format: `bq://.model_deployment_monitoring_._` */ bigqueryTablePath: string; /** * The source of log. */ logSource: string; /** * The type of log. */ logType: string; } /** * All metadata of most recent monitoring pipelines. */ interface GoogleCloudAiplatformV1beta1ModelDeploymentMonitoringJobLatestMonitoringPipelineMetadataResponse { /** * The time that most recent monitoring pipelines that is related to this run. */ runTime: string; /** * The status of the most recent monitoring pipeline. */ status: outputs.aiplatform.v1beta1.GoogleRpcStatusResponse; } /** * ModelDeploymentMonitoringObjectiveConfig contains the pair of deployed_model_id to ModelMonitoringObjectiveConfig. */ interface GoogleCloudAiplatformV1beta1ModelDeploymentMonitoringObjectiveConfigResponse { /** * The DeployedModel ID of the objective config. */ deployedModelId: string; /** * The objective config of for the modelmonitoring job of this deployed model. */ objectiveConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigResponse; } /** * The config for scheduling monitoring job. */ interface GoogleCloudAiplatformV1beta1ModelDeploymentMonitoringScheduleConfigResponse { /** * The model monitoring job scheduling interval. It will be rounded up to next full hour. This defines how often the monitoring jobs are triggered. */ monitorInterval: string; /** * The time window of the prediction data being included in each prediction dataset. This window specifies how long the data should be collected from historical model results for each run. If not set, ModelDeploymentMonitoringScheduleConfig.monitor_interval will be used. e.g. If currently the cutoff time is 2022-01-08 14:30:00 and the monitor_window is set to be 3600, then data from 2022-01-08 13:30:00 to 2022-01-08 14:30:00 will be retrieved and aggregated to calculate the monitoring statistics. */ monitorWindow: string; } /** * Represents export format supported by the Model. All formats export to Google Cloud Storage. */ interface GoogleCloudAiplatformV1beta1ModelExportFormatResponse { /** * The content of this Model that may be exported. */ exportableContents: string[]; } /** * The config for email alert. */ interface GoogleCloudAiplatformV1beta1ModelMonitoringAlertConfigEmailAlertConfigResponse { /** * The email addresses to send the alert. */ userEmails: string[]; } interface GoogleCloudAiplatformV1beta1ModelMonitoringAlertConfigResponse { /** * Email alert config. */ emailAlertConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelMonitoringAlertConfigEmailAlertConfigResponse; /** * Dump the anomalies to Cloud Logging. The anomalies will be put to json payload encoded from proto google.cloud.aiplatform.logging.ModelMonitoringAnomaliesLogEntry. This can be further sinked to Pub/Sub or any other services supported by Cloud Logging. */ enableLogging: boolean; /** * Resource names of the NotificationChannels to send alert. Must be of the format `projects//notificationChannels/` */ notificationChannels: string[]; } /** * The model monitoring configuration used for Batch Prediction Job. */ interface GoogleCloudAiplatformV1beta1ModelMonitoringConfigResponse { /** * Model monitoring alert config. */ alertConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelMonitoringAlertConfigResponse; /** * YAML schema file uri in Cloud Storage describing the format of a single instance that you want Tensorflow Data Validation (TFDV) to analyze. If there are any data type differences between predict instance and TFDV instance, this field can be used to override the schema. For models trained with Vertex AI, this field must be set as all the fields in predict instance formatted as string. */ analysisInstanceSchemaUri: string; /** * Model monitoring objective config. */ objectiveConfigs: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigResponse[]; /** * A Google Cloud Storage location for batch prediction model monitoring to dump statistics and anomalies. If not provided, a folder will be created in customer project to hold statistics and anomalies. */ statsAnomaliesBaseDirectory: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1GcsDestinationResponse; } /** * Output from BatchPredictionJob for Model Monitoring baseline dataset, which can be used to generate baseline attribution scores. */ interface GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigExplanationConfigExplanationBaselineResponse { /** * BigQuery location for BatchExplain output. */ bigquery: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1BigQueryDestinationResponse; /** * Cloud Storage location for BatchExplain output. */ gcs: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1GcsDestinationResponse; /** * The storage format of the predictions generated BatchPrediction job. */ predictionFormat: string; } /** * The config for integrating with Vertex Explainable AI. Only applicable if the Model has explanation_spec populated. */ interface GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigExplanationConfigResponse { /** * If want to analyze the Vertex Explainable AI feature attribute scores or not. If set to true, Vertex AI will log the feature attributions from explain response and do the skew/drift detection for them. */ enableFeatureAttributes: boolean; /** * Predictions generated by the BatchPredictionJob using baseline dataset. */ explanationBaseline: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigExplanationConfigExplanationBaselineResponse; } /** * The config for Prediction data drift detection. */ interface GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigPredictionDriftDetectionConfigResponse { /** * Key is the feature name and value is the threshold. The threshold here is against attribution score distance between different time windows. */ attributionScoreDriftThresholds: { [key: string]: string; }; /** * Drift anomaly detection threshold used by all features. When the per-feature thresholds are not set, this field can be used to specify a threshold for all features. */ defaultDriftThreshold: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ThresholdConfigResponse; /** * Key is the feature name and value is the threshold. If a feature needs to be monitored for drift, a value threshold must be configured for that feature. The threshold here is against feature distribution distance between different time windws. */ driftThresholds: { [key: string]: string; }; } /** * The objective configuration for model monitoring, including the information needed to detect anomalies for one particular model. */ interface GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigResponse { /** * The config for integrating with Vertex Explainable AI. */ explanationConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigExplanationConfigResponse; /** * The config for drift of prediction data. */ predictionDriftDetectionConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigPredictionDriftDetectionConfigResponse; /** * Training dataset for models. This field has to be set only if TrainingPredictionSkewDetectionConfig is specified. */ trainingDataset: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigTrainingDatasetResponse; /** * The config for skew between training data and prediction data. */ trainingPredictionSkewDetectionConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigTrainingPredictionSkewDetectionConfigResponse; } /** * Training Dataset information. */ interface GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigTrainingDatasetResponse { /** * The BigQuery table of the unmanaged Dataset used to train this Model. */ bigquerySource: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1BigQuerySourceResponse; /** * Data format of the dataset, only applicable if the input is from Google Cloud Storage. The possible formats are: "tf-record" The source file is a TFRecord file. "csv" The source file is a CSV file. "jsonl" The source file is a JSONL file. */ dataFormat: string; /** * The resource name of the Dataset used to train this Model. */ dataset: string; /** * The Google Cloud Storage uri of the unmanaged Dataset used to train this Model. */ gcsSource: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1GcsSourceResponse; /** * Strategy to sample data from Training Dataset. If not set, we process the whole dataset. */ loggingSamplingStrategy: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1SamplingStrategyResponse; /** * The target field name the model is to predict. This field will be excluded when doing Predict and (or) Explain for the training data. */ targetField: string; } /** * The config for Training & Prediction data skew detection. It specifies the training dataset sources and the skew detection parameters. */ interface GoogleCloudAiplatformV1beta1ModelMonitoringObjectiveConfigTrainingPredictionSkewDetectionConfigResponse { /** * Key is the feature name and value is the threshold. The threshold here is against attribution score distance between the training and prediction feature. */ attributionScoreSkewThresholds: { [key: string]: string; }; /** * Skew anomaly detection threshold used by all features. When the per-feature thresholds are not set, this field can be used to specify a threshold for all features. */ defaultSkewThreshold: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ThresholdConfigResponse; /** * Key is the feature name and value is the threshold. If a feature needs to be monitored for skew, a value threshold must be configured for that feature. The threshold here is against feature distribution distance between the training and prediction feature. */ skewThresholds: { [key: string]: string; }; } /** * Historical Stats (and Anomalies) for a specific Feature. */ interface GoogleCloudAiplatformV1beta1ModelMonitoringStatsAnomaliesFeatureHistoricStatsAnomaliesResponse { /** * Display Name of the Feature. */ featureDisplayName: string; /** * A list of historical stats generated by different time window's Prediction Dataset. */ predictionStats: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeatureStatsAnomalyResponse[]; /** * Threshold for anomaly detection. */ threshold: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ThresholdConfigResponse; /** * Stats calculated for the Training Dataset. */ trainingStats: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeatureStatsAnomalyResponse; } /** * Statistics and anomalies generated by Model Monitoring. */ interface GoogleCloudAiplatformV1beta1ModelMonitoringStatsAnomaliesResponse { /** * Number of anomalies within all stats. */ anomalyCount: number; /** * Deployed Model ID. */ deployedModelId: string; /** * A list of historical Stats and Anomalies generated for all Features. */ featureStats: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelMonitoringStatsAnomaliesFeatureHistoricStatsAnomaliesResponse[]; /** * Model Monitoring Objective those stats and anomalies belonging to. */ objective: string; } /** * Contains information about the original Model if this Model is a copy. */ interface GoogleCloudAiplatformV1beta1ModelOriginalModelInfoResponse { /** * The resource name of the Model this Model is a copy of, including the revision. Format: `projects/{project}/locations/{location}/models/{model_id}@{version_id}` */ model: string; } /** * A trained machine learning Model. */ interface GoogleCloudAiplatformV1beta1ModelResponse { /** * Immutable. The path to the directory containing the Model artifact and any of its supporting files. Not present for AutoML Models or Large Models. */ artifactUri: string; /** * Input only. The specification of the container that is to be used when deploying this Model. The specification is ingested upon ModelService.UploadModel, and all binaries it contains are copied and stored internally by Vertex AI. Not present for AutoML Models or Large Models. */ containerSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelContainerSpecResponse; /** * Timestamp when this Model was uploaded into Vertex AI. */ createTime: string; /** * The pointers to DeployedModels created from this Model. Note that Model could have been deployed to Endpoints in different Locations. */ deployedModels: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1DeployedModelRefResponse[]; /** * The description of the Model. */ description: string; /** * The display name of the Model. The name can be up to 128 characters long and can consist of any UTF-8 characters. */ displayName: string; /** * Customer-managed encryption key spec for a Model. If set, this Model and all sub-resources of this Model will be secured by this key. */ encryptionSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1EncryptionSpecResponse; /** * Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens. */ etag: string; /** * The default explanation specification for this Model. The Model can be used for requesting explanation after being deployed if it is populated. The Model can be used for batch explanation if it is populated. All fields of the explanation_spec can be overridden by explanation_spec of DeployModelRequest.deployed_model, or explanation_spec of BatchPredictionJob. If the default explanation specification is not set for this Model, this Model can still be used for requesting explanation by setting explanation_spec of DeployModelRequest.deployed_model and for batch explanation by setting explanation_spec of BatchPredictionJob. */ explanationSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ExplanationSpecResponse; /** * The labels with user-defined metadata to organize your Models. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. */ labels: { [key: string]: string; }; /** * Immutable. An additional information about the Model; the schema of the metadata can be found in metadata_schema. Unset if the Model does not have any additional information. */ metadata: any; /** * The resource name of the Artifact that was created in MetadataStore when creating the Model. The Artifact resource name pattern is `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`. */ metadataArtifact: string; /** * Immutable. Points to a YAML file stored on Google Cloud Storage describing additional information about the Model, that is specific to it. Unset if the Model does not have any additional information. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI, if no additional metadata is needed, this field is set to an empty string. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access. */ metadataSchemaUri: string; /** * Source of a model. It can either be automl training pipeline, custom training pipeline, BigQuery ML, or existing Vertex AI Model. */ modelSourceInfo: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelSourceInfoResponse; /** * The resource name of the Model. */ name: string; /** * If this Model is a copy of another Model, this contains info about the original. */ originalModelInfo: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelOriginalModelInfoResponse; /** * The schemata that describe formats of the Model's predictions and explanations as given and returned via PredictionService.Predict and PredictionService.Explain. */ predictSchemata: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PredictSchemataResponse; /** * When this Model is deployed, its prediction resources are described by the `prediction_resources` field of the Endpoint.deployed_models object. Because not all Models support all resource configuration types, the configuration types this Model supports are listed here. If no configuration types are listed, the Model cannot be deployed to an Endpoint and does not support online predictions (PredictionService.Predict or PredictionService.Explain). Such a Model can serve predictions by using a BatchPredictionJob, if it has at least one entry each in supported_input_storage_formats and supported_output_storage_formats. */ supportedDeploymentResourcesTypes: string[]; /** * The formats in which this Model may be exported. If empty, this Model is not available for export. */ supportedExportFormats: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelExportFormatResponse[]; /** * The formats this Model supports in BatchPredictionJob.input_config. If PredictSchemata.instance_schema_uri exists, the instances should be given as per that schema. The possible formats are: * `jsonl` The JSON Lines format, where each instance is a single line. Uses GcsSource. * `csv` The CSV format, where each instance is a single comma-separated line. The first line in the file is the header, containing comma-separated field names. Uses GcsSource. * `tf-record` The TFRecord format, where each instance is a single record in tfrecord syntax. Uses GcsSource. * `tf-record-gzip` Similar to `tf-record`, but the file is gzipped. Uses GcsSource. * `bigquery` Each instance is a single row in BigQuery. Uses BigQuerySource. * `file-list` Each line of the file is the location of an instance to process, uses `gcs_source` field of the InputConfig object. If this Model doesn't support any of these formats it means it cannot be used with a BatchPredictionJob. However, if it has supported_deployment_resources_types, it could serve online predictions by using PredictionService.Predict or PredictionService.Explain. */ supportedInputStorageFormats: string[]; /** * The formats this Model supports in BatchPredictionJob.output_config. If both PredictSchemata.instance_schema_uri and PredictSchemata.prediction_schema_uri exist, the predictions are returned together with their instances. In other words, the prediction has the original instance data first, followed by the actual prediction content (as per the schema). The possible formats are: * `jsonl` The JSON Lines format, where each prediction is a single line. Uses GcsDestination. * `csv` The CSV format, where each prediction is a single comma-separated line. The first line in the file is the header, containing comma-separated field names. Uses GcsDestination. * `bigquery` Each prediction is a single row in a BigQuery table, uses BigQueryDestination . If this Model doesn't support any of these formats it means it cannot be used with a BatchPredictionJob. However, if it has supported_deployment_resources_types, it could serve online predictions by using PredictionService.Predict or PredictionService.Explain. */ supportedOutputStorageFormats: string[]; /** * The resource name of the TrainingPipeline that uploaded this Model, if any. */ trainingPipeline: string; /** * Timestamp when this Model was most recently updated. */ updateTime: string; /** * User provided version aliases so that a model version can be referenced via alias (i.e. `projects/{project}/locations/{location}/models/{model_id}@{version_alias}` instead of auto-generated version id (i.e. `projects/{project}/locations/{location}/models/{model_id}@{version_id})`. The format is a-z{0,126}[a-z0-9] to distinguish from version_id. A default version alias will be created for the first version of the model, and there must be exactly one default version alias for a model. */ versionAliases: string[]; /** * Timestamp when this version was created. */ versionCreateTime: string; /** * The description of this version. */ versionDescription: string; /** * Immutable. The version ID of the model. A new version is committed when a new model version is uploaded or trained under an existing model id. It is an auto-incrementing decimal number in string representation. */ versionId: string; /** * Timestamp when this version was most recently updated. */ versionUpdateTime: string; } /** * Detail description of the source information of the model. */ interface GoogleCloudAiplatformV1beta1ModelSourceInfoResponse { /** * If this Model is copy of another Model. If true then source_type pertains to the original. */ copy: boolean; /** * Type of the model source. */ sourceType: string; } /** * The output of a multi-trial Neural Architecture Search (NAS) jobs. */ interface GoogleCloudAiplatformV1beta1NasJobOutputMultiTrialJobOutputResponse { /** * List of NasTrials that were started as part of search stage. */ searchTrials: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1NasTrialResponse[]; /** * List of NasTrials that were started as part of train stage. */ trainTrials: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1NasTrialResponse[]; } /** * Represents a uCAIP NasJob output. */ interface GoogleCloudAiplatformV1beta1NasJobOutputResponse { /** * The output of this multi-trial Neural Architecture Search (NAS) job. */ multiTrialJobOutput: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1NasJobOutputMultiTrialJobOutputResponse; } /** * Represents a metric to optimize. */ interface GoogleCloudAiplatformV1beta1NasJobSpecMultiTrialAlgorithmSpecMetricSpecResponse { /** * The optimization goal of the metric. */ goal: string; /** * The ID of the metric. Must not contain whitespaces. */ metricId: string; } /** * The spec of multi-trial Neural Architecture Search (NAS). */ interface GoogleCloudAiplatformV1beta1NasJobSpecMultiTrialAlgorithmSpecResponse { /** * Metric specs for the NAS job. Validation for this field is done at `multi_trial_algorithm_spec` field. */ metric: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1NasJobSpecMultiTrialAlgorithmSpecMetricSpecResponse; /** * The multi-trial Neural Architecture Search (NAS) algorithm type. Defaults to `REINFORCEMENT_LEARNING`. */ multiTrialAlgorithm: string; /** * Spec for search trials. */ searchTrialSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1NasJobSpecMultiTrialAlgorithmSpecSearchTrialSpecResponse; /** * Spec for train trials. Top N [TrainTrialSpec.max_parallel_trial_count] search trials will be trained for every M [TrainTrialSpec.frequency] trials searched. */ trainTrialSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1NasJobSpecMultiTrialAlgorithmSpecTrainTrialSpecResponse; } /** * Represent spec for search trials. */ interface GoogleCloudAiplatformV1beta1NasJobSpecMultiTrialAlgorithmSpecSearchTrialSpecResponse { /** * The number of failed trials that need to be seen before failing the NasJob. If set to 0, Vertex AI decides how many trials must fail before the whole job fails. */ maxFailedTrialCount: number; /** * The maximum number of trials to run in parallel. */ maxParallelTrialCount: number; /** * The maximum number of Neural Architecture Search (NAS) trials to run. */ maxTrialCount: number; /** * The spec of a search trial job. The same spec applies to all search trials. */ searchTrialJobSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1CustomJobSpecResponse; } /** * Represent spec for train trials. */ interface GoogleCloudAiplatformV1beta1NasJobSpecMultiTrialAlgorithmSpecTrainTrialSpecResponse { /** * Frequency of search trials to start train stage. Top N [TrainTrialSpec.max_parallel_trial_count] search trials will be trained for every M [TrainTrialSpec.frequency] trials searched. */ frequency: number; /** * The maximum number of trials to run in parallel. */ maxParallelTrialCount: number; /** * The spec of a train trial job. The same spec applies to all train trials. */ trainTrialJobSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1CustomJobSpecResponse; } /** * Represents the spec of a NasJob. */ interface GoogleCloudAiplatformV1beta1NasJobSpecResponse { /** * The spec of multi-trial algorithms. */ multiTrialAlgorithmSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1NasJobSpecMultiTrialAlgorithmSpecResponse; /** * The ID of the existing NasJob in the same Project and Location which will be used to resume search. search_space_spec and nas_algorithm_spec are obtained from previous NasJob hence should not provide them again for this NasJob. */ resumeNasJobId: string; /** * It defines the search space for Neural Architecture Search (NAS). */ searchSpaceSpec: string; } /** * Represents a uCAIP NasJob trial. */ interface GoogleCloudAiplatformV1beta1NasTrialResponse { /** * Time when the NasTrial's status changed to `SUCCEEDED` or `INFEASIBLE`. */ endTime: string; /** * The final measurement containing the objective value. */ finalMeasurement: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1MeasurementResponse; /** * Time when the NasTrial was started. */ startTime: string; /** * The detailed state of the NasTrial. */ state: string; } /** * Network spec. */ interface GoogleCloudAiplatformV1beta1NetworkSpecResponse { /** * Whether to enable public internet access. Default false. */ enableInternetAccess: boolean; /** * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) */ network: string; /** * The name of the subnet that this instance is in. Format: `projects/{project_id_or_number}/regions/{region}/subnetworks/{subnetwork_id}` */ subnetwork: string; } /** * Represents a mount configuration for Network File System (NFS) to mount. */ interface GoogleCloudAiplatformV1beta1NfsMountResponse { /** * Destination mount path. The NFS will be mounted for the user under /mnt/nfs/ */ mountPoint: string; /** * Source path exported from NFS server. Has to start with '/', and combined with the ip address, it indicates the source mount path in the form of `server:path` */ path: string; /** * IP address of the NFS server. */ server: string; } /** * The euc configuration of NotebookRuntimeTemplate. */ interface GoogleCloudAiplatformV1beta1NotebookEucConfigResponse { /** * Whether ActAs check is bypassed for service account attached to the VM. If false, we need ActAs check for the default Compute Engine Service account. When a Runtime is created, a VM is allocated using Default Compute Engine Service Account. Any user requesting to use this Runtime requires Service Account User (ActAs) permission over this SA. If true, Runtime owner is using EUC and does not require the above permission as VM no longer use default Compute Engine SA, but a P4SA. */ bypassActasCheck: boolean; /** * Input only. Whether EUC is disabled in this NotebookRuntimeTemplate. In proto3, the default value of a boolean is false. In this way, by default EUC will be enabled for NotebookRuntimeTemplate. */ eucDisabled: boolean; } /** * The idle shutdown configuration of NotebookRuntimeTemplate, which contains the idle_timeout as required field. */ interface GoogleCloudAiplatformV1beta1NotebookIdleShutdownConfigResponse { /** * Whether Idle Shutdown is disabled in this NotebookRuntimeTemplate. */ idleShutdownDisabled: boolean; /** * Duration is accurate to the second. In Notebook, Idle Timeout is accurate to minute so the range of idle_timeout (second) is: 10 * 60 ~ 1440 * 60. */ idleTimeout: string; } /** * Represents the spec of persistent disk options. */ interface GoogleCloudAiplatformV1beta1PersistentDiskSpecResponse { /** * Size in GB of the disk (default is 100GB). */ diskSizeGb: string; /** * Type of the disk (default is "pd-standard"). Valid values: "pd-ssd" (Persistent Disk Solid State Drive) "pd-standard" (Persistent Disk Hard Disk Drive) "pd-balanced" (Balanced Persistent Disk) "pd-extreme" (Extreme Persistent Disk) */ diskType: string; } /** * The runtime detail of PipelineJob. */ interface GoogleCloudAiplatformV1beta1PipelineJobDetailResponse { /** * The context of the pipeline. */ pipelineContext: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ContextResponse; /** * The context of the current pipeline run. */ pipelineRunContext: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ContextResponse; /** * The runtime details of the tasks under the pipeline. */ taskDetails: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PipelineTaskDetailResponse[]; } /** * An instance of a machine learning PipelineJob. */ interface GoogleCloudAiplatformV1beta1PipelineJobResponse { /** * Pipeline creation time. */ createTime: string; /** * The display name of the Pipeline. The name can be up to 128 characters long and can consist of any UTF-8 characters. */ displayName: string; /** * Customer-managed encryption key spec for a pipelineJob. If set, this PipelineJob and all of its sub-resources will be secured by this key. */ encryptionSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1EncryptionSpecResponse; /** * Pipeline end time. */ endTime: string; /** * The error that occurred during pipeline execution. Only populated when the pipeline's state is FAILED or CANCELLED. */ error: outputs.aiplatform.v1beta1.GoogleRpcStatusResponse; /** * The details of pipeline run. Not available in the list view. */ jobDetail: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PipelineJobDetailResponse; /** * The labels with user-defined metadata to organize PipelineJob. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. Note there is some reserved label key for Vertex AI Pipelines. - `vertex-ai-pipelines-run-billing-id`, user set value will get overrided. */ labels: { [key: string]: string; }; /** * The resource name of the PipelineJob. */ name: string; /** * The full name of the Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the Pipeline Job's workload should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in `12345`, and {network} is a network name. Private services access must already be configured for the network. Pipeline job will apply the network configuration to the Google Cloud resources being launched, if applied, such as Vertex AI Training or Dataflow job. If left unspecified, the workload is not peered with any network. */ network: string; /** * The spec of the pipeline. */ pipelineSpec: { [key: string]: string; }; /** * A list of names for the reserved ip ranges under the VPC network that can be used for this Pipeline Job's workload. If set, we will deploy the Pipeline Job's workload within the provided ip ranges. Otherwise, the job will be deployed to any ip ranges under the provided VPC network. Example: ['vertex-ai-ip-range']. */ reservedIpRanges: string[]; /** * Runtime config of the pipeline. */ runtimeConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PipelineJobRuntimeConfigResponse; /** * The schedule resource name. Only returned if the Pipeline is created by Schedule API. */ scheduleName: string; /** * The service account that the pipeline workload runs as. If not specified, the Compute Engine default service account in the project will be used. See https://cloud.google.com/compute/docs/access/service-accounts#default_service_account Users starting the pipeline must have the `iam.serviceAccounts.actAs` permission on this service account. */ serviceAccount: string; /** * Pipeline start time. */ startTime: string; /** * The detailed state of the job. */ state: string; /** * Pipeline template metadata. Will fill up fields if PipelineJob.template_uri is from supported template registry. */ templateMetadata: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PipelineTemplateMetadataResponse; /** * A template uri from where the PipelineJob.pipeline_spec, if empty, will be downloaded. Currently, only uri from Vertex Template Registry & Gallery is supported. Reference to https://cloud.google.com/vertex-ai/docs/pipelines/create-pipeline-template. */ templateUri: string; /** * Timestamp when this PipelineJob was most recently updated. */ updateTime: string; } /** * The runtime config of a PipelineJob. */ interface GoogleCloudAiplatformV1beta1PipelineJobRuntimeConfigResponse { /** * Represents the failure policy of a pipeline. Currently, the default of a pipeline is that the pipeline will continue to run until no more tasks can be executed, also known as PIPELINE_FAILURE_POLICY_FAIL_SLOW. However, if a pipeline is set to PIPELINE_FAILURE_POLICY_FAIL_FAST, it will stop scheduling any new tasks when a task has failed. Any scheduled tasks will continue to completion. */ failurePolicy: string; /** * A path in a Cloud Storage bucket, which will be treated as the root output directory of the pipeline. It is used by the system to generate the paths of output artifacts. The artifact paths are generated with a sub-path pattern `{job_id}/{task_id}/{output_key}` under the specified output directory. The service account specified in this pipeline must have the `storage.objects.get` and `storage.objects.create` permissions for this bucket. */ gcsOutputDirectory: string; /** * The runtime artifacts of the PipelineJob. The key will be the input artifact name and the value would be one of the InputArtifact. */ inputArtifacts: { [key: string]: string; }; /** * The runtime parameters of the PipelineJob. The parameters will be passed into PipelineJob.pipeline_spec to replace the placeholders at runtime. This field is used by pipelines built using `PipelineJob.pipeline_spec.schema_version` 2.1.0, such as pipelines built using Kubeflow Pipelines SDK 1.9 or higher and the v2 DSL. */ parameterValues: { [key: string]: string; }; /** * Deprecated. Use RuntimeConfig.parameter_values instead. The runtime parameters of the PipelineJob. The parameters will be passed into PipelineJob.pipeline_spec to replace the placeholders at runtime. This field is used by pipelines built using `PipelineJob.pipeline_spec.schema_version` 2.0.0 or lower, such as pipelines built using Kubeflow Pipelines SDK 1.8 or lower. * * @deprecated Deprecated. Use RuntimeConfig.parameter_values instead. The runtime parameters of the PipelineJob. The parameters will be passed into PipelineJob.pipeline_spec to replace the placeholders at runtime. This field is used by pipelines built using `PipelineJob.pipeline_spec.schema_version` 2.0.0 or lower, such as pipelines built using Kubeflow Pipelines SDK 1.8 or lower. */ parameters: { [key: string]: string; }; } /** * A single record of the task status. */ interface GoogleCloudAiplatformV1beta1PipelineTaskDetailPipelineTaskStatusResponse { /** * The error that occurred during the state. May be set when the state is any of the non-final state (PENDING/RUNNING/CANCELLING) or FAILED state. If the state is FAILED, the error here is final and not going to be retried. If the state is a non-final state, the error indicates a system-error being retried. */ error: outputs.aiplatform.v1beta1.GoogleRpcStatusResponse; /** * The state of the task. */ state: string; /** * Update time of this status. */ updateTime: string; } /** * The runtime detail of a task execution. */ interface GoogleCloudAiplatformV1beta1PipelineTaskDetailResponse { /** * Task create time. */ createTime: string; /** * Task end time. */ endTime: string; /** * The error that occurred during task execution. Only populated when the task's state is FAILED or CANCELLED. */ error: outputs.aiplatform.v1beta1.GoogleRpcStatusResponse; /** * The execution metadata of the task. */ execution: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ExecutionResponse; /** * The detailed execution info. */ executorDetail: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PipelineTaskExecutorDetailResponse; /** * The runtime input artifacts of the task. */ inputs: { [key: string]: string; }; /** * The runtime output artifacts of the task. */ outputs: { [key: string]: string; }; /** * The id of the parent task if the task is within a component scope. Empty if the task is at the root level. */ parentTaskId: string; /** * A list of task status. This field keeps a record of task status evolving over time. */ pipelineTaskStatus: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PipelineTaskDetailPipelineTaskStatusResponse[]; /** * Task start time. */ startTime: string; /** * State of the task. */ state: string; /** * The system generated ID of the task. */ taskId: string; /** * The user specified name of the task that is defined in pipeline_spec. */ taskName: string; } /** * The detail of a container execution. It contains the job names of the lifecycle of a container execution. */ interface GoogleCloudAiplatformV1beta1PipelineTaskExecutorDetailContainerDetailResponse { /** * The names of the previously failed CustomJob for the main container executions. The list includes the all attempts in chronological order. */ failedMainJobs: string[]; /** * The names of the previously failed CustomJob for the pre-caching-check container executions. This job will be available if the PipelineJob.pipeline_spec specifies the `pre_caching_check` hook in the lifecycle events. The list includes the all attempts in chronological order. */ failedPreCachingCheckJobs: string[]; /** * The name of the CustomJob for the main container execution. */ mainJob: string; /** * The name of the CustomJob for the pre-caching-check container execution. This job will be available if the PipelineJob.pipeline_spec specifies the `pre_caching_check` hook in the lifecycle events. */ preCachingCheckJob: string; } /** * The detailed info for a custom job executor. */ interface GoogleCloudAiplatformV1beta1PipelineTaskExecutorDetailCustomJobDetailResponse { /** * The names of the previously failed CustomJob. The list includes the all attempts in chronological order. */ failedJobs: string[]; /** * The name of the CustomJob. */ job: string; } /** * The runtime detail of a pipeline executor. */ interface GoogleCloudAiplatformV1beta1PipelineTaskExecutorDetailResponse { /** * The detailed info for a container executor. */ containerDetail: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PipelineTaskExecutorDetailContainerDetailResponse; /** * The detailed info for a custom job executor. */ customJobDetail: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PipelineTaskExecutorDetailCustomJobDetailResponse; } /** * Pipeline template metadata if PipelineJob.template_uri is from supported template registry. Currently, the only supported registry is Artifact Registry. */ interface GoogleCloudAiplatformV1beta1PipelineTemplateMetadataResponse { /** * The version_name in artifact registry. Will always be presented in output if the PipelineJob.template_uri is from supported template registry. Format is "sha256:abcdef123456...". */ version: string; } /** * Represents a network port in a container. */ interface GoogleCloudAiplatformV1beta1PortResponse { /** * The number of the port to expose on the pod's IP address. Must be a valid port number, between 1 and 65535 inclusive. */ containerPort: number; } /** * Assigns input data to training, validation, and test sets based on the value of a provided key. Supported only for tabular Datasets. */ interface GoogleCloudAiplatformV1beta1PredefinedSplitResponse { /** * The key is a name of one of the Dataset's data columns. The value of the key (either the label's value or value in the column) must be one of {`training`, `validation`, `test`}, and it defines to which set the given piece of data is assigned. If for a piece of data the key is not present or has an invalid value, that piece is ignored by the pipeline. */ key: string; } /** * Configuration for logging request-response to a BigQuery table. */ interface GoogleCloudAiplatformV1beta1PredictRequestResponseLoggingConfigResponse { /** * BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` */ bigqueryDestination: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1BigQueryDestinationResponse; /** * If logging is enabled or not. */ enabled: boolean; /** * Percentage of requests to be logged, expressed as a fraction in range(0,1]. */ samplingRate: number; } /** * Contains the schemata used in Model's predictions and explanations via PredictionService.Predict, PredictionService.Explain and BatchPredictionJob. */ interface GoogleCloudAiplatformV1beta1PredictSchemataResponse { /** * Immutable. Points to a YAML file stored on Google Cloud Storage describing the format of a single instance, which are used in PredictRequest.instances, ExplainRequest.instances and BatchPredictionJob.input_config. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access. */ instanceSchemaUri: string; /** * Immutable. Points to a YAML file stored on Google Cloud Storage describing the parameters of prediction and explanation via PredictRequest.parameters, ExplainRequest.parameters and BatchPredictionJob.model_parameters. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI, if no parameters are supported, then it is set to an empty string. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access. */ parametersSchemaUri: string; /** * Immutable. Points to a YAML file stored on Google Cloud Storage describing the format of a single prediction produced by this Model, which are returned via PredictResponse.predictions, ExplainResponse.explanations, and BatchPredictionJob.output_config. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access. */ predictionSchemaUri: string; } /** * Preset configuration for example-based explanations */ interface GoogleCloudAiplatformV1beta1PresetsResponse { /** * The modality of the uploaded model, which automatically configures the distance measurement and feature normalization for the underlying example index and queries. If your model does not precisely fit one of these types, it is okay to choose the closest type. */ modality: string; /** * Preset option controlling parameters for speed-precision trade-off when querying for examples. If omitted, defaults to `PRECISE`. */ query: string; } /** * PrivateEndpoints proto is used to provide paths for users to send requests privately. To send request via private service access, use predict_http_uri, explain_http_uri or health_http_uri. To send request via private service connect, use service_attachment. */ interface GoogleCloudAiplatformV1beta1PrivateEndpointsResponse { /** * Http(s) path to send explain requests. */ explainHttpUri: string; /** * Http(s) path to send health check requests. */ healthHttpUri: string; /** * Http(s) path to send prediction requests. */ predictHttpUri: string; /** * The name of the service attachment resource. Populated if private service connect is enabled. */ serviceAttachment: string; } /** * Represents configuration for private service connect. */ interface GoogleCloudAiplatformV1beta1PrivateServiceConnectConfigResponse { /** * If true, expose the IndexEndpoint via private service connect. */ enablePrivateServiceConnect: boolean; /** * A list of Projects from which the forwarding rule will target the service attachment. */ projectAllowlist: string[]; } /** * ExecAction specifies a command to execute. */ interface GoogleCloudAiplatformV1beta1ProbeExecActionResponse { /** * Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. */ command: string[]; } /** * Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. */ interface GoogleCloudAiplatformV1beta1ProbeResponse { /** * Exec specifies the action to take. */ exec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ProbeExecActionResponse; /** * How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Must be less than timeout_seconds. Maps to Kubernetes probe argument 'periodSeconds'. */ periodSeconds: number; /** * Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Must be greater or equal to period_seconds. Maps to Kubernetes probe argument 'timeoutSeconds'. */ timeoutSeconds: number; } /** * The spec of a Python packaged code. */ interface GoogleCloudAiplatformV1beta1PythonPackageSpecResponse { /** * Command line arguments to be passed to the Python task. */ args: string[]; /** * Environment variables to be passed to the python module. Maximum limit is 100. */ env: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1EnvVarResponse[]; /** * The URI of a container image in Artifact Registry that will run the provided Python package. Vertex AI provides a wide range of executor images with pre-installed packages to meet users' various use cases. See the list of [pre-built containers for training](https://cloud.google.com/vertex-ai/docs/training/pre-built-containers). You must use an image from this list. */ executorImageUri: string; /** * The Google Cloud Storage location of the Python package files which are the training program and its dependent packages. The maximum number of package URIs is 100. */ packageUris: string[]; /** * The Python module name to run after installing the packages. */ pythonModule: string; } /** * Configuration information for the Ray cluster. For experimental launch, Ray cluster creation and Persistent cluster creation are 1:1 mapping: We will provision all the nodes within the Persistent cluster as Ray nodes. */ interface GoogleCloudAiplatformV1beta1RaySpecResponse { /** * Optional. This will be used to indicate which resource pool will serve as the Ray head node(the first node within that pool). Will use the machine from the first workerpool as the head node by default if this field isn't set. */ headNodeResourcePoolId: string; /** * Optional. Default image for user to choose a preferred ML framework (for example, TensorFlow or Pytorch) by choosing from [Vertex prebuilt images](https://cloud.google.com/vertex-ai/docs/training/pre-built-containers). Either this or the resource_pool_images is required. Use this field if you need all the resource pools to have the same Ray image. Otherwise, use the {@code resource_pool_images} field. */ imageUri: string; /** * Optional. Required if image_uri isn't set. A map of resource_pool_id to prebuild Ray image if user need to use different images for different head/worker pools. This map needs to cover all the resource pool ids. Example: { "ray_head_node_pool": "head image" "ray_worker_node_pool1": "worker image" "ray_worker_node_pool2": "another worker image" } */ resourcePoolImages: { [key: string]: string; }; } /** * The min/max number of replicas allowed if enabling autoscaling */ interface GoogleCloudAiplatformV1beta1ResourcePoolAutoscalingSpecResponse { /** * Optional. max replicas in the node pool, must be ≥ replica_count and > min_replica_count or will throw error */ maxReplicaCount: string; /** * Optional. min replicas in the node pool, must be ≤ replica_count and < max_replica_count or will throw error */ minReplicaCount: string; } /** * Represents the spec of a group of resources of the same type, for example machine type, disk, and accelerators, in a PersistentResource. */ interface GoogleCloudAiplatformV1beta1ResourcePoolResponse { /** * Optional. Optional spec to configure GKE autoscaling */ autoscalingSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ResourcePoolAutoscalingSpecResponse; /** * Optional. Disk spec for the machine in this node pool. */ diskSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1DiskSpecResponse; /** * Immutable. The specification of a single machine. */ machineSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1MachineSpecResponse; /** * Optional. The total number of machines to use for this resource pool. */ replicaCount: string; /** * The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count. */ usedReplicaCount: string; } /** * Persistent Cluster runtime information as output */ interface GoogleCloudAiplatformV1beta1ResourceRuntimeResponse { /** * URIs for user to connect to the Cluster. Example: { "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" } */ accessUris: { [key: string]: string; }; /** * The resource name of NotebookRuntimeTemplate for the RoV Persistent Cluster The NotebokRuntimeTemplate is created in the same VPC (if set), and with the same Ray and Python version as the Persistent Cluster. Example: "projects/1000/locations/us-central1/notebookRuntimeTemplates/abc123" */ notebookRuntimeTemplate: string; } /** * Configuration for the runtime on a PersistentResource instance, including but not limited to: * Service accounts used to run the workloads. * Whether to make it a dedicated Ray Cluster. */ interface GoogleCloudAiplatformV1beta1ResourceRuntimeSpecResponse { /** * Optional. Ray cluster configuration. Required when creating a dedicated RayCluster on the PersistentResource. */ raySpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1RaySpecResponse; /** * Optional. Configure the use of workload identity on the PersistentResource */ serviceAccountSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ServiceAccountSpecResponse; } /** * Statistics information about resource consumption. */ interface GoogleCloudAiplatformV1beta1ResourcesConsumedResponse { /** * The number of replica hours used. Note that many replicas may run in parallel, and additionally any given work may be queued for some time. Therefore this value is not strictly related to wall time. */ replicaHours: number; } /** * Active learning data sampling config. For every active learning labeling iteration, it will select a batch of data based on the sampling strategy. */ interface GoogleCloudAiplatformV1beta1SampleConfigResponse { /** * The percentage of data needed to be labeled in each following batch (except the first batch). */ followingBatchSamplePercentage: number; /** * The percentage of data needed to be labeled in the first batch. */ initialBatchSamplePercentage: number; /** * Field to choose sampling strategy. Sampling strategy will decide which data should be selected for human labeling in every batch. */ sampleStrategy: string; } /** * An attribution method that approximates Shapley values for features that contribute to the label being predicted. A sampling strategy is used to approximate the value rather than considering all subsets of features. */ interface GoogleCloudAiplatformV1beta1SampledShapleyAttributionResponse { /** * The number of feature permutations to consider when approximating the Shapley values. Valid range of its value is [1, 50], inclusively. */ pathCount: number; } /** * Requests are randomly selected. */ interface GoogleCloudAiplatformV1beta1SamplingStrategyRandomSampleConfigResponse { /** * Sample rate (0, 1] */ sampleRate: number; } /** * Sampling Strategy for logging, can be for both training and prediction dataset. */ interface GoogleCloudAiplatformV1beta1SamplingStrategyResponse { /** * Random sample config. Will support more sampling strategies later. */ randomSampleConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1SamplingStrategyRandomSampleConfigResponse; } /** * A SavedQuery is a view of the dataset. It references a subset of annotations by problem type and filters. */ interface GoogleCloudAiplatformV1beta1SavedQueryResponse { /** * Filters on the Annotations in the dataset. */ annotationFilter: string; /** * Number of AnnotationSpecs in the context of the SavedQuery. */ annotationSpecCount: number; /** * Timestamp when this SavedQuery was created. */ createTime: string; /** * The user-defined name of the SavedQuery. The name can be up to 128 characters long and can consist of any UTF-8 characters. */ displayName: string; /** * Used to perform a consistent read-modify-write update. If not set, a blind "overwrite" update happens. */ etag: string; /** * Some additional information about the SavedQuery. */ metadata: any; /** * Resource name of the SavedQuery. */ name: string; /** * Problem type of the SavedQuery. Allowed values: * IMAGE_CLASSIFICATION_SINGLE_LABEL * IMAGE_CLASSIFICATION_MULTI_LABEL * IMAGE_BOUNDING_POLY * IMAGE_BOUNDING_BOX * TEXT_CLASSIFICATION_SINGLE_LABEL * TEXT_CLASSIFICATION_MULTI_LABEL * TEXT_EXTRACTION * TEXT_SENTIMENT * VIDEO_CLASSIFICATION * VIDEO_OBJECT_TRACKING */ problemType: string; /** * If the Annotations belonging to the SavedQuery can be used for AutoML training. */ supportAutomlTraining: boolean; /** * Timestamp when SavedQuery was last updated. */ updateTime: string; } /** * Status of a scheduled run. */ interface GoogleCloudAiplatformV1beta1ScheduleRunResponseResponse { /** * The response of the scheduled run. */ runResponse: string; /** * The scheduled run time based on the user-specified schedule. */ scheduledRunTime: string; } /** * All parameters related to queuing and scheduling of custom jobs. */ interface GoogleCloudAiplatformV1beta1SchedulingResponse { /** * Optional. Indicates if the job should retry for internal errors after the job starts running. If true, overrides `Scheduling.restart_job_on_worker_restart` to false. */ disableRetries: boolean; /** * Restarts the entire CustomJob if a worker gets restarted. This feature can be used by distributed training jobs that are not resilient to workers leaving and joining a job. */ restartJobOnWorkerRestart: boolean; /** * The maximum job running time. The default is 7 days. */ timeout: string; } /** * Configuration for the use of custom service account to run the workloads. */ interface GoogleCloudAiplatformV1beta1ServiceAccountSpecResponse { /** * If true, custom user-managed service account is enforced to run any workloads (for example, Vertex Jobs) on the resource. Otherwise, uses the [Vertex AI Custom Code Service Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents). */ enableCustomServiceAccount: boolean; /** * Optional. Default service account that this PersistentResource's workloads run as. The workloads include: * Any runtime specified via `ResourceRuntimeSpec` on creation time, for example, Ray. * Jobs submitted to PersistentResource, if no other service account specified in the job specs. Only works when custom service account is enabled and users have the `iam.serviceAccounts.actAs` permission on this service account. Required if any containers are specified in `ResourceRuntimeSpec`. */ serviceAccount: string; } /** * Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf */ interface GoogleCloudAiplatformV1beta1SmoothGradConfigResponse { /** * This is similar to noise_sigma, but provides additional flexibility. A separate noise sigma can be provided for each feature, which is useful if their distributions are different. No noise is added to features that are not set. If this field is unset, noise_sigma will be used for all features. */ featureNoiseSigma: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1FeatureNoiseSigmaResponse; /** * This is a single float value and will be used to add noise to all the features. Use this field when all features are normalized to have the same distribution: scale to range [0, 1], [-1, 1] or z-scoring, where features are normalized to have 0-mean and 1-variance. Learn more about [normalization](https://developers.google.com/machine-learning/data-prep/transform/normalization). For best results the recommended value is about 10% - 20% of the standard deviation of the input feature. Refer to section 3.2 of the SmoothGrad paper: https://arxiv.org/pdf/1706.03825.pdf. Defaults to 0.1. If the distribution is different per feature, set feature_noise_sigma instead for each feature. */ noiseSigma: number; /** * The number of gradient samples to use for approximation. The higher this number, the more accurate the gradient is, but the runtime complexity increases by this factor as well. Valid range of its value is [1, 50]. Defaults to 3. */ noisySampleCount: number; } /** * Assigns input data to the training, validation, and test sets so that the distribution of values found in the categorical column (as specified by the `key` field) is mirrored within each split. The fraction values determine the relative sizes of the splits. For example, if the specified column has three values, with 50% of the rows having value "A", 25% value "B", and 25% value "C", and the split fractions are specified as 80/10/10, then the training set will constitute 80% of the training data, with about 50% of the training set rows having the value "A" for the specified column, about 25% having the value "B", and about 25% having the value "C". Only the top 500 occurring values are used; any values not in the top 500 values are randomly assigned to a split. If less than three rows contain a specific value, those rows are randomly assigned. Supported only for tabular Datasets. */ interface GoogleCloudAiplatformV1beta1StratifiedSplitResponse { /** * The key is a name of one of the Dataset's data columns. The key provided must be for a categorical column. */ key: string; /** * The fraction of the input data that is to be used to evaluate the Model. */ testFraction: number; /** * The fraction of the input data that is to be used to train the Model. */ trainingFraction: number; /** * The fraction of the input data that is to be used to validate the Model. */ validationFraction: number; } /** * Configuration for ConvexAutomatedStoppingSpec. When there are enough completed trials (configured by min_measurement_count), for pending trials with enough measurements and steps, the policy first computes an overestimate of the objective value at max_num_steps according to the slope of the incomplete objective value curve. No prediction can be made if the curve is completely flat. If the overestimation is worse than the best objective value of the completed trials, this pending trial will be early-stopped, but a last measurement will be added to the pending trial with max_num_steps and predicted objective value from the autoregression model. */ interface GoogleCloudAiplatformV1beta1StudySpecConvexAutomatedStoppingSpecResponse { /** * The hyper-parameter name used in the tuning job that stands for learning rate. Leave it blank if learning rate is not in a parameter in tuning. The learning_rate is used to estimate the objective value of the ongoing trial. */ learningRateParameterName: string; /** * Steps used in predicting the final objective for early stopped trials. In general, it's set to be the same as the defined steps in training / tuning. If not defined, it will learn it from the completed trials. When use_steps is false, this field is set to the maximum elapsed seconds. */ maxStepCount: string; /** * The minimal number of measurements in a Trial. Early-stopping checks will not trigger if less than min_measurement_count+1 completed trials or pending trials with less than min_measurement_count measurements. If not defined, the default value is 5. */ minMeasurementCount: string; /** * Minimum number of steps for a trial to complete. Trials which do not have a measurement with step_count > min_step_count won't be considered for early stopping. It's ok to set it to 0, and a trial can be early stopped at any stage. By default, min_step_count is set to be one-tenth of the max_step_count. When use_elapsed_duration is true, this field is set to the minimum elapsed seconds. */ minStepCount: string; /** * ConvexAutomatedStoppingSpec by default only updates the trials that needs to be early stopped using a newly trained auto-regressive model. When this flag is set to True, all stopped trials from the beginning are potentially updated in terms of their `final_measurement`. Also, note that the training logic of autoregressive models is different in this case. Enabling this option has shown better results and this may be the default option in the future. */ updateAllStoppedTrials: boolean; /** * This bool determines whether or not the rule is applied based on elapsed_secs or steps. If use_elapsed_duration==false, the early stopping decision is made according to the predicted objective values according to the target steps. If use_elapsed_duration==true, elapsed_secs is used instead of steps. Also, in this case, the parameters max_num_steps and min_num_steps are overloaded to contain max_elapsed_seconds and min_elapsed_seconds. */ useElapsedDuration: boolean; } /** * Configuration for ConvexStopPolicy. */ interface GoogleCloudAiplatformV1beta1StudySpecConvexStopConfigResponse { /** * The number of Trial measurements used in autoregressive model for value prediction. A trial won't be considered early stopping if has fewer measurement points. */ autoregressiveOrder: string; /** * The hyper-parameter name used in the tuning job that stands for learning rate. Leave it blank if learning rate is not in a parameter in tuning. The learning_rate is used to estimate the objective value of the ongoing trial. */ learningRateParameterName: string; /** * Steps used in predicting the final objective for early stopped trials. In general, it's set to be the same as the defined steps in training / tuning. When use_steps is false, this field is set to the maximum elapsed seconds. */ maxNumSteps: string; /** * Minimum number of steps for a trial to complete. Trials which do not have a measurement with num_steps > min_num_steps won't be considered for early stopping. It's ok to set it to 0, and a trial can be early stopped at any stage. By default, min_num_steps is set to be one-tenth of the max_num_steps. When use_steps is false, this field is set to the minimum elapsed seconds. */ minNumSteps: string; /** * This bool determines whether or not the rule is applied based on elapsed_secs or steps. If use_seconds==false, the early stopping decision is made according to the predicted objective values according to the target steps. If use_seconds==true, elapsed_secs is used instead of steps. Also, in this case, the parameters max_num_steps and min_num_steps are overloaded to contain max_elapsed_seconds and min_elapsed_seconds. */ useSeconds: boolean; } /** * The decay curve automated stopping rule builds a Gaussian Process Regressor to predict the final objective value of a Trial based on the already completed Trials and the intermediate measurements of the current Trial. Early stopping is requested for the current Trial if there is very low probability to exceed the optimal value found so far. */ interface GoogleCloudAiplatformV1beta1StudySpecDecayCurveAutomatedStoppingSpecResponse { /** * True if Measurement.elapsed_duration is used as the x-axis of each Trials Decay Curve. Otherwise, Measurement.step_count will be used as the x-axis. */ useElapsedDuration: boolean; } /** * The median automated stopping rule stops a pending Trial if the Trial's best objective_value is strictly below the median 'performance' of all completed Trials reported up to the Trial's last measurement. Currently, 'performance' refers to the running average of the objective values reported by the Trial in each measurement. */ interface GoogleCloudAiplatformV1beta1StudySpecMedianAutomatedStoppingSpecResponse { /** * True if median automated stopping rule applies on Measurement.elapsed_duration. It means that elapsed_duration field of latest measurement of current Trial is used to compute median objective value for each completed Trials. */ useElapsedDuration: boolean; } /** * Represents a metric to optimize. */ interface GoogleCloudAiplatformV1beta1StudySpecMetricSpecResponse { /** * The optimization goal of the metric. */ goal: string; /** * The ID of the metric. Must not contain whitespaces and must be unique amongst all MetricSpecs. */ metricId: string; /** * Used for safe search. In the case, the metric will be a safety metric. You must provide a separate metric for objective metric. */ safetyConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecMetricSpecSafetyMetricConfigResponse; } /** * Used in safe optimization to specify threshold levels and risk tolerance. */ interface GoogleCloudAiplatformV1beta1StudySpecMetricSpecSafetyMetricConfigResponse { /** * Desired minimum fraction of safe trials (over total number of trials) that should be targeted by the algorithm at any time during the study (best effort). This should be between 0.0 and 1.0 and a value of 0.0 means that there is no minimum and an algorithm proceeds without targeting any specific fraction. A value of 1.0 means that the algorithm attempts to only Suggest safe Trials. */ desiredMinSafeTrialsFraction: number; /** * Safety threshold (boundary value between safe and unsafe). NOTE that if you leave SafetyMetricConfig unset, a default value of 0 will be used. */ safetyThreshold: number; } /** * Value specification for a parameter in `CATEGORICAL` type. */ interface GoogleCloudAiplatformV1beta1StudySpecParameterSpecCategoricalValueSpecResponse { /** * A default value for a `CATEGORICAL` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline. */ defaultValue: string; /** * The list of possible categories. */ values: string[]; } /** * Represents the spec to match categorical values from parent parameter. */ interface GoogleCloudAiplatformV1beta1StudySpecParameterSpecConditionalParameterSpecCategoricalValueConditionResponse { /** * Matches values of the parent parameter of 'CATEGORICAL' type. All values must exist in `categorical_value_spec` of parent parameter. */ values: string[]; } /** * Represents the spec to match discrete values from parent parameter. */ interface GoogleCloudAiplatformV1beta1StudySpecParameterSpecConditionalParameterSpecDiscreteValueConditionResponse { /** * Matches values of the parent parameter of 'DISCRETE' type. All values must exist in `discrete_value_spec` of parent parameter. The Epsilon of the value matching is 1e-10. */ values: number[]; } /** * Represents the spec to match integer values from parent parameter. */ interface GoogleCloudAiplatformV1beta1StudySpecParameterSpecConditionalParameterSpecIntValueConditionResponse { /** * Matches values of the parent parameter of 'INTEGER' type. All values must lie in `integer_value_spec` of parent parameter. */ values: string[]; } /** * Represents a parameter spec with condition from its parent parameter. */ interface GoogleCloudAiplatformV1beta1StudySpecParameterSpecConditionalParameterSpecResponse { /** * The spec for a conditional parameter. */ parameterSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecParameterSpecResponse; /** * The spec for matching values from a parent parameter of `CATEGORICAL` type. */ parentCategoricalValues: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecParameterSpecConditionalParameterSpecCategoricalValueConditionResponse; /** * The spec for matching values from a parent parameter of `DISCRETE` type. */ parentDiscreteValues: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecParameterSpecConditionalParameterSpecDiscreteValueConditionResponse; /** * The spec for matching values from a parent parameter of `INTEGER` type. */ parentIntValues: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecParameterSpecConditionalParameterSpecIntValueConditionResponse; } /** * Value specification for a parameter in `DISCRETE` type. */ interface GoogleCloudAiplatformV1beta1StudySpecParameterSpecDiscreteValueSpecResponse { /** * A default value for a `DISCRETE` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. It automatically rounds to the nearest feasible discrete point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline. */ defaultValue: number; /** * A list of possible values. The list should be in increasing order and at least 1e-10 apart. For instance, this parameter might have possible settings of 1.5, 2.5, and 4.0. This list should not contain more than 1,000 values. */ values: number[]; } /** * Value specification for a parameter in `DOUBLE` type. */ interface GoogleCloudAiplatformV1beta1StudySpecParameterSpecDoubleValueSpecResponse { /** * A default value for a `DOUBLE` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline. */ defaultValue: number; /** * Inclusive maximum value of the parameter. */ maxValue: number; /** * Inclusive minimum value of the parameter. */ minValue: number; } /** * Value specification for a parameter in `INTEGER` type. */ interface GoogleCloudAiplatformV1beta1StudySpecParameterSpecIntegerValueSpecResponse { /** * A default value for an `INTEGER` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline. */ defaultValue: string; /** * Inclusive maximum value of the parameter. */ maxValue: string; /** * Inclusive minimum value of the parameter. */ minValue: string; } /** * Represents a single parameter to optimize. */ interface GoogleCloudAiplatformV1beta1StudySpecParameterSpecResponse { /** * The value spec for a 'CATEGORICAL' parameter. */ categoricalValueSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecParameterSpecCategoricalValueSpecResponse; /** * A conditional parameter node is active if the parameter's value matches the conditional node's parent_value_condition. If two items in conditional_parameter_specs have the same name, they must have disjoint parent_value_condition. */ conditionalParameterSpecs: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecParameterSpecConditionalParameterSpecResponse[]; /** * The value spec for a 'DISCRETE' parameter. */ discreteValueSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecParameterSpecDiscreteValueSpecResponse; /** * The value spec for a 'DOUBLE' parameter. */ doubleValueSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecParameterSpecDoubleValueSpecResponse; /** * The value spec for an 'INTEGER' parameter. */ integerValueSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecParameterSpecIntegerValueSpecResponse; /** * The ID of the parameter. Must not contain whitespaces and must be unique amongst all ParameterSpecs. */ parameterId: string; /** * How the parameter should be scaled. Leave unset for `CATEGORICAL` parameters. */ scaleType: string; } /** * Represents specification of a Study. */ interface GoogleCloudAiplatformV1beta1StudySpecResponse { /** * The search algorithm specified for the Study. */ algorithm: string; /** * The automated early stopping spec using convex stopping rule. */ convexAutomatedStoppingSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecConvexAutomatedStoppingSpecResponse; /** * Deprecated. The automated early stopping using convex stopping rule. * * @deprecated Deprecated. The automated early stopping using convex stopping rule. */ convexStopConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecConvexStopConfigResponse; /** * The automated early stopping spec using decay curve rule. */ decayCurveStoppingSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecDecayCurveAutomatedStoppingSpecResponse; /** * Describe which measurement selection type will be used */ measurementSelectionType: string; /** * The automated early stopping spec using median rule. */ medianAutomatedStoppingSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecMedianAutomatedStoppingSpecResponse; /** * Metric specs for the Study. */ metrics: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecMetricSpecResponse[]; /** * The observation noise level of the study. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline. */ observationNoise: string; /** * The set of parameters to tune. */ parameters: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecParameterSpecResponse[]; /** * Conditions for automated stopping of a Study. Enable automated stopping by configuring at least one condition. */ studyStoppingConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecStudyStoppingConfigResponse; /** * The configuration info/options for transfer learning. Currently supported for Vertex AI Vizier service, not HyperParameterTuningJob */ transferLearningConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudySpecTransferLearningConfigResponse; } /** * The configuration (stopping conditions) for automated stopping of a Study. Conditions include trial budgets, time budgets, and convergence detection. */ interface GoogleCloudAiplatformV1beta1StudySpecStudyStoppingConfigResponse { /** * If the objective value has not improved for this much time, stop the study. WARNING: Effective only for single-objective studies. */ maxDurationNoProgress: string; /** * If there are more than this many trials, stop the study. */ maxNumTrials: number; /** * If the objective value has not improved for this many consecutive trials, stop the study. WARNING: Effective only for single-objective studies. */ maxNumTrialsNoProgress: number; /** * If the specified time or duration has passed, stop the study. */ maximumRuntimeConstraint: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudyTimeConstraintResponse; /** * If there are fewer than this many COMPLETED trials, do not stop the study. */ minNumTrials: number; /** * Each "stopping rule" in this proto specifies an "if" condition. Before Vizier would generate a new suggestion, it first checks each specified stopping rule, from top to bottom in this list. Note that the first few rules (e.g. minimum_runtime_constraint, min_num_trials) will prevent other stopping rules from being evaluated until they are met. For example, setting `min_num_trials=5` and `always_stop_after= 1 hour` means that the Study will ONLY stop after it has 5 COMPLETED trials, even if more than an hour has passed since its creation. It follows the first applicable rule (whose "if" condition is satisfied) to make a stopping decision. If none of the specified rules are applicable, then Vizier decides that the study should not stop. If Vizier decides that the study should stop, the study enters STOPPING state (or STOPPING_ASAP if should_stop_asap = true). IMPORTANT: The automatic study state transition happens precisely as described above; that is, deleting trials or updating StudyConfig NEVER automatically moves the study state back to ACTIVE. If you want to _resume_ a Study that was stopped, 1) change the stopping conditions if necessary, 2) activate the study, and then 3) ask for suggestions. If the specified time or duration has not passed, do not stop the study. */ minimumRuntimeConstraint: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1StudyTimeConstraintResponse; /** * If true, a Study enters STOPPING_ASAP whenever it would normally enters STOPPING state. The bottom line is: set to true if you want to interrupt on-going evaluations of Trials as soon as the study stopping condition is met. (Please see Study.State documentation for the source of truth). */ shouldStopAsap: boolean; } /** * This contains flag for manually disabling transfer learning for a study. The names of prior studies being used for transfer learning (if any) are also listed here. */ interface GoogleCloudAiplatformV1beta1StudySpecTransferLearningConfigResponse { /** * Flag to to manually prevent vizier from using transfer learning on a new study. Otherwise, vizier will automatically determine whether or not to use transfer learning. */ disableTransferLearning: boolean; /** * Names of previously completed studies */ priorStudyNames: string[]; } /** * Time-based Constraint for Study */ interface GoogleCloudAiplatformV1beta1StudyTimeConstraintResponse { /** * Compares the wallclock time to this time. Must use UTC timezone. */ endTime: string; /** * Counts the wallclock time passed since the creation of this Study. */ maxDuration: string; } /** * Describes metadata for a TensorboardTimeSeries. */ interface GoogleCloudAiplatformV1beta1TensorboardTimeSeriesMetadataResponse { /** * The largest blob sequence length (number of blobs) of all data points in this time series, if its ValueType is BLOB_SEQUENCE. */ maxBlobSequenceLength: string; /** * Max step index of all data points within a TensorboardTimeSeries. */ maxStep: string; /** * Max wall clock timestamp of all data points within a TensorboardTimeSeries. */ maxWallTime: string; } /** * The config for feature monitoring threshold. */ interface GoogleCloudAiplatformV1beta1ThresholdConfigResponse { /** * Specify a threshold value that can trigger the alert. If this threshold config is for feature distribution distance: 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence. Each feature must have a non-zero threshold if they need to be monitored. Otherwise no alert will be triggered for that feature. */ value: number; } /** * Assigns input data to training, validation, and test sets based on a provided timestamps. The youngest data pieces are assigned to training set, next to validation set, and the oldest to the test set. Supported only for tabular Datasets. */ interface GoogleCloudAiplatformV1beta1TimestampSplitResponse { /** * The key is a name of one of the Dataset's data columns. The values of the key (the values in the column) must be in RFC 3339 `date-time` format, where `time-offset` = `"Z"` (e.g. 1985-04-12T23:20:50.52Z). If for a piece of data the key is not present or has an invalid value, that piece is ignored by the pipeline. */ key: string; /** * The fraction of the input data that is to be used to evaluate the Model. */ testFraction: number; /** * The fraction of the input data that is to be used to train the Model. */ trainingFraction: number; /** * The fraction of the input data that is to be used to validate the Model. */ validationFraction: number; } /** * CMLE training config. For every active learning labeling iteration, system will train a machine learning model on CMLE. The trained model will be used by data sampling algorithm to select DataItems. */ interface GoogleCloudAiplatformV1beta1TrainingConfigResponse { /** * The timeout hours for the CMLE training job, expressed in milli hours i.e. 1,000 value in this field means 1 hour. */ timeoutTrainingMilliHours: string; } /** * A message representing a parameter to be tuned. */ interface GoogleCloudAiplatformV1beta1TrialParameterResponse { /** * The ID of the parameter. The parameter should be defined in StudySpec's Parameters. */ parameterId: string; /** * The value of the parameter. `number_value` will be set if a parameter defined in StudySpec is in type 'INTEGER', 'DOUBLE' or 'DISCRETE'. `string_value` will be set if a parameter defined in StudySpec is in type 'CATEGORICAL'. */ value: any; } /** * A message representing a Trial. A Trial contains a unique set of Parameters that has been or will be evaluated, along with the objective metrics got by running the Trial. */ interface GoogleCloudAiplatformV1beta1TrialResponse { /** * The identifier of the client that originally requested this Trial. Each client is identified by a unique client_id. When a client asks for a suggestion, Vertex AI Vizier will assign it a Trial. The client should evaluate the Trial, complete it, and report back to Vertex AI Vizier. If suggestion is asked again by same client_id before the Trial is completed, the same Trial will be returned. Multiple clients with different client_ids can ask for suggestions simultaneously, each of them will get their own Trial. */ clientId: string; /** * The CustomJob name linked to the Trial. It's set for a HyperparameterTuningJob's Trial. */ customJob: string; /** * Time when the Trial's status changed to `SUCCEEDED` or `INFEASIBLE`. */ endTime: string; /** * The final measurement containing the objective value. */ finalMeasurement: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1MeasurementResponse; /** * A human readable string describing why the Trial is infeasible. This is set only if Trial state is `INFEASIBLE`. */ infeasibleReason: string; /** * A list of measurements that are strictly lexicographically ordered by their induced tuples (steps, elapsed_duration). These are used for early stopping computations. */ measurements: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1MeasurementResponse[]; /** * Resource name of the Trial assigned by the service. */ name: string; /** * The parameters of the Trial. */ parameters: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1TrialParameterResponse[]; /** * Time when the Trial was started. */ startTime: string; /** * The detailed state of the Trial. */ state: string; /** * URIs for accessing [interactive shells](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) (one URI for each training node). Only available if this trial is part of a HyperparameterTuningJob and the job's trial_job_spec.enable_web_access field is `true`. The keys are names of each node used for the trial; for example, `workerpool0-0` for the primary node, `workerpool1-0` for the first node in the second worker pool, and `workerpool1-1` for the second node in the second worker pool. The values are the URIs for each node's interactive shell. */ webAccessUris: { [key: string]: string; }; } /** * Contains model information necessary to perform batch prediction without requiring a full model import. */ interface GoogleCloudAiplatformV1beta1UnmanagedContainerModelResponse { /** * The path to the directory containing the Model artifact and any of its supporting files. */ artifactUri: string; /** * Input only. The specification of the container that is to be used when deploying this Model. */ containerSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ModelContainerSpecResponse; /** * Contains the schemata used in Model's predictions and explanations */ predictSchemata: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PredictSchemataResponse; } /** * Represents the spec of a worker pool in a job. */ interface GoogleCloudAiplatformV1beta1WorkerPoolSpecResponse { /** * The custom container task. */ containerSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1ContainerSpecResponse; /** * Disk spec. */ diskSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1DiskSpecResponse; /** * Optional. Immutable. The specification of a single machine. */ machineSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1MachineSpecResponse; /** * Optional. List of NFS mount spec. */ nfsMounts: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1NfsMountResponse[]; /** * The Python packaged task. */ pythonPackageSpec: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1PythonPackageSpecResponse; /** * Optional. The number of worker replicas to use for this worker pool. */ replicaCount: string; } /** * An explanation method that redistributes Integrated Gradients attributions to segmented regions, taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1906.02825 Supported only by image Models. */ interface GoogleCloudAiplatformV1beta1XraiAttributionResponse { /** * Config for XRAI with blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383 */ blurBaselineConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1BlurBaselineConfigResponse; /** * Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf */ smoothGradConfig: outputs.aiplatform.v1beta1.GoogleCloudAiplatformV1beta1SmoothGradConfigResponse; /** * The number of steps for approximating the path integral. A good value to start is 50 and gradually increase until the sum to diff property is met within the desired error range. Valid range of its value is [1, 100], inclusively. */ stepCount: number; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.aiplatform.v1beta1.GoogleTypeExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface GoogleRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface GoogleTypeExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Represents an amount of money with its currency type. */ interface GoogleTypeMoneyResponse { /** * The three-letter currency code defined in ISO 4217. */ currencyCode: string; /** * Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. */ nanos: number; /** * The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. */ units: string; } } } export declare namespace alloydb { namespace v1 { /** * Message describing the user-specified automated backup policy. All fields in the automated backup policy are optional. Defaults for each field are provided if they are not set. */ interface AutomatedBackupPolicyResponse { /** * The length of the time window during which a backup can be taken. If a backup does not succeed within this time window, it will be canceled and considered failed. The backup window must be at least 5 minutes long. There is no upper bound on the window. If not set, it defaults to 1 hour. */ backupWindow: string; /** * Whether automated automated backups are enabled. If not set, defaults to true. */ enabled: boolean; /** * Optional. The encryption config can be specified to encrypt the backups with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data. */ encryptionConfig: outputs.alloydb.v1.EncryptionConfigResponse; /** * Labels to apply to backups created using this configuration. */ labels: { [key: string]: string; }; /** * The location where the backup will be stored. Currently, the only supported option is to store the backup in the same region as the cluster. If empty, defaults to the region of the cluster. */ location: string; /** * Quantity-based Backup retention policy to retain recent backups. */ quantityBasedRetention: outputs.alloydb.v1.QuantityBasedRetentionResponse; /** * Time-based Backup retention policy. */ timeBasedRetention: outputs.alloydb.v1.TimeBasedRetentionResponse; /** * Weekly schedule for the Backup. */ weeklySchedule: outputs.alloydb.v1.WeeklyScheduleResponse; } /** * Message describing a BackupSource. */ interface BackupSourceResponse { /** * The name of the backup resource with the format: * projects/{project}/locations/{region}/backups/{backup_id} */ backupName: string; /** * The system-generated UID of the backup which was used to create this resource. The UID is generated when the backup is created, and it is retained until the backup is deleted. */ backupUid: string; } /** * Client connection configuration */ interface ClientConnectionConfigResponse { /** * Optional. Configuration to enforce connectors only (ex: AuthProxy) connections to the database. */ requireConnectors: boolean; /** * Optional. SSL config option for this instance. */ sslConfig: outputs.alloydb.v1.SslConfigResponse; } /** * ContinuousBackupConfig describes the continuous backups recovery configurations of a cluster. */ interface ContinuousBackupConfigResponse { /** * Whether ContinuousBackup is enabled. */ enabled: boolean; /** * The encryption config can be specified to encrypt the backups with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data. */ encryptionConfig: outputs.alloydb.v1.EncryptionConfigResponse; /** * The number of days that are eligible to restore from using PITR. To support the entire recovery window, backups and logs are retained for one day more than the recovery window. If not set, defaults to 14 days. */ recoveryWindowDays: number; } /** * ContinuousBackupInfo describes the continuous backup properties of a cluster. */ interface ContinuousBackupInfoResponse { /** * The earliest restorable time that can be restored to. Output only field. */ earliestRestorableTime: string; /** * When ContinuousBackup was most recently enabled. Set to null if ContinuousBackup is not enabled. */ enabledTime: string; /** * The encryption information for the WALs and backups required for ContinuousBackup. */ encryptionInfo: outputs.alloydb.v1.EncryptionInfoResponse; /** * Days of the week on which a continuous backup is taken. Output only field. Ignored if passed into the request. */ schedule: string[]; } /** * EncryptionConfig describes the encryption config of a cluster or a backup that is encrypted with a CMEK (customer-managed encryption key). */ interface EncryptionConfigResponse { /** * The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME] */ kmsKeyName: string; } /** * EncryptionInfo describes the encryption information of a cluster or a backup. */ interface EncryptionInfoResponse { /** * Type of encryption. */ encryptionType: string; /** * Cloud KMS key versions that are being used to protect the database or the backup. */ kmsKeyVersions: string[]; } /** * Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. */ interface GoogleTypeTimeOfDayResponse { /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. */ hours: number; /** * Minutes of hour of day. Must be from 0 to 59. */ minutes: number; /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. */ nanos: number; /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds. */ seconds: number; } /** * MachineConfig describes the configuration of a machine. */ interface MachineConfigResponse { /** * The number of CPU's in the VM instance. */ cpuCount: number; } /** * Subset of the source instance configuration that is available when reading the cluster resource. */ interface MigrationSourceResponse { /** * The host and port of the on-premises instance in host:port format */ hostPort: string; /** * Place holder for the external source identifier(e.g DMS job name) that created the cluster. */ referenceId: string; /** * Type of migration source. */ sourceType: string; } /** * Metadata related to network configuration. */ interface NetworkConfigResponse { /** * Optional. Name of the allocated IP range for the private IP AlloyDB cluster, for example: "google-managed-services-default". If set, the instance IPs for this cluster will be created in the allocated range. The range name must comply with RFC 1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. Field name is intended to be consistent with Cloud SQL. */ allocatedIpRange: string; /** * Optional. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: "projects/{project_number}/global/networks/{network_id}". This is required to create a cluster. */ network: string; } /** * Details of a single node in the instance. Nodes in an AlloyDB instance are ephemereal, they can change during update, failover, autohealing and resize operations. */ interface NodeResponse { /** * The private IP address of the VM e.g. "10.57.0.34". */ ip: string; /** * Determined by state of the compute VM and postgres-service health. Compute VM state can have values listed in https://cloud.google.com/compute/docs/instances/instance-life-cycle and postgres-service health can have values: HEALTHY and UNHEALTHY. */ state: string; /** * The Compute Engine zone of the VM e.g. "us-central1-b". */ zone: string; } /** * Configuration for the primary cluster. It has the list of clusters that are replicating from this cluster. This should be set if and only if the cluster is of type PRIMARY. */ interface PrimaryConfigResponse { /** * Names of the clusters that are replicating from this cluster. */ secondaryClusterNames: string[]; } /** * A backup's position in a quantity-based retention queue, of backups with the same source cluster and type, with length, retention, specified by the backup's retention policy. Once the position is greater than the retention, the backup is eligible to be garbage collected. Example: 5 backups from the same source cluster and type with a quantity-based retention of 3 and denoted by backup_id (position, retention). Safe: backup_5 (1, 3), backup_4, (2, 3), backup_3 (3, 3). Awaiting garbage collection: backup_2 (4, 3), backup_1 (5, 3) */ interface QuantityBasedExpiryResponse { /** * The backup's position among its backups with the same source cluster and type, by descending chronological order create time(i.e. newest first). */ retentionCount: number; /** * The length of the quantity-based queue, specified by the backup's retention policy. */ totalRetentionCount: number; } /** * A quantity based policy specifies that a certain number of the most recent successful backups should be retained. */ interface QuantityBasedRetentionResponse { /** * The number of backups to retain. */ count: number; } /** * QueryInsights Instance specific configuration. */ interface QueryInsightsInstanceConfigResponse { /** * Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 20 is considered valid. */ queryPlansPerMinute: number; /** * Query string length. The default value is 1024. Any integer between 256 and 4500 is considered valid. */ queryStringLength: number; /** * Record application tags for an instance. This flag is turned "on" by default. */ recordApplicationTags: boolean; /** * Record client address for an instance. Client address is PII information. This flag is turned "on" by default. */ recordClientAddress: boolean; } /** * Configuration for a read pool instance. */ interface ReadPoolConfigResponse { /** * Read capacity, i.e. number of nodes in a read pool instance. */ nodeCount: number; } /** * Configuration information for the secondary cluster. This should be set if and only if the cluster is of type SECONDARY. */ interface SecondaryConfigResponse { /** * The name of the primary cluster name with the format: * projects/{project}/locations/{region}/clusters/{cluster_id} */ primaryClusterName: string; } /** * SSL configuration. */ interface SslConfigResponse { /** * Optional. Certificate Authority (CA) source. Only CA_SOURCE_MANAGED is supported currently, and is the default value. */ caSource: string; /** * Optional. SSL mode. Specifies client-server SSL/TLS connection behavior. */ sslMode: string; } /** * A time based retention policy specifies that all backups within a certain time period should be retained. */ interface TimeBasedRetentionResponse { /** * The retention period. */ retentionPeriod: string; } /** * The username/password for a database user. Used for specifying initial users at cluster creation time. */ interface UserPasswordResponse { /** * The initial password for the user. */ password: string; /** * The database username. */ user: string; } /** * A weekly schedule starts a backup at prescribed start times within a day, for the specified days of the week. The weekly schedule message is flexible and can be used to create many types of schedules. For example, to have a daily backup that starts at 22:00, configure the `start_times` field to have one element "22:00" and the `days_of_week` field to have all seven days of the week. */ interface WeeklyScheduleResponse { /** * The days of the week to perform a backup. If this field is left empty, the default of every day of the week is used. */ daysOfWeek: string[]; /** * The times during the day to start a backup. The start times are assumed to be in UTC and to be an exact hour (e.g., 04:00:00). If no start times are provided, a single fixed start time is chosen arbitrarily. */ startTimes: outputs.alloydb.v1.GoogleTypeTimeOfDayResponse[]; } } namespace v1alpha { /** * Message describing the user-specified automated backup policy. All fields in the automated backup policy are optional. Defaults for each field are provided if they are not set. */ interface AutomatedBackupPolicyResponse { /** * The length of the time window during which a backup can be taken. If a backup does not succeed within this time window, it will be canceled and considered failed. The backup window must be at least 5 minutes long. There is no upper bound on the window. If not set, it defaults to 1 hour. */ backupWindow: string; /** * Whether automated automated backups are enabled. If not set, defaults to true. */ enabled: boolean; /** * Optional. The encryption config can be specified to encrypt the backups with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data. */ encryptionConfig: outputs.alloydb.v1alpha.EncryptionConfigResponse; /** * Labels to apply to backups created using this configuration. */ labels: { [key: string]: string; }; /** * The location where the backup will be stored. Currently, the only supported option is to store the backup in the same region as the cluster. If empty, defaults to the region of the cluster. */ location: string; /** * Quantity-based Backup retention policy to retain recent backups. */ quantityBasedRetention: outputs.alloydb.v1alpha.QuantityBasedRetentionResponse; /** * Time-based Backup retention policy. */ timeBasedRetention: outputs.alloydb.v1alpha.TimeBasedRetentionResponse; /** * Weekly schedule for the Backup. */ weeklySchedule: outputs.alloydb.v1alpha.WeeklyScheduleResponse; } /** * Message describing a BackupSource. */ interface BackupSourceResponse { /** * The name of the backup resource with the format: * projects/{project}/locations/{region}/backups/{backup_id} */ backupName: string; /** * The system-generated UID of the backup which was used to create this resource. The UID is generated when the backup is created, and it is retained until the backup is deleted. */ backupUid: string; } /** * Client connection configuration */ interface ClientConnectionConfigResponse { /** * Optional. Configuration to enforce connectors only (ex: AuthProxy) connections to the database. */ requireConnectors: boolean; /** * Optional. SSL config option for this instance. */ sslConfig: outputs.alloydb.v1alpha.SslConfigResponse; } /** * ContinuousBackupConfig describes the continuous backups recovery configurations of a cluster. */ interface ContinuousBackupConfigResponse { /** * Whether ContinuousBackup is enabled. */ enabled: boolean; /** * The encryption config can be specified to encrypt the backups with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data. */ encryptionConfig: outputs.alloydb.v1alpha.EncryptionConfigResponse; /** * The number of days that are eligible to restore from using PITR. To support the entire recovery window, backups and logs are retained for one day more than the recovery window. If not set, defaults to 14 days. */ recoveryWindowDays: number; } /** * ContinuousBackupInfo describes the continuous backup properties of a cluster. */ interface ContinuousBackupInfoResponse { /** * The earliest restorable time that can be restored to. Output only field. */ earliestRestorableTime: string; /** * When ContinuousBackup was most recently enabled. Set to null if ContinuousBackup is not enabled. */ enabledTime: string; /** * The encryption information for the WALs and backups required for ContinuousBackup. */ encryptionInfo: outputs.alloydb.v1alpha.EncryptionInfoResponse; /** * Days of the week on which a continuous backup is taken. Output only field. Ignored if passed into the request. */ schedule: string[]; } /** * EncryptionConfig describes the encryption config of a cluster or a backup that is encrypted with a CMEK (customer-managed encryption key). */ interface EncryptionConfigResponse { /** * The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME] */ kmsKeyName: string; } /** * EncryptionInfo describes the encryption information of a cluster or a backup. */ interface EncryptionInfoResponse { /** * Type of encryption. */ encryptionType: string; /** * Cloud KMS key versions that are being used to protect the database or the backup. */ kmsKeyVersions: string[]; } /** * Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. */ interface GoogleTypeTimeOfDayResponse { /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. */ hours: number; /** * Minutes of hour of day. Must be from 0 to 59. */ minutes: number; /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. */ nanos: number; /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds. */ seconds: number; } /** * MachineConfig describes the configuration of a machine. */ interface MachineConfigResponse { /** * The number of CPU's in the VM instance. */ cpuCount: number; } /** * Subset of the source instance configuration that is available when reading the cluster resource. */ interface MigrationSourceResponse { /** * The host and port of the on-premises instance in host:port format */ hostPort: string; /** * Place holder for the external source identifier(e.g DMS job name) that created the cluster. */ referenceId: string; /** * Type of migration source. */ sourceType: string; } /** * Metadata related to network configuration. */ interface NetworkConfigResponse { /** * Optional. Name of the allocated IP range for the private IP AlloyDB cluster, for example: "google-managed-services-default". If set, the instance IPs for this cluster will be created in the allocated range. The range name must comply with RFC 1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. Field name is intended to be consistent with Cloud SQL. */ allocatedIpRange: string; /** * Optional. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: "projects/{project_number}/global/networks/{network_id}". This is required to create a cluster. */ network: string; } /** * Details of a single node in the instance. Nodes in an AlloyDB instance are ephemereal, they can change during update, failover, autohealing and resize operations. */ interface NodeResponse { /** * The private IP address of the VM e.g. "10.57.0.34". */ ip: string; /** * Determined by state of the compute VM and postgres-service health. Compute VM state can have values listed in https://cloud.google.com/compute/docs/instances/instance-life-cycle and postgres-service health can have values: HEALTHY and UNHEALTHY. */ state: string; /** * The Compute Engine zone of the VM e.g. "us-central1-b". */ zone: string; } /** * Configuration for the primary cluster. It has the list of clusters that are replicating from this cluster. This should be set if and only if the cluster is of type PRIMARY. */ interface PrimaryConfigResponse { /** * Names of the clusters that are replicating from this cluster. */ secondaryClusterNames: string[]; } /** * PscConfig contains PSC related configuration at a cluster level. NEXT ID: 2 */ interface PscConfigResponse { /** * Optional. Create an instance that allows connections from Private Service Connect endpoints to the instance. */ pscEnabled: boolean; } /** * A backup's position in a quantity-based retention queue, of backups with the same source cluster and type, with length, retention, specified by the backup's retention policy. Once the position is greater than the retention, the backup is eligible to be garbage collected. Example: 5 backups from the same source cluster and type with a quantity-based retention of 3 and denoted by backup_id (position, retention). Safe: backup_5 (1, 3), backup_4, (2, 3), backup_3 (3, 3). Awaiting garbage collection: backup_2 (4, 3), backup_1 (5, 3) */ interface QuantityBasedExpiryResponse { /** * The backup's position among its backups with the same source cluster and type, by descending chronological order create time(i.e. newest first). */ retentionCount: number; /** * The length of the quantity-based queue, specified by the backup's retention policy. */ totalRetentionCount: number; } /** * A quantity based policy specifies that a certain number of the most recent successful backups should be retained. */ interface QuantityBasedRetentionResponse { /** * The number of backups to retain. */ count: number; } /** * QueryInsights Instance specific configuration. */ interface QueryInsightsInstanceConfigResponse { /** * Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 20 is considered valid. */ queryPlansPerMinute: number; /** * Query string length. The default value is 1024. Any integer between 256 and 4500 is considered valid. */ queryStringLength: number; /** * Record application tags for an instance. This flag is turned "on" by default. */ recordApplicationTags: boolean; /** * Record client address for an instance. Client address is PII information. This flag is turned "on" by default. */ recordClientAddress: boolean; } /** * Configuration for a read pool instance. */ interface ReadPoolConfigResponse { /** * Read capacity, i.e. number of nodes in a read pool instance. */ nodeCount: number; } /** * Configuration information for the secondary cluster. This should be set if and only if the cluster is of type SECONDARY. */ interface SecondaryConfigResponse { /** * The name of the primary cluster name with the format: * projects/{project}/locations/{region}/clusters/{cluster_id} */ primaryClusterName: string; } /** * SSL configuration. */ interface SslConfigResponse { /** * Optional. Certificate Authority (CA) source. Only CA_SOURCE_MANAGED is supported currently, and is the default value. */ caSource: string; /** * Optional. SSL mode. Specifies client-server SSL/TLS connection behavior. */ sslMode: string; } /** * A time based retention policy specifies that all backups within a certain time period should be retained. */ interface TimeBasedRetentionResponse { /** * The retention period. */ retentionPeriod: string; } /** * Policy to be used while updating the instance. */ interface UpdatePolicyResponse { /** * Mode for updating the instance. */ mode: string; } /** * The username/password for a database user. Used for specifying initial users at cluster creation time. */ interface UserPasswordResponse { /** * The initial password for the user. */ password: string; /** * The database username. */ user: string; } /** * A weekly schedule starts a backup at prescribed start times within a day, for the specified days of the week. The weekly schedule message is flexible and can be used to create many types of schedules. For example, to have a daily backup that starts at 22:00, configure the `start_times` field to have one element "22:00" and the `days_of_week` field to have all seven days of the week. */ interface WeeklyScheduleResponse { /** * The days of the week to perform a backup. If this field is left empty, the default of every day of the week is used. */ daysOfWeek: string[]; /** * The times during the day to start a backup. The start times are assumed to be in UTC and to be an exact hour (e.g., 04:00:00). If no start times are provided, a single fixed start time is chosen arbitrarily. */ startTimes: outputs.alloydb.v1alpha.GoogleTypeTimeOfDayResponse[]; } } namespace v1beta { /** * Message describing the user-specified automated backup policy. All fields in the automated backup policy are optional. Defaults for each field are provided if they are not set. */ interface AutomatedBackupPolicyResponse { /** * The length of the time window during which a backup can be taken. If a backup does not succeed within this time window, it will be canceled and considered failed. The backup window must be at least 5 minutes long. There is no upper bound on the window. If not set, it defaults to 1 hour. */ backupWindow: string; /** * Whether automated automated backups are enabled. If not set, defaults to true. */ enabled: boolean; /** * Optional. The encryption config can be specified to encrypt the backups with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data. */ encryptionConfig: outputs.alloydb.v1beta.EncryptionConfigResponse; /** * Labels to apply to backups created using this configuration. */ labels: { [key: string]: string; }; /** * The location where the backup will be stored. Currently, the only supported option is to store the backup in the same region as the cluster. If empty, defaults to the region of the cluster. */ location: string; /** * Quantity-based Backup retention policy to retain recent backups. */ quantityBasedRetention: outputs.alloydb.v1beta.QuantityBasedRetentionResponse; /** * Time-based Backup retention policy. */ timeBasedRetention: outputs.alloydb.v1beta.TimeBasedRetentionResponse; /** * Weekly schedule for the Backup. */ weeklySchedule: outputs.alloydb.v1beta.WeeklyScheduleResponse; } /** * Message describing a BackupSource. */ interface BackupSourceResponse { /** * The name of the backup resource with the format: * projects/{project}/locations/{region}/backups/{backup_id} */ backupName: string; /** * The system-generated UID of the backup which was used to create this resource. The UID is generated when the backup is created, and it is retained until the backup is deleted. */ backupUid: string; } /** * Client connection configuration */ interface ClientConnectionConfigResponse { /** * Optional. Configuration to enforce connectors only (ex: AuthProxy) connections to the database. */ requireConnectors: boolean; /** * Optional. SSL config option for this instance. */ sslConfig: outputs.alloydb.v1beta.SslConfigResponse; } /** * ContinuousBackupConfig describes the continuous backups recovery configurations of a cluster. */ interface ContinuousBackupConfigResponse { /** * Whether ContinuousBackup is enabled. */ enabled: boolean; /** * The encryption config can be specified to encrypt the backups with a customer-managed encryption key (CMEK). When this field is not specified, the backup will then use default encryption scheme to protect the user data. */ encryptionConfig: outputs.alloydb.v1beta.EncryptionConfigResponse; /** * The number of days that are eligible to restore from using PITR. To support the entire recovery window, backups and logs are retained for one day more than the recovery window. If not set, defaults to 14 days. */ recoveryWindowDays: number; } /** * ContinuousBackupInfo describes the continuous backup properties of a cluster. */ interface ContinuousBackupInfoResponse { /** * The earliest restorable time that can be restored to. Output only field. */ earliestRestorableTime: string; /** * When ContinuousBackup was most recently enabled. Set to null if ContinuousBackup is not enabled. */ enabledTime: string; /** * The encryption information for the WALs and backups required for ContinuousBackup. */ encryptionInfo: outputs.alloydb.v1beta.EncryptionInfoResponse; /** * Days of the week on which a continuous backup is taken. Output only field. Ignored if passed into the request. */ schedule: string[]; } /** * EncryptionConfig describes the encryption config of a cluster or a backup that is encrypted with a CMEK (customer-managed encryption key). */ interface EncryptionConfigResponse { /** * The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME] */ kmsKeyName: string; } /** * EncryptionInfo describes the encryption information of a cluster or a backup. */ interface EncryptionInfoResponse { /** * Type of encryption. */ encryptionType: string; /** * Cloud KMS key versions that are being used to protect the database or the backup. */ kmsKeyVersions: string[]; } /** * Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. */ interface GoogleTypeTimeOfDayResponse { /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. */ hours: number; /** * Minutes of hour of day. Must be from 0 to 59. */ minutes: number; /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. */ nanos: number; /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds. */ seconds: number; } /** * MachineConfig describes the configuration of a machine. */ interface MachineConfigResponse { /** * The number of CPU's in the VM instance. */ cpuCount: number; } /** * Subset of the source instance configuration that is available when reading the cluster resource. */ interface MigrationSourceResponse { /** * The host and port of the on-premises instance in host:port format */ hostPort: string; /** * Place holder for the external source identifier(e.g DMS job name) that created the cluster. */ referenceId: string; /** * Type of migration source. */ sourceType: string; } /** * Metadata related to network configuration. */ interface NetworkConfigResponse { /** * Optional. Name of the allocated IP range for the private IP AlloyDB cluster, for example: "google-managed-services-default". If set, the instance IPs for this cluster will be created in the allocated range. The range name must comply with RFC 1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. Field name is intended to be consistent with Cloud SQL. */ allocatedIpRange: string; /** * Optional. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: "projects/{project_number}/global/networks/{network_id}". This is required to create a cluster. */ network: string; } /** * Details of a single node in the instance. Nodes in an AlloyDB instance are ephemereal, they can change during update, failover, autohealing and resize operations. */ interface NodeResponse { /** * The private IP address of the VM e.g. "10.57.0.34". */ ip: string; /** * Determined by state of the compute VM and postgres-service health. Compute VM state can have values listed in https://cloud.google.com/compute/docs/instances/instance-life-cycle and postgres-service health can have values: HEALTHY and UNHEALTHY. */ state: string; /** * The Compute Engine zone of the VM e.g. "us-central1-b". */ zone: string; } /** * Configuration for the primary cluster. It has the list of clusters that are replicating from this cluster. This should be set if and only if the cluster is of type PRIMARY. */ interface PrimaryConfigResponse { /** * Names of the clusters that are replicating from this cluster. */ secondaryClusterNames: string[]; } /** * A backup's position in a quantity-based retention queue, of backups with the same source cluster and type, with length, retention, specified by the backup's retention policy. Once the position is greater than the retention, the backup is eligible to be garbage collected. Example: 5 backups from the same source cluster and type with a quantity-based retention of 3 and denoted by backup_id (position, retention). Safe: backup_5 (1, 3), backup_4, (2, 3), backup_3 (3, 3). Awaiting garbage collection: backup_2 (4, 3), backup_1 (5, 3) */ interface QuantityBasedExpiryResponse { /** * The backup's position among its backups with the same source cluster and type, by descending chronological order create time(i.e. newest first). */ retentionCount: number; /** * The length of the quantity-based queue, specified by the backup's retention policy. */ totalRetentionCount: number; } /** * A quantity based policy specifies that a certain number of the most recent successful backups should be retained. */ interface QuantityBasedRetentionResponse { /** * The number of backups to retain. */ count: number; } /** * QueryInsights Instance specific configuration. */ interface QueryInsightsInstanceConfigResponse { /** * Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 20 is considered valid. */ queryPlansPerMinute: number; /** * Query string length. The default value is 1024. Any integer between 256 and 4500 is considered valid. */ queryStringLength: number; /** * Record application tags for an instance. This flag is turned "on" by default. */ recordApplicationTags: boolean; /** * Record client address for an instance. Client address is PII information. This flag is turned "on" by default. */ recordClientAddress: boolean; } /** * Configuration for a read pool instance. */ interface ReadPoolConfigResponse { /** * Read capacity, i.e. number of nodes in a read pool instance. */ nodeCount: number; } /** * Configuration information for the secondary cluster. This should be set if and only if the cluster is of type SECONDARY. */ interface SecondaryConfigResponse { /** * The name of the primary cluster name with the format: * projects/{project}/locations/{region}/clusters/{cluster_id} */ primaryClusterName: string; } /** * SSL configuration. */ interface SslConfigResponse { /** * Optional. Certificate Authority (CA) source. Only CA_SOURCE_MANAGED is supported currently, and is the default value. */ caSource: string; /** * Optional. SSL mode. Specifies client-server SSL/TLS connection behavior. */ sslMode: string; } /** * A time based retention policy specifies that all backups within a certain time period should be retained. */ interface TimeBasedRetentionResponse { /** * The retention period. */ retentionPeriod: string; } /** * Policy to be used while updating the instance. */ interface UpdatePolicyResponse { /** * Mode for updating the instance. */ mode: string; } /** * The username/password for a database user. Used for specifying initial users at cluster creation time. */ interface UserPasswordResponse { /** * The initial password for the user. */ password: string; /** * The database username. */ user: string; } /** * A weekly schedule starts a backup at prescribed start times within a day, for the specified days of the week. The weekly schedule message is flexible and can be used to create many types of schedules. For example, to have a daily backup that starts at 22:00, configure the `start_times` field to have one element "22:00" and the `days_of_week` field to have all seven days of the week. */ interface WeeklyScheduleResponse { /** * The days of the week to perform a backup. If this field is left empty, the default of every day of the week is used. */ daysOfWeek: string[]; /** * The times during the day to start a backup. The start times are assumed to be in UTC and to be an exact hour (e.g., 04:00:00). If no start times are provided, a single fixed start time is chosen arbitrarily. */ startTimes: outputs.alloydb.v1beta.GoogleTypeTimeOfDayResponse[]; } } } export declare namespace analyticshub { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.analyticshub.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * A reference to a shared dataset. It is an existing BigQuery dataset with a collection of objects such as tables and views that you want to share with subscribers. When subscriber's subscribe to a listing, Analytics Hub creates a linked dataset in the subscriber's project. A Linked dataset is an opaque, read-only BigQuery dataset that serves as a _symbolic link_ to a shared dataset. */ interface BigQueryDatasetSourceResponse { /** * Resource name of the dataset source for this listing. e.g. `projects/myproject/datasets/123` */ dataset: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.analyticshub.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Contains details of the data provider. */ interface DataProviderResponse { /** * Optional. Name of the data provider. */ name: string; /** * Optional. Email or URL of the data provider. Max Length: 1000 bytes. */ primaryContact: string; } /** * Data Clean Room (DCR), used for privacy-safe and secured data sharing. */ interface DcrExchangeConfigResponse { } /** * Default Analytics Hub data exchange, used for secured data sharing. */ interface DefaultExchangeConfigResponse { } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Contains details of the listing publisher. */ interface PublisherResponse { /** * Optional. Name of the listing publisher. */ name: string; /** * Optional. Email or URL of the listing publisher. Max Length: 1000 bytes. */ primaryContact: string; } /** * Restricted export config, used to configure restricted export on linked dataset. */ interface RestrictedExportConfigResponse { /** * Optional. If true, enable restricted export. */ enabled: boolean; /** * If true, restrict direct table access(read api/tabledata.list) on linked table. */ restrictDirectTableAccess: boolean; /** * Optional. If true, restrict export of query result derived from restricted linked dataset table. */ restrictQueryResult: boolean; } /** * Sharing environment is a behavior model for sharing data within a data exchange. This option is configurable for a data exchange. */ interface SharingEnvironmentConfigResponse { /** * Data Clean Room (DCR), used for privacy-safe and secured data sharing. */ dcrExchangeConfig: outputs.analyticshub.v1.DcrExchangeConfigResponse; /** * Default Analytics Hub data exchange, used for secured data sharing. */ defaultExchangeConfig: outputs.analyticshub.v1.DefaultExchangeConfigResponse; } } namespace v1beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.analyticshub.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * A reference to a shared dataset. It is an existing BigQuery dataset with a collection of objects such as tables and views that you want to share with subscribers. When subscriber's subscribe to a listing, Analytics Hub creates a linked dataset in the subscriber's project. A Linked dataset is an opaque, read-only BigQuery dataset that serves as a _symbolic link_ to a shared dataset. */ interface BigQueryDatasetSourceResponse { /** * Resource name of the dataset source for this listing. e.g. `projects/myproject/datasets/123` */ dataset: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.analyticshub.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Contains details of the data provider. */ interface DataProviderResponse { /** * Optional. Name of the data provider. */ name: string; /** * Optional. Email or URL of the data provider. Max Length: 1000 bytes. */ primaryContact: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Contains details of the listing publisher. */ interface PublisherResponse { /** * Optional. Name of the listing publisher. */ name: string; /** * Optional. Email or URL of the listing publisher. Max Length: 1000 bytes. */ primaryContact: string; } /** * Restricted export config, used to configure restricted export on linked dataset. */ interface RestrictedExportConfigResponse { /** * Optional. If true, enable restricted export. */ enabled: boolean; /** * If true, restrict direct table access(read api/tabledata.list) on linked table. */ restrictDirectTableAccess: boolean; /** * Optional. If true, restrict export of query result derived from restricted linked dataset table. */ restrictQueryResult: boolean; } } } export declare namespace apigateway { namespace v1 { /** * A lightweight description of a file. */ interface ApigatewayApiConfigFileResponse { /** * The bytes that constitute the file. */ contents: string; /** * The file path (full or relative path). This is typically the path of the file when it is uploaded. */ path: string; } /** * A gRPC service definition. */ interface ApigatewayApiConfigGrpcServiceDefinitionResponse { /** * Input only. File descriptor set, generated by protoc. To generate, use protoc with imports and source info included. For an example test.proto file, the following command would put the value in a new file named out.pb. $ protoc --include_imports --include_source_info test.proto -o out.pb */ fileDescriptorSet: outputs.apigateway.v1.ApigatewayApiConfigFileResponse; /** * Optional. Uncompiled proto files associated with the descriptor set, used for display purposes (server-side compilation is not supported). These should match the inputs to 'protoc' command used to generate file_descriptor_set. */ source: outputs.apigateway.v1.ApigatewayApiConfigFileResponse[]; } /** * An OpenAPI Specification Document describing an API. */ interface ApigatewayApiConfigOpenApiDocumentResponse { /** * The OpenAPI Specification document file. */ document: outputs.apigateway.v1.ApigatewayApiConfigFileResponse; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface ApigatewayAuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.apigateway.v1.ApigatewayAuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface ApigatewayAuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface ApigatewayBindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.apigateway.v1.ApigatewayExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ApigatewayExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } namespace v1beta { /** * A lightweight description of a file. */ interface ApigatewayApiConfigFileResponse { /** * The bytes that constitute the file. */ contents: string; /** * The file path (full or relative path). This is typically the path of the file when it is uploaded. */ path: string; } /** * A gRPC service definition. */ interface ApigatewayApiConfigGrpcServiceDefinitionResponse { /** * Input only. File descriptor set, generated by protoc. To generate, use protoc with imports and source info included. For an example test.proto file, the following command would put the value in a new file named out.pb. $ protoc --include_imports --include_source_info test.proto -o out.pb */ fileDescriptorSet: outputs.apigateway.v1beta.ApigatewayApiConfigFileResponse; /** * Optional. Uncompiled proto files associated with the descriptor set, used for display purposes (server-side compilation is not supported). These should match the inputs to 'protoc' command used to generate file_descriptor_set. */ source: outputs.apigateway.v1beta.ApigatewayApiConfigFileResponse[]; } /** * An OpenAPI Specification Document describing an API. */ interface ApigatewayApiConfigOpenApiDocumentResponse { /** * The OpenAPI Specification document file. */ document: outputs.apigateway.v1beta.ApigatewayApiConfigFileResponse; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface ApigatewayAuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.apigateway.v1beta.ApigatewayAuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface ApigatewayAuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Configuration for all backends. */ interface ApigatewayBackendConfigResponse { /** * Google Cloud IAM service account used to sign OIDC tokens for backends that have authentication configured (https://cloud.google.com/service-infrastructure/docs/service-management/reference/rest/v1/services.configs#backend). This may either be the Service Account's email (i.e. "{ACCOUNT_ID}@{PROJECT}.iam.gserviceaccount.com") or its full resource name (i.e. "projects/{PROJECT}/accounts/{UNIQUE_ID}"). This is most often used when the backend is a GCP resource such as a Cloud Run Service or an IAP-secured service. Note that this token is always sent as an authorization header bearer token. The audience of the OIDC token is configured in the associated Service Config in the BackendRule option (https://github.com/googleapis/googleapis/blob/master/google/api/backend.proto#L125). */ googleServiceAccount: string; } /** * Associates `members`, or principals, with a `role`. */ interface ApigatewayBindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.apigateway.v1beta.ApigatewayExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ApigatewayExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Configuration settings for Gateways. */ interface ApigatewayGatewayConfigResponse { /** * Backend settings that are applied to all backends of the Gateway. */ backendConfig: outputs.apigateway.v1beta.ApigatewayBackendConfigResponse; } } } export declare namespace apigee { namespace v1 { /** * APIProductAssociation has the API product and its administrative state association. */ interface GoogleCloudApigeeV1APIProductAssociationResponse { /** * API product to be associated with the credential. */ apiproduct: string; /** * The API product credential associated status. Valid values are `approved` or `revoked`. */ status: string; } /** * Add-on configurations for the Apigee organization. */ interface GoogleCloudApigeeV1AddonsConfigResponse { /** * Configuration for the Advanced API Ops add-on. */ advancedApiOpsConfig: outputs.apigee.v1.GoogleCloudApigeeV1AdvancedApiOpsConfigResponse; /** * Configuration for the Analytics add-on. */ analyticsConfig: outputs.apigee.v1.GoogleCloudApigeeV1AnalyticsConfigResponse; /** * Configuration for the API Security add-on. */ apiSecurityConfig: outputs.apigee.v1.GoogleCloudApigeeV1ApiSecurityConfigResponse; /** * Configuration for the Connectors Platform add-on. */ connectorsPlatformConfig: outputs.apigee.v1.GoogleCloudApigeeV1ConnectorsPlatformConfigResponse; /** * Configuration for the Integration add-on. */ integrationConfig: outputs.apigee.v1.GoogleCloudApigeeV1IntegrationConfigResponse; /** * Configuration for the Monetization add-on. */ monetizationConfig: outputs.apigee.v1.GoogleCloudApigeeV1MonetizationConfigResponse; } /** * Configuration for the Advanced API Ops add-on. */ interface GoogleCloudApigeeV1AdvancedApiOpsConfigResponse { /** * Flag that specifies whether the Advanced API Ops add-on is enabled. */ enabled: boolean; } /** * Configuration for the Analytics add-on. */ interface GoogleCloudApigeeV1AnalyticsConfigResponse { /** * Whether the Analytics add-on is enabled. */ enabled: boolean; /** * Time at which the Analytics add-on expires in milliseconds since epoch. If unspecified, the add-on will never expire. */ expireTimeMillis: string; /** * The state of the Analytics add-on. */ state: string; /** * The latest update time. */ updateTime: string; } /** * `ApiCategory` represents an API category. [Catalog items](/apigee/docs/reference/apis/apigee/rest/v1/organizations.sites.apidocs) can be tagged with API categories; users viewing the API catalog in the portal will have the option to browse the catalog by category. */ interface GoogleCloudApigeeV1ApiCategoryResponse { /** * Name of the category. */ name: string; /** * Name of the portal. */ siteId: string; /** * Time the category was last modified in milliseconds since epoch. */ updateTime: string; } interface GoogleCloudApigeeV1ApiProductRefResponse { /** * Name of the API product. */ apiproduct: string; /** * Status of the API product. Valid values are `approved` or `revoked`. */ status: string; } /** * Configurations of the API Security add-on. */ interface GoogleCloudApigeeV1ApiSecurityConfigResponse { /** * Flag that specifies whether the API security add-on is enabled. */ enabled: boolean; /** * Time at which the API Security add-on expires in in milliseconds since epoch. If unspecified, the add-on will never expire. */ expiresAt: string; } interface GoogleCloudApigeeV1AsyncQueryResultResponse { /** * Query result will be unaccessable after this time. */ expires: string; /** * Self link of the query results. Example: `/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` or following format if query is running at host level: `/organizations/myorg/hostQueries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` */ self: string; } /** * Key-value pair to store extra metadata. */ interface GoogleCloudApigeeV1AttributeResponse { /** * API key of the attribute. */ name: string; /** * Value of the attribute. */ value: string; } /** * Labels that can be used to filter Apigee metrics. */ interface GoogleCloudApigeeV1CanaryEvaluationMetricLabelsResponse { /** * The environment ID associated with the metrics. */ env: string; /** * The instance ID associated with the metrics. In Apigee Hybrid, the value is configured during installation. */ instanceId: string; /** * The location associated with the metrics. */ location: string; } /** * X.509 certificate as defined in RFC 5280. */ interface GoogleCloudApigeeV1CertInfoResponse { /** * X.509 basic constraints extension. */ basicConstraints: string; /** * X.509 `notAfter` validity period in milliseconds since epoch. */ expiryDate: string; /** * Flag that specifies whether the certificate is valid. Flag is set to `Yes` if the certificate is valid, `No` if expired, or `Not yet` if not yet valid. */ isValid: string; /** * X.509 issuer. */ issuer: string; /** * Public key component of the X.509 subject public key info. */ publicKey: string; /** * X.509 serial number. */ serialNumber: string; /** * X.509 signatureAlgorithm. */ sigAlgName: string; /** * X.509 subject. */ subject: string; /** * X.509 subject alternative names (SANs) extension. */ subjectAlternativeNames: string[]; /** * X.509 `notBefore` validity period in milliseconds since epoch. */ validFrom: string; /** * X.509 version. */ version: number; } interface GoogleCloudApigeeV1CertificateResponse { /** * Chain of certificates under this name. */ certInfo: outputs.apigee.v1.GoogleCloudApigeeV1CertInfoResponse[]; } /** * Configuration for the Connectors Platform add-on. */ interface GoogleCloudApigeeV1ConnectorsPlatformConfigResponse { /** * Flag that specifies whether the Connectors Platform add-on is enabled. */ enabled: boolean; /** * Time at which the Connectors Platform add-on expires in milliseconds since epoch. If unspecified, the add-on will never expire. */ expiresAt: string; } interface GoogleCloudApigeeV1CredentialResponse { /** * List of API products this credential can be used for. */ apiProducts: outputs.apigee.v1.GoogleCloudApigeeV1ApiProductRefResponse[]; /** * List of attributes associated with this credential. */ attributes: outputs.apigee.v1.GoogleCloudApigeeV1AttributeResponse[]; /** * Consumer key. */ consumerKey: string; /** * Secret key. */ consumerSecret: string; /** * Time the credential will expire in milliseconds since epoch. */ expiresAt: string; /** * Time the credential was issued in milliseconds since epoch. */ issuedAt: string; /** * List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app. */ scopes: string[]; /** * Status of the credential. Valid values include `approved` or `revoked`. */ status: string; } /** * This encapsulates a metric property of the form sum(message_count) where name is message_count and function is sum */ interface GoogleCloudApigeeV1CustomReportMetricResponse { /** * aggregate function */ function: string; /** * name of the metric */ name: string; } /** * Configuration detail for datastore */ interface GoogleCloudApigeeV1DatastoreConfigResponse { /** * Name of the Cloud Storage bucket. Required for `gcs` target_type. */ bucketName: string; /** * BigQuery dataset name Required for `bigquery` target_type. */ datasetName: string; /** * Path of Cloud Storage bucket Required for `gcs` target_type. */ path: string; /** * GCP project in which the datastore exists */ project: string; /** * Prefix of BigQuery table Required for `bigquery` target_type. */ tablePrefix: string; } /** * Metadata common to many entities in this API. */ interface GoogleCloudApigeeV1EntityMetadataResponse { /** * Time at which the API proxy was created, in milliseconds since epoch. */ createdAt: string; /** * Time at which the API proxy was most recently modified, in milliseconds since epoch. */ lastModifiedAt: string; /** * The type of entity described */ subType: string; } /** * Binds the resources in a proxy or remote service with the GraphQL operation and its associated quota enforcement. */ interface GoogleCloudApigeeV1GraphQLOperationConfigResponse { /** * Name of the API proxy endpoint or remote service with which the GraphQL operation and quota are associated. */ apiSource: string; /** * Custom attributes associated with the operation. */ attributes: outputs.apigee.v1.GoogleCloudApigeeV1AttributeResponse[]; /** * List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. **Note**: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail. */ operations: outputs.apigee.v1.GoogleCloudApigeeV1GraphQLOperationResponse[]; /** * Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. */ quota: outputs.apigee.v1.GoogleCloudApigeeV1QuotaResponse; } /** * List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy. */ interface GoogleCloudApigeeV1GraphQLOperationGroupResponse { /** * Flag that specifies whether the configuration is for Apigee API proxy or a remote service. Valid values include `proxy` or `remoteservice`. Defaults to `proxy`. Set to `proxy` when Apigee API proxies are associated with the API product. Set to `remoteservice` when non-Apigee proxies like Istio-Envoy are associated with the API product. */ operationConfigType: string; /** * List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product. */ operationConfigs: outputs.apigee.v1.GoogleCloudApigeeV1GraphQLOperationConfigResponse[]; } /** * Represents the pairing of GraphQL operation types and the GraphQL operation name. */ interface GoogleCloudApigeeV1GraphQLOperationResponse { /** * GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload. */ operation: string; /** * GraphQL operation types. Valid values include `query` or `mutation`. **Note**: Apigee does not currently support `subscription` types. */ operationTypes: string[]; } /** * Binds the resources in a proxy or remote service with the gRPC operation and its associated quota enforcement. */ interface GoogleCloudApigeeV1GrpcOperationConfigResponse { /** * Name of the API proxy with which the gRPC operation and quota are associated. */ apiSource: string; /** * Custom attributes associated with the operation. */ attributes: outputs.apigee.v1.GoogleCloudApigeeV1AttributeResponse[]; /** * List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy. Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply ["ListPets", "GetPet"]. */ methods: string[]; /** * Quota parameters to be enforced for the methods and API source combination. If none are specified, quota enforcement will not be done. */ quota: outputs.apigee.v1.GoogleCloudApigeeV1QuotaResponse; /** * gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon. */ service: string; } /** * List of gRPC operation configuration details associated with Apigee API proxies. */ interface GoogleCloudApigeeV1GrpcOperationGroupResponse { /** * List of operation configurations for either Apigee API proxies that are associated with this API product. */ operationConfigs: outputs.apigee.v1.GoogleCloudApigeeV1GrpcOperationConfigResponse[]; } /** * Configuration for the Integration add-on. */ interface GoogleCloudApigeeV1IntegrationConfigResponse { /** * Flag that specifies whether the Integration add-on is enabled. */ enabled: boolean; } /** * Configuration for the Monetization add-on. */ interface GoogleCloudApigeeV1MonetizationConfigResponse { /** * Flag that specifies whether the Monetization add-on is enabled. */ enabled: boolean; } /** * NodeConfig for setting the min/max number of nodes associated with the environment. */ interface GoogleCloudApigeeV1NodeConfigResponse { /** * The current total number of gateway nodes that each environment currently has across all instances. */ currentAggregateNodeCount: string; /** * Optional. The maximum total number of gateway nodes that the is reserved for all instances that has the specified environment. If not specified, the default is determined by the recommended maximum number of nodes for that gateway. */ maxNodeCount: string; /** * Optional. The minimum total number of gateway nodes that the is reserved for all instances that has the specified environment. If not specified, the default is determined by the recommended minimum number of nodes for that gateway. */ minNodeCount: string; } /** * Binds the resources in an API proxy or remote service with the allowed REST methods and associated quota enforcement. */ interface GoogleCloudApigeeV1OperationConfigResponse { /** * Name of the API proxy or remote service with which the resources, methods, and quota are associated. */ apiSource: string; /** * Custom attributes associated with the operation. */ attributes: outputs.apigee.v1.GoogleCloudApigeeV1AttributeResponse[]; /** * List of resource/method pairs for the API proxy or remote service to which quota will applied. **Note**: Currently, you can specify only a single resource/method pair. The call will fail if more than one resource/method pair is provided. */ operations: outputs.apigee.v1.GoogleCloudApigeeV1OperationResponse[]; /** * Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done. */ quota: outputs.apigee.v1.GoogleCloudApigeeV1QuotaResponse; } /** * List of operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy. */ interface GoogleCloudApigeeV1OperationGroupResponse { /** * Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include `proxy` or `remoteservice`. Defaults to `proxy`. Set to `proxy` when Apigee API proxies are associated with the API product. Set to `remoteservice` when non-Apigee proxies like Istio-Envoy are associated with the API product. */ operationConfigType: string; /** * List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product. */ operationConfigs: outputs.apigee.v1.GoogleCloudApigeeV1OperationConfigResponse[]; } /** * Represents the pairing of REST resource path and the actions (verbs) allowed on the resource path. */ interface GoogleCloudApigeeV1OperationResponse { /** * methods refers to the REST verbs as in https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html. When none specified, all verb types are allowed. */ methods: string[]; /** * REST resource path associated with the API proxy or remote service. */ resource: string; } /** * Checks for abuse, which includes any requests sent to the API for purposes other than what it is intended for, such as high volumes of requests, data scraping, and abuse related to authorization. */ interface GoogleCloudApigeeV1ProfileConfigAbuseResponse { } /** * By default, following policies will be included: - JWS - JWT - OAuth - BasicAuth - APIKey */ interface GoogleCloudApigeeV1ProfileConfigAuthorizationResponse { } /** * Checks to see if you have CORS policy in place. */ interface GoogleCloudApigeeV1ProfileConfigCORSResponse { } /** * Advanced API Security provides security profile that scores the following categories. */ interface GoogleCloudApigeeV1ProfileConfigCategoryResponse { /** * Checks for abuse, which includes any requests sent to the API for purposes other than what it is intended for, such as high volumes of requests, data scraping, and abuse related to authorization. */ abuse: outputs.apigee.v1.GoogleCloudApigeeV1ProfileConfigAbuseResponse; /** * Checks to see if you have an authorization policy in place. */ authorization: outputs.apigee.v1.GoogleCloudApigeeV1ProfileConfigAuthorizationResponse; /** * Checks to see if you have CORS policy in place. */ cors: outputs.apigee.v1.GoogleCloudApigeeV1ProfileConfigCORSResponse; /** * Checks to see if you have a mediation policy in place. */ mediation: outputs.apigee.v1.GoogleCloudApigeeV1ProfileConfigMediationResponse; /** * Checks to see if you have configured mTLS for the target server. */ mtls: outputs.apigee.v1.GoogleCloudApigeeV1ProfileConfigMTLSResponse; /** * Checks to see if you have a threat protection policy in place. */ threat: outputs.apigee.v1.GoogleCloudApigeeV1ProfileConfigThreatResponse; } /** * Checks to see if you have configured mTLS for the target server. */ interface GoogleCloudApigeeV1ProfileConfigMTLSResponse { } /** * By default, following policies will be included: - OASValidation - SOAPMessageValidation */ interface GoogleCloudApigeeV1ProfileConfigMediationResponse { } /** * ProfileConfig defines a set of categories and policies which will be used to compute security score. */ interface GoogleCloudApigeeV1ProfileConfigResponse { /** * List of categories of profile config. */ categories: outputs.apigee.v1.GoogleCloudApigeeV1ProfileConfigCategoryResponse[]; } /** * By default, following policies will be included: - XMLThreatProtection - JSONThreatProtection */ interface GoogleCloudApigeeV1ProfileConfigThreatResponse { } /** * Message for compatibility with legacy Edge specification for Java Properties object in JSON. */ interface GoogleCloudApigeeV1PropertiesResponse { /** * List of all properties in the object */ property: outputs.apigee.v1.GoogleCloudApigeeV1PropertyResponse[]; } /** * A single property entry in the Properties message. */ interface GoogleCloudApigeeV1PropertyResponse { /** * The property key */ name: string; /** * The property value */ value: string; } interface GoogleCloudApigeeV1QueryMetadataResponse { /** * Dimensions of the AsyncQuery. */ dimensions: string[]; /** * End timestamp of the query range. */ endTimestamp: string; /** * Metrics of the AsyncQuery. Example: ["name:message_count,func:sum,alias:sum_message_count"] */ metrics: string[]; /** * Output format. */ outputFormat: string; /** * Start timestamp of the query range. */ startTimestamp: string; /** * Query GroupBy time unit. */ timeUnit: string; } /** * Quota contains the essential parameters needed that can be applied on the resources, methods, API source combination associated with this API product. While Quota is optional, setting it prevents requests from exceeding the provisioned parameters. */ interface GoogleCloudApigeeV1QuotaResponse { /** * Time interval over which the number of request messages is calculated. */ interval: string; /** * Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected. */ limit: string; /** * Time unit defined for the `interval`. Valid values include `minute`, `hour`, `day`, or `month`. If `limit` and `interval` are valid, the default value is `hour`; otherwise, the default is null. */ timeUnit: string; } /** * API call volume range and the fees charged when the total number of API calls is within the range. */ interface GoogleCloudApigeeV1RateRangeResponse { /** * Ending value of the range. Set to 0 or `null` for the last range of values. */ end: string; /** * Fee to charge when total number of API calls falls within this range. */ fee: outputs.apigee.v1.GoogleTypeMoneyResponse; /** * Starting value of the range. Set to 0 or `null` for the initial range of values. */ start: string; } interface GoogleCloudApigeeV1ReportPropertyResponse { /** * name of the property */ property: string; /** * property values */ value: outputs.apigee.v1.GoogleCloudApigeeV1AttributeResponse[]; } /** * API call volume range and the percentage of revenue to share with the developer when the total number of API calls is within the range. */ interface GoogleCloudApigeeV1RevenueShareRangeResponse { /** * Ending value of the range. Set to 0 or `null` for the last range of values. */ end: string; /** * Percentage of the revenue to be shared with the developer. For example, to share 21 percent of the total revenue with the developer, set this value to 21. Specify a decimal number with a maximum of two digits following the decimal point. */ sharePercentage: number; /** * Starting value of the range. Set to 0 or `null` for the initial range of values. */ start: string; } /** * Message that should be set in case of an Allow Action. This does not have any fields. */ interface GoogleCloudApigeeV1SecurityActionAllowResponse { } /** * The following are a list of conditions. A valid SecurityAction must contain at least one condition. Within a condition, each element is ORed. Across conditions elements are ANDed. For example if a SecurityAction has the following: api_keys: ["key1", "key2"] and developers: ["dev1", "dev2"] then this is interpreted as: enforce the action if the incoming request has ((api_key = "key1" OR api_key="key") AND (developer="dev1" OR developer="dev2")) */ interface GoogleCloudApigeeV1SecurityActionConditionConfigResponse { /** * Optional. A list of Bot Reasons. Current options: Flooder, Brute Guessor, Static Content Scraper, OAuth Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection and Advanced API Scraper. */ botReasons: string[]; /** * Optional. A list of IP addresses. This could be either IPv4 or IPv6. Limited to 100 per action. */ ipAddressRanges: string[]; } /** * Message that should be set in case of a Deny Action. */ interface GoogleCloudApigeeV1SecurityActionDenyResponse { /** * Optional. The HTTP response code if the Action = DENY. */ responseCode: number; } /** * The message that should be set in the case of a Flag action. */ interface GoogleCloudApigeeV1SecurityActionFlagResponse { /** * Optional. A list of HTTP headers to be sent to the target in case of a FLAG SecurityAction. Limit 5 headers per SecurityAction. At least one is mandatory. */ headers: outputs.apigee.v1.GoogleCloudApigeeV1SecurityActionHttpHeaderResponse[]; } /** * An HTTP header. */ interface GoogleCloudApigeeV1SecurityActionHttpHeaderResponse { /** * The header name to be sent to the target. */ name: string; /** * The header value to be sent to the target. */ value: string; } /** * Environment information of attached environments. Scoring an environment is enabled only if it is attached to a security profile. */ interface GoogleCloudApigeeV1SecurityProfileEnvironmentResponse { /** * Time at which environment was attached to the security profile. */ attachTime: string; /** * Name of the environment. */ environment: string; } /** * Security configurations to manage scoring. */ interface GoogleCloudApigeeV1SecurityProfileScoringConfigResponse { /** * Description of the config. */ description: string; /** * Path of the component config used for scoring. */ scorePath: string; /** * Title of the config. */ title: string; } /** * Metadata for the security report. */ interface GoogleCloudApigeeV1SecurityReportMetadataResponse { /** * Dimensions of the SecurityReport. */ dimensions: string[]; /** * End timestamp of the query range. */ endTimestamp: string; /** * Metrics of the SecurityReport. Example: ["name:bot_count,func:sum,alias:sum_bot_count"] */ metrics: string[]; /** * MIME type / Output format. */ mimeType: string; /** * Start timestamp of the query range. */ startTimestamp: string; /** * Query GroupBy time unit. Example: "seconds", "minute", "hour" */ timeUnit: string; } /** * Contains informations about the security report results. */ interface GoogleCloudApigeeV1SecurityReportResultMetadataResponse { /** * Expire_time is set to 7 days after report creation. Query result will be unaccessable after this time. Example: "2021-05-04T13:38:52-07:00" */ expires: string; /** * Self link of the query results. Example: `/organizations/myorg/environments/myenv/securityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` or following format if query is running at host level: `/organizations/myorg/hostSecurityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` */ self: string; } interface GoogleCloudApigeeV1TlsInfoCommonNameResponse { /** * The TLS Common Name string of the certificate. */ value: string; /** * Indicates whether the cert should be matched against as a wildcard cert. */ wildcardMatch: boolean; } /** * TLS configuration information for virtual hosts and TargetServers. */ interface GoogleCloudApigeeV1TlsInfoResponse { /** * The SSL/TLS cipher suites to be used. For programmable proxies, it must be one of the cipher suite names listed in: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites. For configurable proxies, it must follow the configuration specified in: https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration. This setting has no effect for configurable proxies when negotiating TLS 1.3. */ ciphers: string[]; /** * Optional. Enables two-way TLS. */ clientAuthEnabled: boolean; /** * The TLS Common Name of the certificate. */ commonName: outputs.apigee.v1.GoogleCloudApigeeV1TlsInfoCommonNameResponse; /** * Enables TLS. If false, neither one-way nor two-way TLS will be enabled. */ enabled: boolean; /** * If true, Edge ignores TLS certificate errors. Valid when configuring TLS for target servers and target endpoints, and when configuring virtual hosts that use 2-way TLS. When used with a target endpoint/target server, if the backend system uses SNI and returns a cert with a subject Distinguished Name (DN) that does not match the hostname, there is no way to ignore the error and the connection fails. */ ignoreValidationErrors: boolean; /** * Required if `client_auth_enabled` is true. The resource ID for the alias containing the private key and cert. */ keyAlias: string; /** * Required if `client_auth_enabled` is true. The resource ID of the keystore. */ keyStore: string; /** * The TLS versioins to be used. */ protocols: string[]; /** * The resource ID of the truststore. */ trustStore: string; } /** * TraceSamplingConfig represents the detail settings of distributed tracing. Only the fields that are defined in the distributed trace configuration can be overridden using the distribute trace configuration override APIs. */ interface GoogleCloudApigeeV1TraceSamplingConfigResponse { /** * Sampler of distributed tracing. OFF is the default value. */ sampler: string; /** * Field sampling rate. This value is only applicable when using the PROBABILITY sampler. The supported values are > 0 and <= 0.5. */ samplingRate: number; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.apigee.v1.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.apigee.v1.GoogleTypeExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface GoogleTypeExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Represents an amount of money with its currency type. */ interface GoogleTypeMoneyResponse { /** * The three-letter currency code defined in ISO 4217. */ currencyCode: string; /** * Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. */ nanos: number; /** * The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. */ units: string; } } } export declare namespace apigeeregistry { namespace v1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.apigeeregistry.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Build information of the Instance if it's in `ACTIVE` state. */ interface BuildResponse { /** * Commit ID of the latest commit in the build. */ commitId: string; /** * Commit time of the latest commit in the build. */ commitTime: string; /** * Path of the open source repository: github.com/apigee/registry. */ repo: string; } /** * Available configurations to provision an Instance. */ interface ConfigResponse { /** * The Customer Managed Encryption Key (CMEK) used for data encryption. The CMEK name should follow the format of `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`, where the `location` must match InstanceConfig.location. */ cmekKeyName: string; /** * The GCP location where the Instance resides. */ location: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace apikeys { namespace v2 { /** * Identifier of an Android application for key use. */ interface V2AndroidApplicationResponse { /** * The package name of the application. */ packageName: string; /** * The SHA1 fingerprint of the application. For example, both sha1 formats are acceptable : DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09 or DA39A3EE5E6B4B0D3255BFEF95601890AFD80709. Output format is the latter. */ sha1Fingerprint: string; } /** * The Android apps that are allowed to use the key. */ interface V2AndroidKeyRestrictionsResponse { /** * A list of Android applications that are allowed to make API calls with this key. */ allowedApplications: outputs.apikeys.v2.V2AndroidApplicationResponse[]; } /** * A restriction for a specific service and optionally one or multiple specific methods. Both fields are case insensitive. */ interface V2ApiTargetResponse { /** * Optional. List of one or more methods that can be called. If empty, all methods for the service are allowed. A wildcard (*) can be used as the last symbol. Valid examples: `google.cloud.translate.v2.TranslateService.GetSupportedLanguage` `TranslateText` `Get*` `translate.googleapis.com.Get*` */ methods: string[]; /** * The service for this restriction. It should be the canonical service name, for example: `translate.googleapis.com`. You can use [`gcloud services list`](/sdk/gcloud/reference/services/list) to get a list of services that are enabled in the project. */ service: string; } /** * The HTTP referrers (websites) that are allowed to use the key. */ interface V2BrowserKeyRestrictionsResponse { /** * A list of regular expressions for the referrer URLs that are allowed to make API calls with this key. */ allowedReferrers: string[]; } /** * The iOS apps that are allowed to use the key. */ interface V2IosKeyRestrictionsResponse { /** * A list of bundle IDs that are allowed when making API calls with this key. */ allowedBundleIds: string[]; } /** * Describes the restrictions on the key. */ interface V2RestrictionsResponse { /** * The Android apps that are allowed to use the key. */ androidKeyRestrictions: outputs.apikeys.v2.V2AndroidKeyRestrictionsResponse; /** * A restriction for a specific service and optionally one or more specific methods. Requests are allowed if they match any of these restrictions. If no restrictions are specified, all targets are allowed. */ apiTargets: outputs.apikeys.v2.V2ApiTargetResponse[]; /** * The HTTP referrers (websites) that are allowed to use the key. */ browserKeyRestrictions: outputs.apikeys.v2.V2BrowserKeyRestrictionsResponse; /** * The iOS apps that are allowed to use the key. */ iosKeyRestrictions: outputs.apikeys.v2.V2IosKeyRestrictionsResponse; /** * The IP addresses of callers that are allowed to use the key. */ serverKeyRestrictions: outputs.apikeys.v2.V2ServerKeyRestrictionsResponse; } /** * The IP addresses of callers that are allowed to use the key. */ interface V2ServerKeyRestrictionsResponse { /** * A list of the caller IP addresses that are allowed to make API calls with this key. */ allowedIps: string[]; } } } export declare namespace appengine { namespace v1 { /** * Google Cloud Endpoints (https://cloud.google.com/endpoints) configuration for API handlers. */ interface ApiConfigHandlerResponse { /** * Action to take when users access resources that require authentication. Defaults to redirect. */ authFailAction: string; /** * Level of login required to access this resource. Defaults to optional. */ login: string; /** * Path to the script from the application root directory. */ script: string; /** * Security (HTTPS) enforcement for this URL. */ securityLevel: string; /** * URL to serve the endpoint at. */ url: string; } /** * Uses Google Cloud Endpoints to handle requests. */ interface ApiEndpointHandlerResponse { /** * Path to the script from the application root directory. */ scriptPath: string; } /** * Automatic scaling is based on request rate, response latencies, and other application metrics. */ interface AutomaticScalingResponse { /** * The time period that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. Only applicable in the App Engine flexible environment. */ coolDownPeriod: string; /** * Target scaling by CPU usage. */ cpuUtilization: outputs.appengine.v1.CpuUtilizationResponse; /** * Target scaling by disk usage. */ diskUtilization: outputs.appengine.v1.DiskUtilizationResponse; /** * Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value. */ maxConcurrentRequests: number; /** * Maximum number of idle instances that should be maintained for this version. */ maxIdleInstances: number; /** * Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it. */ maxPendingLatency: string; /** * Maximum number of instances that should be started to handle requests for this version. */ maxTotalInstances: number; /** * Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service. */ minIdleInstances: number; /** * Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it. */ minPendingLatency: string; /** * Minimum number of running instances that should be maintained for this version. */ minTotalInstances: number; /** * Target scaling by network usage. */ networkUtilization: outputs.appengine.v1.NetworkUtilizationResponse; /** * Target scaling by request utilization. */ requestUtilization: outputs.appengine.v1.RequestUtilizationResponse; /** * Scheduler settings for standard environment. */ standardSchedulerSettings: outputs.appengine.v1.StandardSchedulerSettingsResponse; } /** * A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. */ interface BasicScalingResponse { /** * Duration of time after the last request that an instance must wait before the instance is shut down. */ idleTimeout: string; /** * Maximum number of instances to create for this version. */ maxInstances: number; } /** * An SSL certificate obtained from a certificate authority. */ interface CertificateRawDataResponse { /** * Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- @InputOnly */ privateKey: string; /** * PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- */ publicCertificate: string; } /** * Options for the build operations performed as a part of the version deployment. Only applicable for App Engine flexible environment when creating a version using source code directly. */ interface CloudBuildOptionsResponse { /** * Path to the yaml file used in deployment, used to determine runtime configuration details.Required for flexible environment builds.See https://cloud.google.com/appengine/docs/standard/python/config/appref for more details. */ appYamlPath: string; /** * The Cloud Build timeout used as part of any dependent builds performed by version creation. Defaults to 10 minutes. */ cloudBuildTimeout: string; } /** * Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. */ interface ContainerInfoResponse { /** * URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest" */ image: string; } /** * Target scaling by CPU usage. */ interface CpuUtilizationResponse { /** * Period of time over which CPU utilization is calculated. */ aggregationWindowLength: string; /** * Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1. */ targetUtilization: number; } /** * Code and application artifacts used to deploy a version to App Engine. */ interface DeploymentResponse { /** * Options for any Google Cloud Build builds created as a part of this deployment.These options will only be used if a new build is created, such as when deploying to the App Engine flexible environment using files or zip. */ cloudBuildOptions: outputs.appengine.v1.CloudBuildOptionsResponse; /** * The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment. */ container: outputs.appengine.v1.ContainerInfoResponse; /** * Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call. */ files: { [key: string]: string; }; /** * The zip file for this deployment, if this is a zip deployment. */ zip: outputs.appengine.v1.ZipInfoResponse; } /** * Target scaling by disk usage. Only applicable in the App Engine flexible environment. */ interface DiskUtilizationResponse { /** * Target bytes read per second. */ targetReadBytesPerSecond: number; /** * Target ops read per seconds. */ targetReadOpsPerSecond: number; /** * Target bytes written per second. */ targetWriteBytesPerSecond: number; /** * Target ops written per second. */ targetWriteOpsPerSecond: number; } /** * Google Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy. Only valid for App Engine Flexible environment deployments.The fields here refer to the name and configuration ID of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). */ interface EndpointsApiServiceResponse { /** * Endpoints service configuration ID as specified by the Service Management API. For example "2016-09-19r1".By default, the rollout strategy for Endpoints is RolloutStrategy.FIXED. This means that Endpoints starts up with a particular configuration ID. When a new configuration is rolled out, Endpoints must be given the new configuration ID. The config_id field is used to give the configuration ID and is required in this case.Endpoints also has a rollout strategy called RolloutStrategy.MANAGED. When using this, Endpoints fetches the latest configuration and does not need the configuration ID. In this case, config_id must be omitted. */ configId: string; /** * Enable or disable trace sampling. By default, this is set to false for enabled. */ disableTraceSampling: boolean; /** * Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog" */ name: string; /** * Endpoints rollout strategy. If FIXED, config_id must be specified. If MANAGED, config_id must be omitted. */ rolloutStrategy: string; } /** * The entrypoint for the application. */ interface EntrypointResponse { /** * The format should be a shell command that can be fed to bash -c. */ shell: string; } /** * Custom static error page to be served when an error occurs. */ interface ErrorHandlerResponse { /** * Error condition this handler applies to. */ errorCode: string; /** * MIME type of file. Defaults to text/html. */ mimeType: string; /** * Static file content to be served for this error. */ staticFile: string; } /** * The feature specific settings to be used in the application. These define behaviors that are user configurable. */ interface FeatureSettingsResponse { /** * Boolean value indicating if split health checks should be used instead of the legacy health checks. At an app.yaml level, this means defaulting to 'readiness_check' and 'liveness_check' values instead of 'health_check' ones. Once the legacy 'health_check' behavior is deprecated, and this value is always true, this setting can be removed. */ splitHealthChecks: boolean; /** * If true, use Container-Optimized OS (https://cloud.google.com/container-optimized-os/) base image for VMs, rather than a base Debian image. */ useContainerOptimizedOs: boolean; } /** * Runtime settings for the App Engine flexible environment. */ interface FlexibleRuntimeSettingsResponse { /** * The operating system of the application runtime. */ operatingSystem: string; /** * The runtime version of an App Engine flexible application. */ runtimeVersion: string; } /** * Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. */ interface HealthCheckResponse { /** * Interval between health checks. */ checkInterval: string; /** * Whether to explicitly disable health checks for this instance. */ disableHealthCheck: boolean; /** * Number of consecutive successful health checks required before receiving traffic. */ healthyThreshold: number; /** * Host header to send when performing an HTTP health check. Example: "myapp.appspot.com" */ host: string; /** * Number of consecutive failed health checks required before an instance is restarted. */ restartThreshold: number; /** * Time before the health check is considered failed. */ timeout: string; /** * Number of consecutive failed health checks required before removing traffic. */ unhealthyThreshold: number; } /** * Identity-Aware Proxy */ interface IdentityAwareProxyResponse { /** * Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty. */ enabled: boolean; /** * OAuth2 client ID to use for the authentication flow. */ oauth2ClientId: string; /** * OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly */ oauth2ClientSecret: string; /** * Hex-encoded SHA-256 hash of the client secret. */ oauth2ClientSecretSha256: string; } /** * Third-party Python runtime library that is required by the application. */ interface LibraryResponse { /** * Name of the library. Example: "django". */ name: string; /** * Version of the library to select, or "latest". */ version: string; } /** * Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. */ interface LivenessCheckResponse { /** * Interval between health checks. */ checkInterval: string; /** * Number of consecutive failed checks required before considering the VM unhealthy. */ failureThreshold: number; /** * Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com" */ host: string; /** * The initial delay before starting to execute the checks. */ initialDelay: string; /** * The request path. */ path: string; /** * Number of consecutive successful checks required before considering the VM healthy. */ successThreshold: number; /** * Time before the check is considered failed. */ timeout: string; } /** * A certificate managed by App Engine. */ interface ManagedCertificateResponse { /** * Time at which the certificate was last renewed. The renewal process is fully managed. Certificate renewal will automatically occur before the certificate expires. Renewal errors can be tracked via ManagementStatus. */ lastRenewalTime: string; /** * Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt. */ status: string; } /** * A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. */ interface ManualScalingResponse { /** * Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function. */ instances: number; } /** * Extra network settings. Only applicable in the App Engine flexible environment. */ interface NetworkResponse { /** * List of ports, or port pairs, to forward from the virtual machine to the application container. Only applicable in the App Engine flexible environment. */ forwardedPorts: string[]; /** * The IP mode for instances. Only applicable in the App Engine flexible environment. */ instanceIpMode: string; /** * Tag to apply to the instance during creation. Only applicable in the App Engine flexible environment. */ instanceTag: string; /** * Google Compute Engine network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default. */ name: string; /** * Enable session affinity. Only applicable in the App Engine flexible environment. */ sessionAffinity: boolean; /** * Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network that the instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network that the instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network that the instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the App Engine flexible environment application. */ subnetworkName: string; } /** * Target scaling by network usage. Only applicable in the App Engine flexible environment. */ interface NetworkUtilizationResponse { /** * Target bytes received per second. */ targetReceivedBytesPerSecond: number; /** * Target packets received per second. */ targetReceivedPacketsPerSecond: number; /** * Target bytes sent per second. */ targetSentBytesPerSecond: number; /** * Target packets sent per second. */ targetSentPacketsPerSecond: number; } /** * Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. */ interface ReadinessCheckResponse { /** * A maximum time limit on application initialization, measured from moment the application successfully replies to a healthcheck until it is ready to serve traffic. */ appStartTimeout: string; /** * Interval between health checks. */ checkInterval: string; /** * Number of consecutive failed checks required before removing traffic. */ failureThreshold: number; /** * Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com" */ host: string; /** * The request path. */ path: string; /** * Number of consecutive successful checks required before receiving traffic. */ successThreshold: number; /** * Time before the check is considered failed. */ timeout: string; } /** * Target scaling by request utilization. Only applicable in the App Engine flexible environment. */ interface RequestUtilizationResponse { /** * Target number of concurrent requests. */ targetConcurrentRequests: number; /** * Target requests per second. */ targetRequestCountPerSecond: number; } /** * A DNS resource record. */ interface ResourceRecordResponse { /** * Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'. */ name: string; /** * Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1). */ rrdata: string; /** * Resource record type. Example: AAAA. */ type: string; } /** * Machine resources for a version. */ interface ResourcesResponse { /** * Number of CPU cores needed. */ cpu: number; /** * Disk size (GB) needed. */ diskGb: number; /** * The name of the encryption key that is stored in Google Cloud KMS. Only should be used by Cloud Composer to encrypt the vm disk */ kmsKeyReference: string; /** * Memory (GB) needed. */ memoryGb: number; /** * User specified volumes. */ volumes: outputs.appengine.v1.VolumeResponse[]; } /** * Executes a script to handle the request that matches the URL pattern. */ interface ScriptHandlerResponse { /** * Path to the script from the application root directory. */ scriptPath: string; } /** * SSL configuration for a DomainMapping resource. */ interface SslSettingsResponse { /** * ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support.By default, a managed certificate is automatically created for every domain mapping. To omit SSL support or to configure SSL manually, specify SslManagementType.MANUAL on a CREATE or UPDATE request. You must be authorized to administer the AuthorizedCertificate resource to manually map it to a DomainMapping resource. Example: 12345. */ certificateId: string; /** * ID of the managed AuthorizedCertificate resource currently being provisioned, if applicable. Until the new managed certificate has been successfully provisioned, the previous SSL state will be preserved. Once the provisioning process completes, the certificate_id field will reflect the new managed certificate and this field will be left empty. To remove SSL support while there is still a pending managed certificate, clear the certificate_id field with an UpdateDomainMappingRequest. */ pendingManagedCertificateId: string; /** * SSL management type for this domain. If AUTOMATIC, a managed certificate is automatically provisioned. If MANUAL, certificate_id must be manually specified in order to configure SSL for this domain. */ sslManagementType: string; } /** * Scheduler settings for standard environment. */ interface StandardSchedulerSettingsResponse { /** * Maximum number of instances to run for this version. Set to zero to disable max_instances configuration. */ maxInstances: number; /** * Minimum number of instances to run for this version. Set to zero to disable min_instances configuration. */ minInstances: number; /** * Target CPU utilization ratio to maintain when scaling. */ targetCpuUtilization: number; /** * Target throughput utilization ratio to maintain when scaling */ targetThroughputUtilization: number; } /** * Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. */ interface StaticFilesHandlerResponse { /** * Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas. */ applicationReadable: boolean; /** * Time a static file served by this handler should be cached by web proxies and browsers. */ expiration: string; /** * HTTP headers to use for all responses from these URLs. */ httpHeaders: { [key: string]: string; }; /** * MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension. */ mimeType: string; /** * Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern. */ path: string; /** * Whether this handler should match the request if the file referenced by the handler does not exist. */ requireMatchingFile: boolean; /** * Regular expression that matches the file paths for all files that should be referenced by this handler. */ uploadPathRegex: string; } /** * Rules to match an HTTP request and dispatch that request to a service. */ interface UrlDispatchRuleResponse { /** * Domain name to match against. The wildcard "*" is supported if specified before a period: "*.".Defaults to matching all domains: "*". */ domain: string; /** * Pathname within the host. Must start with a "/". A single "*" can be included at the end of the path.The sum of the lengths of the domain and path may not exceed 100 characters. */ path: string; /** * Resource ID of a service in this application that should serve the matched request. The service must already exist. Example: default. */ service: string; } /** * URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript. */ interface UrlMapResponse { /** * Uses API Endpoints to handle requests. */ apiEndpoint: outputs.appengine.v1.ApiEndpointHandlerResponse; /** * Action to take when users access resources that require authentication. Defaults to redirect. */ authFailAction: string; /** * Level of login required to access this resource. Not supported for Node.js in the App Engine standard environment. */ login: string; /** * 30x code to use when performing redirects for the secure field. Defaults to 302. */ redirectHttpResponseCode: string; /** * Executes a script to handle the requests that match this URL pattern. Only the auto value is supported for Node.js in the App Engine standard environment, for example "script": "auto". */ script: outputs.appengine.v1.ScriptHandlerResponse; /** * Security (HTTPS) enforcement for this URL. */ securityLevel: string; /** * Returns the contents of a file, such as an image, as the response. */ staticFiles: outputs.appengine.v1.StaticFilesHandlerResponse; /** * URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path. */ urlRegex: string; } /** * Volumes mounted within the app container. Only applicable in the App Engine flexible environment. */ interface VolumeResponse { /** * Unique name for the volume. */ name: string; /** * Volume size in gigabytes. */ sizeGb: number; /** * Underlying volume type, e.g. 'tmpfs'. */ volumeType: string; } /** * VPC access connector specification. */ interface VpcAccessConnectorResponse { /** * The egress setting for the connector, controlling what traffic is diverted through it. */ egressSetting: string; /** * Full Serverless VPC Access Connector name e.g. projects/my-project/locations/us-central1/connectors/c1. */ name: string; } /** * The zip file information for a zip deployment. */ interface ZipInfoResponse { /** * An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow. */ filesCount: number; /** * URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'. */ sourceUrl: string; } } namespace v1alpha { /** * An SSL certificate obtained from a certificate authority. */ interface CertificateRawDataResponse { /** * Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- @InputOnly */ privateKey: string; /** * PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- */ publicCertificate: string; } /** * A certificate managed by App Engine. */ interface ManagedCertificateResponse { /** * Time at which the certificate was last renewed. The renewal process is fully managed. Certificate renewal will automatically occur before the certificate expires. Renewal errors can be tracked via ManagementStatus. */ lastRenewalTime: string; /** * Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt. */ status: string; } /** * A DNS resource record. */ interface ResourceRecordResponse { /** * Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'. */ name: string; /** * Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1). */ rrdata: string; /** * Resource record type. Example: AAAA. */ type: string; } /** * SSL configuration for a DomainMapping resource. */ interface SslSettingsResponse { /** * ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support.By default, a managed certificate is automatically created for every domain mapping. To omit SSL support or to configure SSL manually, specify no_managed_certificate on a CREATE or UPDATE request. You must be authorized to administer the AuthorizedCertificate resource to manually map it to a DomainMapping resource. Example: 12345. */ certificateId: string; /** * Whether the mapped certificate is an App Engine managed certificate. Managed certificates are created by default with a domain mapping. To opt out, specify no_managed_certificate on a CREATE or UPDATE request. */ isManagedCertificate: boolean; } } namespace v1beta { /** * Google Cloud Endpoints (https://cloud.google.com/endpoints) configuration for API handlers. */ interface ApiConfigHandlerResponse { /** * Action to take when users access resources that require authentication. Defaults to redirect. */ authFailAction: string; /** * Level of login required to access this resource. Defaults to optional. */ login: string; /** * Path to the script from the application root directory. */ script: string; /** * Security (HTTPS) enforcement for this URL. */ securityLevel: string; /** * URL to serve the endpoint at. */ url: string; } /** * Uses Google Cloud Endpoints to handle requests. */ interface ApiEndpointHandlerResponse { /** * Path to the script from the application root directory. */ scriptPath: string; } /** * Automatic scaling is based on request rate, response latencies, and other application metrics. */ interface AutomaticScalingResponse { /** * The time period that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. Only applicable in the App Engine flexible environment. */ coolDownPeriod: string; /** * Target scaling by CPU usage. */ cpuUtilization: outputs.appengine.v1beta.CpuUtilizationResponse; /** * Target scaling by user-provided metrics. Only applicable in the App Engine flexible environment. */ customMetrics: outputs.appengine.v1beta.CustomMetricResponse[]; /** * Target scaling by disk usage. */ diskUtilization: outputs.appengine.v1beta.DiskUtilizationResponse; /** * Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value. */ maxConcurrentRequests: number; /** * Maximum number of idle instances that should be maintained for this version. */ maxIdleInstances: number; /** * Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it. */ maxPendingLatency: string; /** * Maximum number of instances that should be started to handle requests for this version. */ maxTotalInstances: number; /** * Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service. */ minIdleInstances: number; /** * Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it. */ minPendingLatency: string; /** * Minimum number of running instances that should be maintained for this version. */ minTotalInstances: number; /** * Target scaling by network usage. */ networkUtilization: outputs.appengine.v1beta.NetworkUtilizationResponse; /** * Target scaling by request utilization. */ requestUtilization: outputs.appengine.v1beta.RequestUtilizationResponse; /** * Scheduler settings for standard environment. */ standardSchedulerSettings: outputs.appengine.v1beta.StandardSchedulerSettingsResponse; } /** * A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. */ interface BasicScalingResponse { /** * Duration of time after the last request that an instance must wait before the instance is shut down. */ idleTimeout: string; /** * Maximum number of instances to create for this version. */ maxInstances: number; } /** * Google Cloud Build information. */ interface BuildInfoResponse { /** * The Google Cloud Build id. Example: "f966068f-08b2-42c8-bdfe-74137dff2bf9" */ cloudBuildId: string; } /** * An SSL certificate obtained from a certificate authority. */ interface CertificateRawDataResponse { /** * Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- @InputOnly */ privateKey: string; /** * PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- */ publicCertificate: string; } /** * Options for the build operations performed as a part of the version deployment. Only applicable for App Engine flexible environment when creating a version using source code directly. */ interface CloudBuildOptionsResponse { /** * Path to the yaml file used in deployment, used to determine runtime configuration details.Required for flexible environment builds.See https://cloud.google.com/appengine/docs/standard/python/config/appref for more details. */ appYamlPath: string; /** * The Cloud Build timeout used as part of any dependent builds performed by version creation. Defaults to 10 minutes. */ cloudBuildTimeout: string; } /** * Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. */ interface ContainerInfoResponse { /** * URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest" */ image: string; } /** * Target scaling by CPU usage. */ interface CpuUtilizationResponse { /** * Period of time over which CPU utilization is calculated. */ aggregationWindowLength: string; /** * Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1. */ targetUtilization: number; } /** * Allows autoscaling based on Stackdriver metrics. */ interface CustomMetricResponse { /** * Allows filtering on the metric's fields. */ filter: string; /** * The name of the metric. */ metricName: string; /** * May be used instead of target_utilization when an instance can handle a specific amount of work/resources and the metric value is equal to the current amount of work remaining. The autoscaler will try to keep the number of instances equal to the metric value divided by single_instance_assignment. */ singleInstanceAssignment: number; /** * The type of the metric. Must be a string representing a Stackdriver metric type e.g. GAGUE, DELTA_PER_SECOND, etc. */ targetType: string; /** * The target value for the metric. */ targetUtilization: number; } /** * Code and application artifacts used to deploy a version to App Engine. */ interface DeploymentResponse { /** * Google Cloud Build build information. Only applicable for instances running in the App Engine flexible environment. */ build: outputs.appengine.v1beta.BuildInfoResponse; /** * Options for any Google Cloud Build builds created as a part of this deployment.These options will only be used if a new build is created, such as when deploying to the App Engine flexible environment using files or zip. */ cloudBuildOptions: outputs.appengine.v1beta.CloudBuildOptionsResponse; /** * The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment. */ container: outputs.appengine.v1beta.ContainerInfoResponse; /** * Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call. */ files: { [key: string]: string; }; /** * The zip file for this deployment, if this is a zip deployment. */ zip: outputs.appengine.v1beta.ZipInfoResponse; } /** * Target scaling by disk usage. Only applicable in the App Engine flexible environment. */ interface DiskUtilizationResponse { /** * Target bytes read per second. */ targetReadBytesPerSecond: number; /** * Target ops read per seconds. */ targetReadOpsPerSecond: number; /** * Target bytes written per second. */ targetWriteBytesPerSecond: number; /** * Target ops written per second. */ targetWriteOpsPerSecond: number; } /** * Google Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy. Only valid for App Engine Flexible environment deployments.The fields here refer to the name and configuration ID of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). */ interface EndpointsApiServiceResponse { /** * Endpoints service configuration ID as specified by the Service Management API. For example "2016-09-19r1".By default, the rollout strategy for Endpoints is RolloutStrategy.FIXED. This means that Endpoints starts up with a particular configuration ID. When a new configuration is rolled out, Endpoints must be given the new configuration ID. The config_id field is used to give the configuration ID and is required in this case.Endpoints also has a rollout strategy called RolloutStrategy.MANAGED. When using this, Endpoints fetches the latest configuration and does not need the configuration ID. In this case, config_id must be omitted. */ configId: string; /** * Enable or disable trace sampling. By default, this is set to false for enabled. */ disableTraceSampling: boolean; /** * Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog" */ name: string; /** * Endpoints rollout strategy. If FIXED, config_id must be specified. If MANAGED, config_id must be omitted. */ rolloutStrategy: string; } /** * The entrypoint for the application. */ interface EntrypointResponse { /** * The format should be a shell command that can be fed to bash -c. */ shell: string; } /** * Custom static error page to be served when an error occurs. */ interface ErrorHandlerResponse { /** * Error condition this handler applies to. */ errorCode: string; /** * MIME type of file. Defaults to text/html. */ mimeType: string; /** * Static file content to be served for this error. */ staticFile: string; } /** * The feature specific settings to be used in the application. These define behaviors that are user configurable. */ interface FeatureSettingsResponse { /** * Boolean value indicating if split health checks should be used instead of the legacy health checks. At an app.yaml level, this means defaulting to 'readiness_check' and 'liveness_check' values instead of 'health_check' ones. Once the legacy 'health_check' behavior is deprecated, and this value is always true, this setting can be removed. */ splitHealthChecks: boolean; /** * If true, use Container-Optimized OS (https://cloud.google.com/container-optimized-os/) base image for VMs, rather than a base Debian image. */ useContainerOptimizedOs: boolean; } /** * Runtime settings for the App Engine flexible environment. */ interface FlexibleRuntimeSettingsResponse { /** * The operating system of the application runtime. */ operatingSystem: string; /** * The runtime version of an App Engine flexible application. */ runtimeVersion: string; } /** * Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. */ interface HealthCheckResponse { /** * Interval between health checks. */ checkInterval: string; /** * Whether to explicitly disable health checks for this instance. */ disableHealthCheck: boolean; /** * Number of consecutive successful health checks required before receiving traffic. */ healthyThreshold: number; /** * Host header to send when performing an HTTP health check. Example: "myapp.appspot.com" */ host: string; /** * Number of consecutive failed health checks required before an instance is restarted. */ restartThreshold: number; /** * Time before the health check is considered failed. */ timeout: string; /** * Number of consecutive failed health checks required before removing traffic. */ unhealthyThreshold: number; } /** * Identity-Aware Proxy */ interface IdentityAwareProxyResponse { /** * Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty. */ enabled: boolean; /** * OAuth2 client ID to use for the authentication flow. */ oauth2ClientId: string; /** * OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly */ oauth2ClientSecret: string; /** * Hex-encoded SHA-256 hash of the client secret. */ oauth2ClientSecretSha256: string; } /** * Third-party Python runtime library that is required by the application. */ interface LibraryResponse { /** * Name of the library. Example: "django". */ name: string; /** * Version of the library to select, or "latest". */ version: string; } /** * Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. */ interface LivenessCheckResponse { /** * Interval between health checks. */ checkInterval: string; /** * Number of consecutive failed checks required before considering the VM unhealthy. */ failureThreshold: number; /** * Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com" */ host: string; /** * The initial delay before starting to execute the checks. */ initialDelay: string; /** * The request path. */ path: string; /** * Number of consecutive successful checks required before considering the VM healthy. */ successThreshold: number; /** * Time before the check is considered failed. */ timeout: string; } /** * A certificate managed by App Engine. */ interface ManagedCertificateResponse { /** * Time at which the certificate was last renewed. The renewal process is fully managed. Certificate renewal will automatically occur before the certificate expires. Renewal errors can be tracked via ManagementStatus. */ lastRenewalTime: string; /** * Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt. */ status: string; } /** * A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. */ interface ManualScalingResponse { /** * Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function. */ instances: number; } /** * Extra network settings. Only applicable in the App Engine flexible environment. */ interface NetworkResponse { /** * List of ports, or port pairs, to forward from the virtual machine to the application container. Only applicable in the App Engine flexible environment. */ forwardedPorts: string[]; /** * The IP mode for instances. Only applicable in the App Engine flexible environment. */ instanceIpMode: string; /** * Tag to apply to the instance during creation. Only applicable in the App Engine flexible environment. */ instanceTag: string; /** * Google Compute Engine network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default. */ name: string; /** * Enable session affinity. Only applicable in the App Engine flexible environment. */ sessionAffinity: boolean; /** * Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network that the instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network that the instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network that the instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the App Engine flexible environment application. */ subnetworkName: string; } /** * Target scaling by network usage. Only applicable in the App Engine flexible environment. */ interface NetworkUtilizationResponse { /** * Target bytes received per second. */ targetReceivedBytesPerSecond: number; /** * Target packets received per second. */ targetReceivedPacketsPerSecond: number; /** * Target bytes sent per second. */ targetSentBytesPerSecond: number; /** * Target packets sent per second. */ targetSentPacketsPerSecond: number; } /** * Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. */ interface ReadinessCheckResponse { /** * A maximum time limit on application initialization, measured from moment the application successfully replies to a healthcheck until it is ready to serve traffic. */ appStartTimeout: string; /** * Interval between health checks. */ checkInterval: string; /** * Number of consecutive failed checks required before removing traffic. */ failureThreshold: number; /** * Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com" */ host: string; /** * The request path. */ path: string; /** * Number of consecutive successful checks required before receiving traffic. */ successThreshold: number; /** * Time before the check is considered failed. */ timeout: string; } /** * Target scaling by request utilization. Only applicable in the App Engine flexible environment. */ interface RequestUtilizationResponse { /** * Target number of concurrent requests. */ targetConcurrentRequests: number; /** * Target requests per second. */ targetRequestCountPerSecond: number; } /** * A DNS resource record. */ interface ResourceRecordResponse { /** * Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'. */ name: string; /** * Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1). */ rrdata: string; /** * Resource record type. Example: AAAA. */ type: string; } /** * Machine resources for a version. */ interface ResourcesResponse { /** * Number of CPU cores needed. */ cpu: number; /** * Disk size (GB) needed. */ diskGb: number; /** * The name of the encryption key that is stored in Google Cloud KMS. Only should be used by Cloud Composer to encrypt the vm disk */ kmsKeyReference: string; /** * Memory (GB) needed. */ memoryGb: number; /** * User specified volumes. */ volumes: outputs.appengine.v1beta.VolumeResponse[]; } /** * Executes a script to handle the request that matches the URL pattern. */ interface ScriptHandlerResponse { /** * Path to the script from the application root directory. */ scriptPath: string; } /** * SSL configuration for a DomainMapping resource. */ interface SslSettingsResponse { /** * ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support.By default, a managed certificate is automatically created for every domain mapping. To omit SSL support or to configure SSL manually, specify SslManagementType.MANUAL on a CREATE or UPDATE request. You must be authorized to administer the AuthorizedCertificate resource to manually map it to a DomainMapping resource. Example: 12345. */ certificateId: string; /** * ID of the managed AuthorizedCertificate resource currently being provisioned, if applicable. Until the new managed certificate has been successfully provisioned, the previous SSL state will be preserved. Once the provisioning process completes, the certificate_id field will reflect the new managed certificate and this field will be left empty. To remove SSL support while there is still a pending managed certificate, clear the certificate_id field with an UpdateDomainMappingRequest. */ pendingManagedCertificateId: string; /** * SSL management type for this domain. If AUTOMATIC, a managed certificate is automatically provisioned. If MANUAL, certificate_id must be manually specified in order to configure SSL for this domain. */ sslManagementType: string; } /** * Scheduler settings for standard environment. */ interface StandardSchedulerSettingsResponse { /** * Maximum number of instances to run for this version. Set to zero to disable max_instances configuration. */ maxInstances: number; /** * Minimum number of instances to run for this version. Set to zero to disable min_instances configuration. */ minInstances: number; /** * Target CPU utilization ratio to maintain when scaling. */ targetCpuUtilization: number; /** * Target throughput utilization ratio to maintain when scaling */ targetThroughputUtilization: number; } /** * Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. */ interface StaticFilesHandlerResponse { /** * Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas. */ applicationReadable: boolean; /** * Time a static file served by this handler should be cached by web proxies and browsers. */ expiration: string; /** * HTTP headers to use for all responses from these URLs. */ httpHeaders: { [key: string]: string; }; /** * MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension. */ mimeType: string; /** * Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern. */ path: string; /** * Whether this handler should match the request if the file referenced by the handler does not exist. */ requireMatchingFile: boolean; /** * Regular expression that matches the file paths for all files that should be referenced by this handler. */ uploadPathRegex: string; } /** * Rules to match an HTTP request and dispatch that request to a service. */ interface UrlDispatchRuleResponse { /** * Domain name to match against. The wildcard "*" is supported if specified before a period: "*.".Defaults to matching all domains: "*". */ domain: string; /** * Pathname within the host. Must start with a "/". A single "*" can be included at the end of the path.The sum of the lengths of the domain and path may not exceed 100 characters. */ path: string; /** * Resource ID of a service in this application that should serve the matched request. The service must already exist. Example: default. */ service: string; } /** * URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript. */ interface UrlMapResponse { /** * Uses API Endpoints to handle requests. */ apiEndpoint: outputs.appengine.v1beta.ApiEndpointHandlerResponse; /** * Action to take when users access resources that require authentication. Defaults to redirect. */ authFailAction: string; /** * Level of login required to access this resource. Not supported for Node.js in the App Engine standard environment. */ login: string; /** * 30x code to use when performing redirects for the secure field. Defaults to 302. */ redirectHttpResponseCode: string; /** * Executes a script to handle the requests that match this URL pattern. Only the auto value is supported for Node.js in the App Engine standard environment, for example "script": "auto". */ script: outputs.appengine.v1beta.ScriptHandlerResponse; /** * Security (HTTPS) enforcement for this URL. */ securityLevel: string; /** * Returns the contents of a file, such as an image, as the response. */ staticFiles: outputs.appengine.v1beta.StaticFilesHandlerResponse; /** * URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path. */ urlRegex: string; } /** * Volumes mounted within the app container. Only applicable in the App Engine flexible environment. */ interface VolumeResponse { /** * Unique name for the volume. */ name: string; /** * Volume size in gigabytes. */ sizeGb: number; /** * Underlying volume type, e.g. 'tmpfs'. */ volumeType: string; } /** * VPC access connector specification. */ interface VpcAccessConnectorResponse { /** * The egress setting for the connector, controlling what traffic is diverted through it. */ egressSetting: string; /** * Full Serverless VPC Access Connector name e.g. projects/my-project/locations/us-central1/connectors/c1. */ name: string; } /** * The zip file information for a zip deployment. */ interface ZipInfoResponse { /** * An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow. */ filesCount: number; /** * URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'. */ sourceUrl: string; } } } export declare namespace artifactregistry { namespace v1 { /** * Configuration for an Apt remote repository. */ interface AptRepositoryResponse { /** * One of the publicly available Apt repositories supported by Artifact Registry. */ publicRepository: outputs.artifactregistry.v1.GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryPublicRepositoryResponse; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.artifactregistry.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * DockerRepositoryConfig is docker related repository details. Provides additional configuration details for repositories of the docker format type. */ interface DockerRepositoryConfigResponse { /** * The repository which enabled this flag prevents all tags from being modified, moved or deleted. This does not prevent tags from being created. */ immutableTags: boolean; } /** * Configuration for a Docker remote repository. */ interface DockerRepositoryResponse { /** * One of the publicly available Docker repositories supported by Artifact Registry. */ publicRepository: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Publicly available Apt repositories constructed from a common repository base and a custom repository path. */ interface GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryPublicRepositoryResponse { /** * A common public repository base for Apt. */ repositoryBase: string; /** * A custom field to define a path to a specific repository from the base. */ repositoryPath: string; } /** * Publicly available Yum repositories constructed from a common repository base and a custom repository path. */ interface GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryPublicRepositoryResponse { /** * A common public repository base for Yum. */ repositoryBase: string; /** * A custom field to define a path to a specific repository from the base. */ repositoryPath: string; } /** * MavenRepositoryConfig is maven related repository details. Provides additional configuration details for repositories of the maven format type. */ interface MavenRepositoryConfigResponse { /** * The repository with this flag will allow publishing the same snapshot versions. */ allowSnapshotOverwrites: boolean; /** * Version policy defines the versions that the registry will accept. */ versionPolicy: string; } /** * Configuration for a Maven remote repository. */ interface MavenRepositoryResponse { /** * One of the publicly available Maven repositories supported by Artifact Registry. */ publicRepository: string; } /** * Configuration for a Npm remote repository. */ interface NpmRepositoryResponse { /** * One of the publicly available Npm repositories supported by Artifact Registry. */ publicRepository: string; } /** * Configuration for a Python remote repository. */ interface PythonRepositoryResponse { /** * One of the publicly available Python repositories supported by Artifact Registry. */ publicRepository: string; } /** * Remote repository configuration. */ interface RemoteRepositoryConfigResponse { /** * Specific settings for an Apt remote repository. */ aptRepository: outputs.artifactregistry.v1.AptRepositoryResponse; /** * The description of the remote source. */ description: string; /** * Specific settings for a Docker remote repository. */ dockerRepository: outputs.artifactregistry.v1.DockerRepositoryResponse; /** * Specific settings for a Maven remote repository. */ mavenRepository: outputs.artifactregistry.v1.MavenRepositoryResponse; /** * Specific settings for an Npm remote repository. */ npmRepository: outputs.artifactregistry.v1.NpmRepositoryResponse; /** * Specific settings for a Python remote repository. */ pythonRepository: outputs.artifactregistry.v1.PythonRepositoryResponse; /** * Optional. The credentials used to access the remote repository. */ upstreamCredentials: outputs.artifactregistry.v1.UpstreamCredentialsResponse; /** * Specific settings for a Yum remote repository. */ yumRepository: outputs.artifactregistry.v1.YumRepositoryResponse; } /** * The credentials to access the remote repository. */ interface UpstreamCredentialsResponse { /** * Use username and password to access the remote repository. */ usernamePasswordCredentials: outputs.artifactregistry.v1.UsernamePasswordCredentialsResponse; } /** * Artifact policy configuration for the repository contents. */ interface UpstreamPolicyResponse { /** * Entries with a greater priority value take precedence in the pull order. */ priority: number; /** * A reference to the repository resource, for example: `projects/p1/locations/us-central1/repositories/repo1`. */ repository: string; } /** * Username and password credentials. */ interface UsernamePasswordCredentialsResponse { /** * The Secret Manager key version that holds the password to access the remote repository. Must be in the format of `projects/{project}/secrets/{secret}/versions/{version}`. */ passwordSecretVersion: string; /** * The username to access the remote repository. */ username: string; } /** * Virtual repository configuration. */ interface VirtualRepositoryConfigResponse { /** * Policies that configure the upstream artifacts distributed by the Virtual Repository. Upstream policies cannot be set on a standard repository. */ upstreamPolicies: outputs.artifactregistry.v1.UpstreamPolicyResponse[]; } /** * Configuration for a Yum remote repository. */ interface YumRepositoryResponse { /** * One of the publicly available Yum repositories supported by Artifact Registry. */ publicRepository: outputs.artifactregistry.v1.GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryPublicRepositoryResponse; } } namespace v1beta1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.artifactregistry.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } namespace v1beta2 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.artifactregistry.v1beta2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * MavenRepositoryConfig is maven related repository details. Provides additional configuration details for repositories of the maven format type. */ interface MavenRepositoryConfigResponse { /** * The repository with this flag will allow publishing the same snapshot versions. */ allowSnapshotOverwrites: boolean; /** * Version policy defines the versions that the registry will accept. */ versionPolicy: string; } } } export declare namespace assuredworkloads { namespace v1 { /** * Represents the Compliance Status of this workload */ interface GoogleCloudAssuredworkloadsV1WorkloadComplianceStatusResponse { /** * Number of current resource violations which are not acknowledged. */ acknowledgedResourceViolationCount: number; /** * Number of current orgPolicy violations which are acknowledged. */ acknowledgedViolationCount: number; /** * Number of current resource violations which are acknowledged. */ activeResourceViolationCount: number; /** * Number of current orgPolicy violations which are not acknowledged. */ activeViolationCount: number; } /** * External key management systems(EKM) Provisioning response */ interface GoogleCloudAssuredworkloadsV1WorkloadEkmProvisioningResponseResponse { /** * Indicates Ekm provisioning error if any. */ ekmProvisioningErrorDomain: string; /** * Detailed error message if Ekm provisioning fails */ ekmProvisioningErrorMapping: string; /** * Indicates Ekm enrollment Provisioning of a given workload. */ ekmProvisioningState: string; } /** * Settings specific to the Key Management Service. */ interface GoogleCloudAssuredworkloadsV1WorkloadKMSSettingsResponse { /** * Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary. */ nextRotationTime: string; /** * Input only. Immutable. [next_rotation_time] will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours. */ rotationPeriod: string; } /** * Permissions granted to the AW Partner SA account for the customer workload */ interface GoogleCloudAssuredworkloadsV1WorkloadPartnerPermissionsResponse { /** * Optional. Allow partner to view violation alerts. */ assuredWorkloadsMonitoring: boolean; /** * Allow the partner to view inspectability logs and monitoring violations. */ dataLogsViewer: boolean; /** * Optional. Allow partner to view access approval logs. */ serviceAccessApprover: boolean; } /** * Represent the resources that are children of this Workload. */ interface GoogleCloudAssuredworkloadsV1WorkloadResourceInfoResponse { /** * Resource identifier. For a project this represents project_number. */ resourceId: string; /** * Indicates the type of resource. */ resourceType: string; } /** * Represent the custom settings for the resources to be created. */ interface GoogleCloudAssuredworkloadsV1WorkloadResourceSettingsResponse { /** * User-assigned resource display name. If not empty it will be used to create a resource with the specified name. */ displayName: string; /** * Resource identifier. For a project this represents project_id. If the project is already taken, the workload creation will fail. For KeyRing, this represents the keyring_id. For a folder, don't set this value as folder_id is assigned by Google. */ resourceId: string; /** * Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT) */ resourceType: string; } /** * Signed Access Approvals (SAA) enrollment response. */ interface GoogleCloudAssuredworkloadsV1WorkloadSaaEnrollmentResponseResponse { /** * Indicates SAA enrollment setup error if any. */ setupErrors: string[]; /** * Indicates SAA enrollment status of a given workload. */ setupStatus: string; } } namespace v1beta1 { /** * Settings specific to resources needed for CJIS. */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadCJISSettingsResponse { /** * Input only. Immutable. Settings used to create a CMEK crypto key. */ kmsSettings: outputs.assuredworkloads.v1beta1.GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettingsResponse; } /** * Represents the Compliance Status of this workload */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadComplianceStatusResponse { /** * Number of current resource violations which are not acknowledged. */ acknowledgedResourceViolationCount: number; /** * Number of current orgPolicy violations which are acknowledged. */ acknowledgedViolationCount: number; /** * Number of current resource violations which are acknowledged. */ activeResourceViolationCount: number; /** * Number of current orgPolicy violations which are not acknowledged. */ activeViolationCount: number; } /** * External key management systems(EKM) Provisioning response */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadEkmProvisioningResponseResponse { /** * Indicates Ekm provisioning error if any. */ ekmProvisioningErrorDomain: string; /** * Detailed error message if Ekm provisioning fails */ ekmProvisioningErrorMapping: string; /** * Indicates Ekm enrollment Provisioning of a given workload. */ ekmProvisioningState: string; } /** * Settings specific to resources needed for FedRAMP High. */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampHighSettingsResponse { /** * Input only. Immutable. Settings used to create a CMEK crypto key. */ kmsSettings: outputs.assuredworkloads.v1beta1.GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettingsResponse; } /** * Settings specific to resources needed for FedRAMP Moderate. */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampModerateSettingsResponse { /** * Input only. Immutable. Settings used to create a CMEK crypto key. */ kmsSettings: outputs.assuredworkloads.v1beta1.GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettingsResponse; } /** * Settings specific to resources needed for IL4. */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadIL4SettingsResponse { /** * Input only. Immutable. Settings used to create a CMEK crypto key. */ kmsSettings: outputs.assuredworkloads.v1beta1.GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettingsResponse; } /** * Settings specific to the Key Management Service. */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettingsResponse { /** * Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary. */ nextRotationTime: string; /** * Input only. Immutable. [next_rotation_time] will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours. */ rotationPeriod: string; } /** * Permissions granted to the AW Partner SA account for the customer workload */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadPartnerPermissionsResponse { /** * Optional. Allow partner to view violation alerts. */ assuredWorkloadsMonitoring: boolean; /** * Allow the partner to view inspectability logs and monitoring violations. */ dataLogsViewer: boolean; /** * Optional. Allow partner to view access approval logs. */ serviceAccessApprover: boolean; } /** * Represent the resources that are children of this Workload. */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadResourceInfoResponse { /** * Resource identifier. For a project this represents project_number. */ resourceId: string; /** * Indicates the type of resource. */ resourceType: string; } /** * Represent the custom settings for the resources to be created. */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettingsResponse { /** * User-assigned resource display name. If not empty it will be used to create a resource with the specified name. */ displayName: string; /** * Resource identifier. For a project this represents project_id. If the project is already taken, the workload creation will fail. For KeyRing, this represents the keyring_id. For a folder, don't set this value as folder_id is assigned by Google. */ resourceId: string; /** * Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT) */ resourceType: string; } /** * Signed Access Approvals (SAA) enrollment response. */ interface GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponseResponse { /** * Indicates SAA enrollment setup error if any. */ setupErrors: string[]; /** * Indicates SAA enrollment status of a given workload. */ setupStatus: string; } } } export declare namespace backupdr { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.backupdr.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.backupdr.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * ManagementURI for the Management Server resource. */ interface ManagementURIResponse { /** * The ManagementServer AGM/RD API URL. */ api: string; /** * The ManagementServer AGM/RD WebUI URL. */ webUi: string; } /** * Network configuration for ManagementServer instance. */ interface NetworkConfigResponse { /** * Optional. The resource name of the Google Compute Engine VPC network to which the ManagementServer instance is connected. */ network: string; /** * Optional. The network connect mode of the ManagementServer instance. For this version, only PRIVATE_SERVICE_ACCESS is supported. */ peeringMode: string; } /** * ManagementURI depending on the Workforce Identity i.e. either 1p or 3p. */ interface WorkforceIdentityBasedManagementURIResponse { /** * First party Management URI for Google Identities. */ firstPartyManagementUri: string; /** * Third party Management URI for External Identity Providers. */ thirdPartyManagementUri: string; } /** * OAuth Client ID depending on the Workforce Identity i.e. either 1p or 3p, */ interface WorkforceIdentityBasedOAuth2ClientIDResponse { /** * First party OAuth Client ID for Google Identities. */ firstPartyOauth2ClientId: string; /** * Third party OAuth Client ID for External Identity Providers. */ thirdPartyOauth2ClientId: string; } } } export declare namespace baremetalsolution { namespace v2 { /** * Represents an 'access point' for the share. */ interface AllowedClientResponse { /** * Allow dev flag. Which controls whether to allow creation of devices. */ allowDev: boolean; /** * Allow the setuid flag. */ allowSuid: boolean; /** * The subnet of IP addresses permitted to access the share. */ allowedClientsCidr: string; /** * Mount permissions. */ mountPermissions: string; /** * The network the access point sits on. */ network: string; /** * The path to access NFS, in format shareIP:/InstanceID InstanceID is the generated ID instead of customer provided name. example like "10.0.0.0:/g123456789-nfs001" */ nfsPath: string; /** * Disable root squashing, which is a feature of NFS. Root squash is a special mapping of the remote superuser (root) identity when using identity authentication. */ noRootSquash: boolean; /** * The IP address of the share on this network. Assigned automatically during provisioning based on the network's services_cidr. */ shareIp: string; } /** * Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface. */ interface GoogleCloudBaremetalsolutionV2LogicalInterfaceResponse { /** * The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated. * * @deprecated The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated. */ interfaceIndex: number; /** * List of logical network interfaces within a logical interface. */ logicalNetworkInterfaces: outputs.baremetalsolution.v2.LogicalNetworkInterfaceResponse[]; /** * Interface name. This is of syntax or and forms part of the network template name. */ name: string; } /** * Configuration parameters for a new instance. */ interface InstanceConfigResponse { /** * If true networks can be from different projects of the same vendor account. */ accountNetworksEnabled: boolean; /** * Client network address. Filled if InstanceConfig.multivlan_config is false. */ clientNetwork: outputs.baremetalsolution.v2.NetworkAddressResponse; /** * Whether the instance should be provisioned with Hyperthreading enabled. */ hyperthreading: boolean; /** * Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations) */ instanceType: string; /** * List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true. */ logicalInterfaces: outputs.baremetalsolution.v2.GoogleCloudBaremetalsolutionV2LogicalInterfaceResponse[]; /** * The name of the instance config. */ name: string; /** * The type of network configuration on the instance. */ networkConfig: string; /** * Server network template name. Filled if InstanceConfig.multivlan_config is true. */ networkTemplate: string; /** * OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations) */ osImage: string; /** * Private network address, if any. Filled if InstanceConfig.multivlan_config is false. */ privateNetwork: outputs.baremetalsolution.v2.NetworkAddressResponse; /** * Optional. List of names of ssh keys used to provision the instance. */ sshKeyNames: string[]; /** * User note field, it can be used by customers to add additional information for the BMS Ops team . */ userNote: string; } /** * A GCP vlan attachment. */ interface IntakeVlanAttachmentResponse { /** * Attachment pairing key. */ pairingKey: string; } /** * Each logical network interface is effectively a network and IP pair. */ interface LogicalNetworkInterfaceResponse { /** * Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance. */ defaultGateway: boolean; /** * IP address in the network */ ipAddress: string; /** * Name of the network */ network: string; /** * Type of network. */ networkType: string; } /** * A LUN(Logical Unit Number) range. */ interface LunRangeResponse { /** * Number of LUNs to create. */ quantity: number; /** * The requested size of each LUN, in GB. */ sizeGb: number; } /** * A network. */ interface NetworkAddressResponse { /** * IPv4 address to be assigned to the server. */ address: string; /** * Name of the existing network to use. */ existingNetworkId: string; /** * Id of the network to use, within the same ProvisioningConfig request. */ networkId: string; } /** * Configuration parameters for a new network. */ interface NetworkConfigResponse { /** * Interconnect bandwidth. Set only when type is CLIENT. */ bandwidth: string; /** * CIDR range of the network. */ cidr: string; /** * The GCP service of the network. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning. */ gcpService: string; /** * The JumboFramesEnabled option for customer to set. */ jumboFramesEnabled: boolean; /** * The name of the network config. */ name: string; /** * Service CIDR, if any. */ serviceCidr: string; /** * The type of this network, either Client or Private. */ type: string; /** * User note field, it can be used by customers to add additional information for the BMS Ops team . */ userNote: string; /** * List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan). */ vlanAttachments: outputs.baremetalsolution.v2.IntakeVlanAttachmentResponse[]; /** * Whether the VLAN attachment pair is located in the same project. */ vlanSameProject: boolean; } /** * A NFS export entry. */ interface NfsExportResponse { /** * Allow dev flag in NfsShare AllowedClientsRequest. */ allowDev: boolean; /** * Allow the setuid flag. */ allowSuid: boolean; /** * A CIDR range. */ cidr: string; /** * Either a single machine, identified by an ID, or a comma-separated list of machine IDs. */ machineId: string; /** * Network to use to publish the export. */ networkId: string; /** * Disable root squashing, which is a feature of NFS. Root squash is a special mapping of the remote superuser (root) identity when using identity authentication. */ noRootSquash: boolean; /** * Export permissions. */ permissions: string; } /** * Configuration parameters for a new volume. */ interface VolumeConfigResponse { /** * The GCP service of the storage volume. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning. */ gcpService: string; /** * LUN ranges to be configured. Set only when protocol is PROTOCOL_FC. */ lunRanges: outputs.baremetalsolution.v2.LunRangeResponse[]; /** * Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC. */ machineIds: string[]; /** * The name of the volume config. */ name: string; /** * NFS exports. Set only when protocol is PROTOCOL_NFS. */ nfsExports: outputs.baremetalsolution.v2.NfsExportResponse[]; /** * Performance tier of the Volume. Default is SHARED. */ performanceTier: string; /** * Volume protocol. */ protocol: string; /** * The requested size of this volume, in GB. */ sizeGb: number; /** * Whether snapshots should be enabled. */ snapshotsEnabled: boolean; /** * The type of this Volume. */ type: string; /** * User note field, it can be used by customers to add additional information for the BMS Ops team . */ userNote: string; } } } export declare namespace batch { namespace v1 { /** * Accelerator describes Compute Engine accelerators to be attached to the VM. */ interface AcceleratorResponse { /** * The number of accelerators of this type. */ count: string; /** * Optional. The NVIDIA GPU driver version that should be installed for this type. You can define the specific driver version such as "470.103.01", following the driver version requirements in https://cloud.google.com/compute/docs/gpus/install-drivers-gpu#minimum-driver. Batch will install the specific accelerator driver if qualified. */ driverVersion: string; /** * Deprecated: please use instances[0].install_gpu_drivers instead. * * @deprecated Deprecated: please use instances[0].install_gpu_drivers instead. */ installGpuDrivers: boolean; /** * The accelerator type. For example, "nvidia-tesla-t4". See `gcloud compute accelerator-types list`. */ type: string; } /** * Conditions for actions to deal with task failures. */ interface ActionConditionResponse { /** * Exit codes of a task execution. If there are more than 1 exit codes, when task executes with any of the exit code in the list, the condition is met and the action will be executed. */ exitCodes: number[]; } /** * A Job's resource allocation policy describes when, where, and how compute resources should be allocated for the Job. */ interface AllocationPolicyResponse { /** * Describe instances that can be created by this AllocationPolicy. Only instances[0] is supported now. */ instances: outputs.batch.v1.InstancePolicyOrTemplateResponse[]; /** * Labels applied to all VM instances and other resources created by AllocationPolicy. Labels could be user provided or system generated. You can assign up to 64 labels. [Google Compute Engine label restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) apply. Label names that start with "goog-" or "google-" are reserved. */ labels: { [key: string]: string; }; /** * Location where compute resources should be allocated for the Job. */ location: outputs.batch.v1.LocationPolicyResponse; /** * The network policy. If you define an instance template in the InstancePolicyOrTemplate field, Batch will use the network settings in the instance template instead of this field. */ network: outputs.batch.v1.NetworkPolicyResponse; /** * The placement policy. */ placement: outputs.batch.v1.PlacementPolicyResponse; /** * Service account that VMs will run as. */ serviceAccount: outputs.batch.v1.ServiceAccountResponse; } /** * A new or an existing persistent disk (PD) or a local ssd attached to a VM instance. */ interface AttachedDiskResponse { /** * Device name that the guest operating system will see. It is used by Runnable.volumes field to mount disks. So please specify the device_name if you want Batch to help mount the disk, and it should match the device_name field in volumes. */ deviceName: string; /** * Name of an existing PD. */ existingDisk: string; newDisk: outputs.batch.v1.DiskResponse; } /** * Barrier runnable blocks until all tasks in a taskgroup reach it. */ interface BarrierResponse { /** * Barriers are identified by their index in runnable list. Names are not required, but if present should be an identifier. */ name: string; } /** * CloudLoggingOption contains additional settings for cloud logging generated by Batch job. */ interface CloudLoggingOptionResponse { } /** * Compute resource requirements. ComputeResource defines the amount of resources required for each task. Make sure your tasks have enough resources to successfully run. If you also define the types of resources for a job to use with the [InstancePolicyOrTemplate](https://cloud.google.com/batch/docs/reference/rest/v1/projects.locations.jobs#instancepolicyortemplate) field, make sure both fields are compatible with each other. */ interface ComputeResourceResponse { /** * Extra boot disk size in MiB for each task. */ bootDiskMib: string; /** * The milliCPU count. `cpuMilli` defines the amount of CPU resources per task in milliCPU units. For example, `1000` corresponds to 1 vCPU per task. If undefined, the default value is `2000`. If you also define the VM's machine type using the `machineType` in [InstancePolicy](https://cloud.google.com/batch/docs/reference/rest/v1/projects.locations.jobs#instancepolicy) field or inside the `instanceTemplate` in the [InstancePolicyOrTemplate](https://cloud.google.com/batch/docs/reference/rest/v1/projects.locations.jobs#instancepolicyortemplate) field, make sure the CPU resources for both fields are compatible with each other and with how many tasks you want to allow to run on the same VM at the same time. For example, if you specify the `n2-standard-2` machine type, which has 2 vCPUs each, you are recommended to set `cpuMilli` no more than `2000`, or you are recommended to run two tasks on the same VM if you set `cpuMilli` to `1000` or less. */ cpuMilli: string; /** * Memory in MiB. `memoryMib` defines the amount of memory per task in MiB units. If undefined, the default value is `2000`. If you also define the VM's machine type using the `machineType` in [InstancePolicy](https://cloud.google.com/batch/docs/reference/rest/v1/projects.locations.jobs#instancepolicy) field or inside the `instanceTemplate` in the [InstancePolicyOrTemplate](https://cloud.google.com/batch/docs/reference/rest/v1/projects.locations.jobs#instancepolicyortemplate) field, make sure the memory resources for both fields are compatible with each other and with how many tasks you want to allow to run on the same VM at the same time. For example, if you specify the `n2-standard-2` machine type, which has 8 GiB each, you are recommended to set `memoryMib` to no more than `8192`, or you are recommended to run two tasks on the same VM if you set `memoryMib` to `4096` or less. */ memoryMib: string; } /** * Container runnable. */ interface ContainerResponse { /** * If set to true, external network access to and from container will be blocked, containers that are with block_external_network as true can still communicate with each other, network cannot be specified in the `container.options` field. */ blockExternalNetwork: boolean; /** * Overrides the `CMD` specified in the container. If there is an ENTRYPOINT (either in the container image or with the entrypoint field below) then commands are appended as arguments to the ENTRYPOINT. */ commands: string[]; /** * Overrides the `ENTRYPOINT` specified in the container. */ entrypoint: string; /** * The URI to pull the container image from. */ imageUri: string; /** * Arbitrary additional options to include in the "docker run" command when running this container, e.g. "--network host". */ options: string; /** * Optional password for logging in to a docker registry. If password matches `projects/*/secrets/*/versions/*` then Batch will read the password from the Secret Manager; */ password: string; /** * Optional username for logging in to a docker registry. If username matches `projects/*/secrets/*/versions/*` then Batch will read the username from the Secret Manager. */ username: string; /** * Volumes to mount (bind mount) from the host machine files or directories into the container, formatted to match docker run's --volume option, e.g. /foo:/bar, or /foo:/bar:ro If the `TaskSpec.Volumes` field is specified but this field is not, Batch will mount each volume from the host machine to the container with the same mount path by default. In this case, the default mount option for containers will be read-only (ro) for existing persistent disks and read-write (rw) for other volume types, regardless of the original mount options specified in `TaskSpec.Volumes`. If you need different mount settings, you can explicitly configure them in this field. */ volumes: string[]; } /** * A new persistent disk or a local ssd. A VM can only have one local SSD setting but multiple local SSD partitions. See https://cloud.google.com/compute/docs/disks#pdspecs and https://cloud.google.com/compute/docs/disks#localssds. */ interface DiskResponse { /** * Local SSDs are available through both "SCSI" and "NVMe" interfaces. If not indicated, "NVMe" will be the default one for local ssds. This field is ignored for persistent disks as the interface is chosen automatically. See https://cloud.google.com/compute/docs/disks/persistent-disks#choose_an_interface. */ diskInterface: string; /** * URL for a VM image to use as the data source for this disk. For example, the following are all valid URLs: * Specify the image by its family name: projects/{project}/global/images/family/{image_family} * Specify the image version: projects/{project}/global/images/{image_version} You can also use Batch customized image in short names. The following image values are supported for a boot disk: * `batch-debian`: use Batch Debian images. * `batch-centos`: use Batch CentOS images. * `batch-cos`: use Batch Container-Optimized images. * `batch-hpc-centos`: use Batch HPC CentOS images. * `batch-hpc-rocky`: use Batch HPC Rocky Linux images. */ image: string; /** * Disk size in GB. **Non-Boot Disk**: If the `type` specifies a persistent disk, this field is ignored if `data_source` is set as `image` or `snapshot`. If the `type` specifies a local SSD, this field should be a multiple of 375 GB, otherwise, the final size will be the next greater multiple of 375 GB. **Boot Disk**: Batch will calculate the boot disk size based on source image and task requirements if you do not speicify the size. If both this field and the `boot_disk_mib` field in task spec's `compute_resource` are defined, Batch will only honor this field. Also, this field should be no smaller than the source disk's size when the `data_source` is set as `snapshot` or `image`. For example, if you set an image as the `data_source` field and the image's default disk size 30 GB, you can only use this field to make the disk larger or equal to 30 GB. */ sizeGb: string; /** * Name of a snapshot used as the data source. Snapshot is not supported as boot disk now. */ snapshot: string; /** * Disk type as shown in `gcloud compute disk-types list`. For example, local SSD uses type "local-ssd". Persistent disks and boot disks use "pd-balanced", "pd-extreme", "pd-ssd" or "pd-standard". */ type: string; } /** * An Environment describes a collection of environment variables to set when executing Tasks. */ interface EnvironmentResponse { /** * An encrypted JSON dictionary where the key/value pairs correspond to environment variable names and their values. */ encryptedVariables: outputs.batch.v1.KMSEnvMapResponse; /** * A map of environment variable names to Secret Manager secret names. The VM will access the named secrets to set the value of each environment variable. */ secretVariables: { [key: string]: string; }; /** * A map of environment variable names to values. */ variables: { [key: string]: string; }; } /** * Represents a Google Cloud Storage volume. */ interface GCSResponse { /** * Remote path, either a bucket name or a subdirectory of a bucket, e.g.: bucket_name, bucket_name/subdirectory/ */ remotePath: string; } /** * InstancePolicyOrTemplate lets you define the type of resources to use for this job either with an InstancePolicy or an instance template. If undefined, Batch picks the type of VM to use and doesn't include optional VM resources such as GPUs and extra disks. */ interface InstancePolicyOrTemplateResponse { /** * Set this field true if users want Batch to help fetch drivers from a third party location and install them for GPUs specified in policy.accelerators or instance_template on their behalf. Default is false. For Container-Optimized Image cases, Batch will install the accelerator driver following milestones of https://cloud.google.com/container-optimized-os/docs/release-notes. For non Container-Optimized Image cases, following https://github.com/GoogleCloudPlatform/compute-gpu-installation/blob/main/linux/install_gpu_driver.py. */ installGpuDrivers: boolean; /** * Name of an instance template used to create VMs. Named the field as 'instance_template' instead of 'template' to avoid c++ keyword conflict. */ instanceTemplate: string; /** * InstancePolicy. */ policy: outputs.batch.v1.InstancePolicyResponse; } /** * InstancePolicy describes an instance type and resources attached to each VM created by this InstancePolicy. */ interface InstancePolicyResponse { /** * The accelerators attached to each VM instance. */ accelerators: outputs.batch.v1.AcceleratorResponse[]; /** * Boot disk to be created and attached to each VM by this InstancePolicy. Boot disk will be deleted when the VM is deleted. Batch API now only supports booting from image. */ bootDisk: outputs.batch.v1.DiskResponse; /** * Non-boot disks to be attached for each VM created by this InstancePolicy. New disks will be deleted when the VM is deleted. A non-boot disk is a disk that can be of a device with a file system or a raw storage drive that is not ready for data storage and accessing. */ disks: outputs.batch.v1.AttachedDiskResponse[]; /** * The Compute Engine machine type. */ machineType: string; /** * The minimum CPU platform. See https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform. */ minCpuPlatform: string; /** * The provisioning model. */ provisioningModel: string; /** * Optional. If specified, VMs will consume only the specified reservation. If not specified (default), VMs will consume any applicable reservation. */ reservation: string; } /** * Notification configurations. */ interface JobNotificationResponse { /** * The attribute requirements of messages to be sent to this Pub/Sub topic. Without this field, no message will be sent. */ message: outputs.batch.v1.MessageResponse; /** * The Pub/Sub topic where notifications like the job state changes will be published. The topic must exist in the same project as the job and billings will be charged to this project. If not specified, no Pub/Sub messages will be sent. Topic format: `projects/{project}/topics/{topic}`. */ pubsubTopic: string; } /** * Job status. */ interface JobStatusResponse { /** * The duration of time that the Job spent in status RUNNING. */ runDuration: string; /** * Job state */ state: string; /** * Job status events */ statusEvents: outputs.batch.v1.StatusEventResponse[]; /** * Aggregated task status for each TaskGroup in the Job. The map key is TaskGroup ID. */ taskGroups: { [key: string]: string; }; } interface KMSEnvMapResponse { /** * The value of the cipherText response from the `encrypt` method. */ cipherText: string; /** * The name of the KMS key that will be used to decrypt the cipher text. */ keyName: string; } /** * LifecyclePolicy describes how to deal with task failures based on different conditions. */ interface LifecyclePolicyResponse { /** * Action to execute when ActionCondition is true. When RETRY_TASK is specified, we will retry failed tasks if we notice any exit code match and fail tasks if no match is found. Likewise, when FAIL_TASK is specified, we will fail tasks if we notice any exit code match and retry tasks if no match is found. */ action: string; /** * Conditions that decide why a task failure is dealt with a specific action. */ actionCondition: outputs.batch.v1.ActionConditionResponse; } interface LocationPolicyResponse { /** * A list of allowed location names represented by internal URLs. Each location can be a region or a zone. Only one region or multiple zones in one region is supported now. For example, ["regions/us-central1"] allow VMs in any zones in region us-central1. ["zones/us-central1-a", "zones/us-central1-c"] only allow VMs in zones us-central1-a and us-central1-c. All locations end up in different regions would cause errors. For example, ["regions/us-central1", "zones/us-central1-a", "zones/us-central1-b", "zones/us-west1-a"] contains 2 regions "us-central1" and "us-west1". An error is expected in this case. */ allowedLocations: string[]; } /** * LogsPolicy describes how outputs from a Job's Tasks (stdout/stderr) will be preserved. */ interface LogsPolicyResponse { /** * Optional. Additional settings for Cloud Logging. It will only take effect when the destination of LogsPolicy is set to CLOUD_LOGGING. */ cloudLoggingOption: outputs.batch.v1.CloudLoggingOptionResponse; /** * Where logs should be saved. */ destination: string; /** * The path to which logs are saved when the destination = PATH. This can be a local file path on the VM, or under the mount point of a Persistent Disk or Filestore, or a Cloud Storage path. */ logsPath: string; } /** * Message details. Describe the conditions under which messages will be sent. If no attribute is defined, no message will be sent by default. One message should specify either the job or the task level attributes, but not both. For example, job level: JOB_STATE_CHANGED and/or a specified new_job_state; task level: TASK_STATE_CHANGED and/or a specified new_task_state. */ interface MessageResponse { /** * The new job state. */ newJobState: string; /** * The new task state. */ newTaskState: string; /** * The message type. */ type: string; } /** * Represents an NFS volume. */ interface NFSResponse { /** * Remote source path exported from the NFS, e.g., "/share". */ remotePath: string; /** * The IP address of the NFS. */ server: string; } /** * A network interface. */ interface NetworkInterfaceResponse { /** * The URL of an existing network resource. You can specify the network as a full or partial URL. For example, the following are all valid URLs: * https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} * projects/{project}/global/networks/{network} * global/networks/{network} */ network: string; /** * Default is false (with an external IP address). Required if no external public IP address is attached to the VM. If no external public IP address, additional configuration is required to allow the VM to access Google Services. See https://cloud.google.com/vpc/docs/configure-private-google-access and https://cloud.google.com/nat/docs/gce-example#create-nat for more information. */ noExternalIpAddress: boolean; /** * The URL of an existing subnetwork resource in the network. You can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: * https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork} * projects/{project}/regions/{region}/subnetworks/{subnetwork} * regions/{region}/subnetworks/{subnetwork} */ subnetwork: string; } /** * NetworkPolicy describes VM instance network configurations. */ interface NetworkPolicyResponse { /** * Network configurations. */ networkInterfaces: outputs.batch.v1.NetworkInterfaceResponse[]; } /** * PlacementPolicy describes a group placement policy for the VMs controlled by this AllocationPolicy. */ interface PlacementPolicyResponse { /** * UNSPECIFIED vs. COLLOCATED (default UNSPECIFIED). Use COLLOCATED when you want VMs to be located close to each other for low network latency between the VMs. No placement policy will be generated when collocation is UNSPECIFIED. */ collocation: string; /** * When specified, causes the job to fail if more than max_distance logical switches are required between VMs. Batch uses the most compact possible placement of VMs even when max_distance is not specified. An explicit max_distance makes that level of compactness a strict requirement. Not yet implemented */ maxDistance: string; } /** * Runnable describes instructions for executing a specific script or container as part of a Task. */ interface RunnableResponse { /** * By default, after a Runnable fails, no further Runnable are executed. This flag indicates that this Runnable must be run even if the Task has already failed. This is useful for Runnables that copy output files off of the VM or for debugging. The always_run flag does not override the Task's overall max_run_duration. If the max_run_duration has expired then no further Runnables will execute, not even always_run Runnables. */ alwaysRun: boolean; /** * This flag allows a Runnable to continue running in the background while the Task executes subsequent Runnables. This is useful to provide services to other Runnables (or to provide debugging support tools like SSH servers). */ background: boolean; /** * Barrier runnable. */ barrier: outputs.batch.v1.BarrierResponse; /** * Container runnable. */ container: outputs.batch.v1.ContainerResponse; /** * Optional. DisplayName is an optional field that can be provided by the caller. If provided, it will be used in logs and other outputs to identify the script, making it easier for users to understand the logs. If not provided the index of the runnable will be used for outputs. */ displayName: string; /** * Environment variables for this Runnable (overrides variables set for the whole Task or TaskGroup). */ environment: outputs.batch.v1.EnvironmentResponse; /** * Normally, a non-zero exit status causes the Task to fail. This flag allows execution of other Runnables to continue instead. */ ignoreExitStatus: boolean; /** * Labels for this Runnable. */ labels: { [key: string]: string; }; /** * Script runnable. */ script: outputs.batch.v1.ScriptResponse; /** * Timeout for this Runnable. */ timeout: string; } /** * Script runnable. */ interface ScriptResponse { /** * Script file path on the host VM. To specify an interpreter, please add a `#!`(also known as [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix))) as the first line of the file.(For example, to execute the script using bash, `#!/bin/bash` should be the first line of the file. To execute the script using`Python3`, `#!/usr/bin/env python3` should be the first line of the file.) Otherwise, the file will by default be excuted by `/bin/sh`. */ path: string; /** * Shell script text. To specify an interpreter, please add a `#!\n` at the beginning of the text.(For example, to execute the script using bash, `#!/bin/bash\n` should be added. To execute the script using`Python3`, `#!/usr/bin/env python3\n` should be added.) Otherwise, the script will by default be excuted by `/bin/sh`. */ text: string; } /** * Carries information about a Google Cloud service account. */ interface ServiceAccountResponse { /** * Email address of the service account. If not specified, the default Compute Engine service account for the project will be used. If instance template is being used, the service account has to be specified in the instance template and it has to match the email field here. */ email: string; /** * List of scopes to be enabled for this service account on the VM, in addition to the cloud-platform API scope that will be added by default. */ scopes: string[]; } /** * Status event */ interface StatusEventResponse { /** * Description of the event. */ description: string; /** * The time this event occurred. */ eventTime: string; /** * Task Execution */ taskExecution: outputs.batch.v1.TaskExecutionResponse; /** * Task State */ taskState: string; /** * Type of the event. */ type: string; } /** * This Task Execution field includes detail information for task execution procedures, based on StatusEvent types. */ interface TaskExecutionResponse { /** * When task is completed as the status of FAILED or SUCCEEDED, exit code is for one task execution result, default is 0 as success. */ exitCode: number; } /** * A TaskGroup defines one or more Tasks that all share the same TaskSpec. */ interface TaskGroupResponse { /** * TaskGroup name. The system generates this field based on parent Job name. For example: "projects/123456/locations/us-west1/jobs/job01/taskGroups/group01". */ name: string; /** * Max number of tasks that can run in parallel. Default to min(task_count, parallel tasks per job limit). See: [Job Limits](https://cloud.google.com/batch/quotas#job_limits). Field parallelism must be 1 if the scheduling_policy is IN_ORDER. */ parallelism: string; /** * When true, Batch will configure SSH to allow passwordless login between VMs running the Batch tasks in the same TaskGroup. */ permissiveSsh: boolean; /** * When true, Batch will populate a file with a list of all VMs assigned to the TaskGroup and set the BATCH_HOSTS_FILE environment variable to the path of that file. Defaults to false. */ requireHostsFile: boolean; /** * Scheduling policy for Tasks in the TaskGroup. The default value is AS_SOON_AS_POSSIBLE. */ schedulingPolicy: string; /** * Number of Tasks in the TaskGroup. Default is 1. */ taskCount: string; /** * Max number of tasks that can be run on a VM at the same time. If not specified, the system will decide a value based on available compute resources on a VM and task requirements. */ taskCountPerNode: string; /** * An array of environment variable mappings, which are passed to Tasks with matching indices. If task_environments is used then task_count should not be specified in the request (and will be ignored). Task count will be the length of task_environments. Tasks get a BATCH_TASK_INDEX and BATCH_TASK_COUNT environment variable, in addition to any environment variables set in task_environments, specifying the number of Tasks in the Task's parent TaskGroup, and the specific Task's index in the TaskGroup (0 through BATCH_TASK_COUNT - 1). */ taskEnvironments: outputs.batch.v1.EnvironmentResponse[]; /** * Tasks in the group share the same task spec. */ taskSpec: outputs.batch.v1.TaskSpecResponse; } /** * Spec of a task */ interface TaskSpecResponse { /** * ComputeResource requirements. */ computeResource: outputs.batch.v1.ComputeResourceResponse; /** * Environment variables to set before running the Task. */ environment: outputs.batch.v1.EnvironmentResponse; /** * Deprecated: please use environment(non-plural) instead. * * @deprecated Deprecated: please use environment(non-plural) instead. */ environments: { [key: string]: string; }; /** * Lifecycle management schema when any task in a task group is failed. Currently we only support one lifecycle policy. When the lifecycle policy condition is met, the action in the policy will execute. If task execution result does not meet with the defined lifecycle policy, we consider it as the default policy. Default policy means if the exit code is 0, exit task. If task ends with non-zero exit code, retry the task with max_retry_count. */ lifecyclePolicies: outputs.batch.v1.LifecyclePolicyResponse[]; /** * Maximum number of retries on failures. The default, 0, which means never retry. The valid value range is [0, 10]. */ maxRetryCount: number; /** * Maximum duration the task should run. The task will be killed and marked as FAILED if over this limit. */ maxRunDuration: string; /** * The sequence of scripts or containers to run for this Task. Each Task using this TaskSpec executes its list of runnables in order. The Task succeeds if all of its runnables either exit with a zero status or any that exit with a non-zero status have the ignore_exit_status flag. Background runnables are killed automatically (if they have not already exited) a short time after all foreground runnables have completed. Even though this is likely to result in a non-zero exit status for the background runnable, these automatic kills are not treated as Task failures. */ runnables: outputs.batch.v1.RunnableResponse[]; /** * Volumes to mount before running Tasks using this TaskSpec. */ volumes: outputs.batch.v1.VolumeResponse[]; } /** * Volume describes a volume and parameters for it to be mounted to a VM. */ interface VolumeResponse { /** * Device name of an attached disk volume, which should align with a device_name specified by job.allocation_policy.instances[0].policy.disks[i].device_name or defined by the given instance template in job.allocation_policy.instances[0].instance_template. */ deviceName: string; /** * A Google Cloud Storage (GCS) volume. */ gcs: outputs.batch.v1.GCSResponse; /** * For Google Cloud Storage (GCS), mount options are the options supported by the gcsfuse tool (https://github.com/GoogleCloudPlatform/gcsfuse). For existing persistent disks, mount options provided by the mount command (https://man7.org/linux/man-pages/man8/mount.8.html) except writing are supported. This is due to restrictions of multi-writer mode (https://cloud.google.com/compute/docs/disks/sharing-disks-between-vms). For other attached disks and Network File System (NFS), mount options are these supported by the mount command (https://man7.org/linux/man-pages/man8/mount.8.html). */ mountOptions: string[]; /** * The mount path for the volume, e.g. /mnt/disks/share. */ mountPath: string; /** * A Network File System (NFS) volume. For example, a Filestore file share. */ nfs: outputs.batch.v1.NFSResponse; } } } export declare namespace beyondcorp { namespace v1 { /** * Allocated connection of the AppGateway. */ interface AllocatedConnectionResponse { /** * The ingress port of an allocated connection */ ingressPort: number; /** * The PSC uri of an allocated connection */ pscUri: string; } /** * ApplicationEndpoint represents a remote application endpoint. */ interface GoogleCloudBeyondcorpAppconnectionsV1AppConnectionApplicationEndpointResponse { /** * Hostname or IP address of the remote application endpoint. */ host: string; /** * Port of the remote application endpoint. */ port: number; } /** * Gateway represents a user facing component that serves as an entrance to enable connectivity. */ interface GoogleCloudBeyondcorpAppconnectionsV1AppConnectionGatewayResponse { /** * AppGateway name in following format: `projects/{project_id}/locations/{location_id}/appgateways/{gateway_id}` */ appGateway: string; /** * Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443. */ ingressPort: number; /** * L7 private service connection for this resource. */ l7psc: string; /** * The type of hosting used by the gateway. */ type: string; /** * Server-defined URI for this resource. */ uri: string; } /** * PrincipalInfo represents an Identity oneof. */ interface GoogleCloudBeyondcorpAppconnectorsV1AppConnectorPrincipalInfoResponse { /** * A GCP service account. */ serviceAccount: outputs.beyondcorp.v1.GoogleCloudBeyondcorpAppconnectorsV1AppConnectorPrincipalInfoServiceAccountResponse; } /** * ServiceAccount represents a GCP service account. */ interface GoogleCloudBeyondcorpAppconnectorsV1AppConnectorPrincipalInfoServiceAccountResponse { /** * Email address of the service account. */ email: string; } /** * ResourceInfo represents the information/status of an app connector resource. Such as: - remote_agent - container - runtime - appgateway - appconnector - appconnection - tunnel - logagent */ interface GoogleCloudBeyondcorpAppconnectorsV1ResourceInfoResponse { /** * Specific details for the resource. This is for internal use only. */ resource: { [key: string]: string; }; /** * Overall health status. Overall status is derived based on the status of each sub level resources. */ status: string; /** * List of Info for the sub level resources. */ sub: outputs.beyondcorp.v1.GoogleCloudBeyondcorpAppconnectorsV1ResourceInfoResponse[]; /** * The timestamp to collect the info. It is suggested to be set by the topmost level resource only. */ time: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.beyondcorp.v1.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.beyondcorp.v1.GoogleTypeExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface GoogleTypeExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } namespace v1alpha { /** * Allocated connection of the AppGateway. */ interface AllocatedConnectionResponse { /** * The ingress port of an allocated connection */ ingressPort: number; /** * The PSC uri of an allocated connection */ pscUri: string; } /** * ApplicationEndpoint represents a remote application endpoint. */ interface ApplicationEndpointResponse { /** * Hostname or IP address of the remote application endpoint. */ host: string; /** * Port of the remote application endpoint. */ port: number; } /** * Gateway represents a user facing component that serves as an entrance to enable connectivity. */ interface GatewayResponse { /** * The type of hosting used by the gateway. */ type: string; /** * Server-defined URI for this resource. */ uri: string; /** * User port reserved on the gateways for this connection, if not specified or zero, the default port is 19443. */ userPort: number; } /** * ApplicationEndpoint represents a remote application endpoint. */ interface GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionApplicationEndpointResponse { /** * Hostname or IP address of the remote application endpoint. */ host: string; /** * Port of the remote application endpoint. */ port: number; } /** * Gateway represents a user facing component that serves as an entrance to enable connectivity. */ interface GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionGatewayResponse { /** * AppGateway name in following format: `projects/{project_id}/locations/{location_id}/appgateways/{gateway_id}` */ appGateway: string; /** * Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443. */ ingressPort: number; /** * L7 private service connection for this resource. */ l7psc: string; /** * The type of hosting used by the gateway. */ type: string; /** * Server-defined URI for this resource. */ uri: string; } /** * PrincipalInfo represents an Identity oneof. */ interface GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfoResponse { /** * A GCP service account. */ serviceAccount: outputs.beyondcorp.v1alpha.GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfoServiceAccountResponse; } /** * ServiceAccount represents a GCP service account. */ interface GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfoServiceAccountResponse { /** * Email address of the service account. */ email: string; } /** * ResourceInfo represents the information/status of an app connector resource. Such as: - remote_agent - container - runtime - appgateway - appconnector - appconnection - tunnel - logagent */ interface GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfoResponse { /** * Specific details for the resource. This is for internal use only. */ resource: { [key: string]: string; }; /** * Overall health status. Overall status is derived based on the status of each sub level resources. */ status: string; /** * List of Info for the sub level resources. */ sub: outputs.beyondcorp.v1alpha.GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfoResponse[]; /** * The timestamp to collect the info. It is suggested to be set by the topmost level resource only. */ time: string; } /** * Message contains the JWT encryption information for the proxy server. */ interface GoogleCloudBeyondcorpPartnerservicesV1alphaEncryptionInfoResponse { /** * Optional. Service Account for encryption key. */ encryptionSaEmail: string; /** * Optional. JWK in string. */ jwk: string; } /** * Message to capture group information */ interface GoogleCloudBeyondcorpPartnerservicesV1alphaGroupResponse { /** * The group email id */ email: string; } /** * Metadata associated with PartnerTenant and is provided by the Partner. */ interface GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerMetadataResponse { /** * Optional. UUID used by the Partner to refer to the PartnerTenant in their internal systems. */ internalTenantId: string; /** * Optional. UUID used by the Partner to refer to the PartnerTenant in their internal systems. */ partnerTenantId: string; } /** * Message contains the routing information to direct traffic to the proxy server. */ interface GoogleCloudBeyondcorpPartnerservicesV1alphaRoutingInfoResponse { /** * Proxy Auto-Configuration (PAC) URI. */ pacUri: string; } /** * Message to capture settings for a BrowserDlpRule */ interface GoogleCloudBeyondcorpPartnerservicesV1alphaRuleSettingResponse { /** * Immutable. The type of the Setting. . */ type: string; /** * The value of the Setting. */ value: { [key: string]: string; }; } /** * Message contains the transport layer information to verify the proxy server. */ interface GoogleCloudBeyondcorpPartnerservicesV1alphaTransportInfoResponse { /** * PEM encoded CA certificate associated with the proxy server certificate. */ serverCaCertPem: string; /** * Optional. PEM encoded CA certificate associated with the certificate used by proxy server for SSL decryption. */ sslDecryptCaCertPem: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.beyondcorp.v1alpha.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.beyondcorp.v1alpha.GoogleTypeExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface GoogleTypeExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * PrincipalInfo represents an Identity oneof. */ interface PrincipalInfoResponse { /** * A GCP service account. */ serviceAccount: outputs.beyondcorp.v1alpha.ServiceAccountResponse; } /** * ResourceInfo represents the information/status of the associated resource. */ interface ResourceInfoResponse { /** * Specific details for the resource. */ resource: { [key: string]: string; }; /** * Overall health status. Overall status is derived based on the status of each sub level resources. */ status: string; /** * List of Info for the sub level resources. */ sub: outputs.beyondcorp.v1alpha.ResourceInfoResponse[]; /** * The timestamp to collect the info. It is suggested to be set by the topmost level resource only. */ time: string; } /** * ServiceAccount represents a GCP service account. */ interface ServiceAccountResponse { /** * Email address of the service account. */ email: string; } } } export declare namespace biglake { namespace v1 { /** * Options of a Hive database. */ interface HiveDatabaseOptionsResponse { /** * Cloud Storage folder URI where the database data is stored, starting with "gs://". */ locationUri: string; /** * Stores user supplied Hive database parameters. */ parameters: { [key: string]: string; }; } /** * Options of a Hive table. */ interface HiveTableOptionsResponse { /** * Stores user supplied Hive table parameters. */ parameters: { [key: string]: string; }; /** * Stores physical storage information of the data. */ storageDescriptor: outputs.biglake.v1.StorageDescriptorResponse; /** * Hive table type. For example, MANAGED_TABLE, EXTERNAL_TABLE. */ tableType: string; } /** * Serializer and deserializer information. */ interface SerDeInfoResponse { /** * The fully qualified Java class name of the serialization library. */ serializationLib: string; } /** * Stores physical storage information of the data. */ interface StorageDescriptorResponse { /** * The fully qualified Java class name of the input format. */ inputFormat: string; /** * Cloud Storage folder URI where the table data is stored, starting with "gs://". */ locationUri: string; /** * The fully qualified Java class name of the output format. */ outputFormat: string; /** * Serializer and deserializer information. */ serdeInfo: outputs.biglake.v1.SerDeInfoResponse; } } } export declare namespace bigquery { namespace v2 { /** * Input/output argument of a function or a stored procedure. */ interface ArgumentResponse { /** * Optional. Defaults to FIXED_TYPE. */ argumentKind: string; /** * Required unless argument_kind = ANY_TYPE. */ dataType: outputs.bigquery.v2.StandardSqlDataTypeResponse; /** * Optional. Whether the argument is an aggregate function parameter. Must be Unset for routine types other than AGGREGATE_FUNCTION. For AGGREGATE_FUNCTION, if set to false, it is equivalent to adding "NOT AGGREGATE" clause in DDL; Otherwise, it is equivalent to omitting "NOT AGGREGATE" clause in DDL. */ isAggregate: boolean; /** * Optional. Specifies whether the argument is input or output. Can be set for procedures only. */ mode: string; /** * Optional. The name of this argument. Can be absent for function return argument. */ name: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.bigquery.v2.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } interface AvroOptionsResponse { /** * [Optional] If sourceFormat is set to "AVRO", indicates whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER). */ useAvroLogicalTypes: boolean; } interface BiEngineReasonResponse { /** * High-level BI Engine reason for partial or disabled acceleration. */ code: string; /** * Free form human-readable reason for partial or disabled acceleration. */ message: string; } interface BiEngineStatisticsResponse { /** * Specifies which mode of BI Engine acceleration was performed (if any). */ accelerationMode: string; /** * Specifies which mode of BI Engine acceleration was performed (if any). */ biEngineMode: string; /** * In case of DISABLED or PARTIAL bi_engine_mode, these contain the explanatory reasons as to why BI Engine could not accelerate. In case the full query was accelerated, this field is not populated. */ biEngineReasons: outputs.bigquery.v2.BiEngineReasonResponse[]; } interface BigLakeConfigurationResponse { /** * [Required] Required and immutable. Credential reference for accessing external storage system. Normalized as project_id.location_id.connection_id. */ connectionId: string; /** * [Required] Required and immutable. Open source file format that the table data is stored in. Currently only PARQUET is supported. */ fileFormat: string; /** * [Required] Required and immutable. Fully qualified location prefix of the external folder where data is stored. Normalized to standard format: "gs:////". Starts with "gs://" rather than "/bigstore/". Ends with "/". Does not contain "*". See also BigLakeStorageMetadata on how it is used. */ storageUri: string; /** * [Required] Required and immutable. Open source file format that the table data is stored in. Currently only PARQUET is supported. */ tableFormat: string; } interface BigQueryModelTrainingResponse { /** * [Output-only, Beta] Index of current ML training iteration. Updated during create model query job to show job progress. */ currentIteration: number; /** * [Output-only, Beta] Expected number of iterations for the create model query job specified as num_iterations in the input query. The actual total number of iterations may be less than this number due to early stop. */ expectedTotalIterations: string; } interface BigtableColumnFamilyResponse { /** * [Optional] Lists of columns that should be exposed as individual fields as opposed to a list of (column name, value) pairs. All columns whose qualifier matches a qualifier in this list can be accessed as .. Other columns can be accessed as a list through .Column field. */ columns: outputs.bigquery.v2.BigtableColumnResponse[]; /** * [Optional] The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. This can be overridden for a specific column by listing that column in 'columns' and specifying an encoding for it. */ encoding: string; /** * Identifier of the column family. */ familyId: string; /** * [Optional] If this is set only the latest version of value are exposed for all columns in this column family. This can be overridden for a specific column by listing that column in 'columns' and specifying a different setting for that column. */ onlyReadLatest: boolean; /** * [Optional] The type to convert the value in cells of this column family. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive) - BYTES STRING INTEGER FLOAT BOOLEAN Default type is BYTES. This can be overridden for a specific column by listing that column in 'columns' and specifying a type for it. */ type: string; } interface BigtableColumnResponse { /** * [Optional] The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. 'encoding' can also be set at the column family level. However, the setting at this level takes precedence if 'encoding' is set at both levels. */ encoding: string; /** * [Optional] If the qualifier is not a valid BigQuery field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as the column field name and is used as field name in queries. */ fieldName: string; /** * [Optional] If this is set, only the latest version of value in this column are exposed. 'onlyReadLatest' can also be set at the column family level. However, the setting at this level takes precedence if 'onlyReadLatest' is set at both levels. */ onlyReadLatest: boolean; /** * [Required] Qualifier of the column. Columns in the parent column family that has this exact qualifier are exposed as . field. If the qualifier is valid UTF-8 string, it can be specified in the qualifier_string field. Otherwise, a base-64 encoded value must be set to qualifier_encoded. The column field name is the same as the column qualifier. However, if the qualifier is not a valid BigQuery field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as field_name. */ qualifierEncoded: string; qualifierString: string; /** * [Optional] The type to convert the value in cells of this column. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive) - BYTES STRING INTEGER FLOAT BOOLEAN Default type is BYTES. 'type' can also be set at the column family level. However, the setting at this level takes precedence if 'type' is set at both levels. */ type: string; } interface BigtableOptionsResponse { /** * [Optional] List of column families to expose in the table schema along with their types. This list restricts the column families that can be referenced in queries and specifies their value types. You can use this list to do type conversions - see the 'type' field for more details. If you leave this list empty, all column families are present in the table schema and their values are read as BYTES. During a query only the column families referenced in that query are read from Bigtable. */ columnFamilies: outputs.bigquery.v2.BigtableColumnFamilyResponse[]; /** * [Optional] If field is true, then the column families that are not specified in columnFamilies list are not exposed in the table schema. Otherwise, they are read with BYTES type values. The default value is false. */ ignoreUnspecifiedColumnFamilies: boolean; /** * [Optional] If field is true, then the rowkey column families will be read and converted to string. Otherwise they are read with BYTES type values and users need to manually cast them with CAST if necessary. The default value is false. */ readRowkeyAsString: boolean; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.bigquery.v2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } interface BqmlIterationResultResponse { /** * [Output-only, Beta] Time taken to run the training iteration in milliseconds. */ durationMs: string; /** * [Output-only, Beta] Eval loss computed on the eval data at the end of the iteration. The eval loss is used for early stopping to avoid overfitting. No eval loss if eval_split_method option is specified as no_split or auto_split with input data size less than 500 rows. */ evalLoss: number; /** * [Output-only, Beta] Index of the ML training iteration, starting from zero for each training run. */ index: number; /** * [Output-only, Beta] Learning rate used for this iteration, it varies for different training iterations if learn_rate_strategy option is not constant. */ learnRate: number; /** * [Output-only, Beta] Training loss computed on the training data at the end of the iteration. The training loss function is defined by model type. */ trainingLoss: number; } interface BqmlTrainingRunResponse { /** * [Output-only, Beta] List of each iteration results. */ iterationResults: outputs.bigquery.v2.BqmlIterationResultResponse[]; /** * [Output-only, Beta] Training run start time in milliseconds since the epoch. */ startTime: string; /** * [Output-only, Beta] Different state applicable for a training run. IN PROGRESS: Training run is in progress. FAILED: Training run ended due to a non-retryable failure. SUCCEEDED: Training run successfully completed. CANCELLED: Training run cancelled by the user. */ state: string; /** * [Output-only, Beta] Training options used by this training run. These options are mutable for subsequent training runs. Default values are explicitly stored for options not specified in the input query of the first training run. For subsequent training runs, any option not explicitly specified in the input query will be copied from the previous training run. */ trainingOptions: outputs.bigquery.v2.BqmlTrainingRunTrainingOptionsResponse; } /** * [Output-only, Beta] Training options used by this training run. These options are mutable for subsequent training runs. Default values are explicitly stored for options not specified in the input query of the first training run. For subsequent training runs, any option not explicitly specified in the input query will be copied from the previous training run. */ interface BqmlTrainingRunTrainingOptionsResponse { earlyStop: boolean; l1Reg: number; l2Reg: number; learnRate: number; learnRateStrategy: string; lineSearchInitLearnRate: number; maxIteration: string; minRelProgress: number; warmStart: boolean; } interface CloneDefinitionResponse { /** * [Required] Reference describing the ID of the table that was cloned. */ baseTableReference: outputs.bigquery.v2.TableReferenceResponse; /** * [Required] The time at which the base table was cloned. This value is reported in the JSON response using RFC3339 format. */ cloneTime: string; } interface ClusteringResponse { /** * [Repeated] One or more fields on which data should be clustered. Only top-level, non-repeated, simple-type fields are supported. When you cluster a table using multiple columns, the order of columns you specify is important. The order of the specified columns determines the sort order of the data. */ fields: string[]; } interface ConnectionPropertyResponse { /** * [Required] Name of the connection property to set. */ key: string; /** * [Required] Value of the connection property. */ value: string; } interface CsvOptionsResponse { /** * [Optional] Indicates if BigQuery should accept rows that are missing trailing optional columns. If true, BigQuery treats missing trailing columns as null values. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. */ allowJaggedRows: boolean; /** * [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false. */ allowQuotedNewlines: boolean; /** * [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties. */ encoding: string; /** * [Optional] The separator for fields in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (','). */ fieldDelimiter: string; /** * [Optional] An custom string that will represent a NULL value in CSV import data. */ nullMarker: string; /** * [Optional] Preserves the embedded ASCII control characters (the first 32 characters in the ASCII-table, from '\x00' to '\x1F') when loading from CSV. Only applicable to CSV, ignored for other formats. */ preserveAsciiControlCharacters: boolean; /** * [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true. */ quote: string; /** * [Optional] The number of rows at the top of a CSV file that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped. When autodetect is on, the behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema. */ skipLeadingRows: string; } interface DataMaskingStatisticsResponse { /** * [Preview] Whether any accessed data was protected by data masking. The actual evaluation is done by accessStats.masked_field_count > 0. Since this is only used for the discovery_doc generation purpose, as long as the type (boolean) matches, client library can leverage this. The actual evaluation of the variable is done else-where. */ dataMaskingApplied: boolean; } interface DatasetAccessEntryResponse { /** * [Required] The dataset this entry applies to. */ dataset: outputs.bigquery.v2.DatasetReferenceResponse; targetTypes: string[]; } interface DatasetAccessItemResponse { /** * [Pick one] A grant authorizing all resources of a particular type in a particular dataset access to this dataset. Only views are supported for now. The role field is not required when this field is set. If that dataset is deleted and re-created, its access needs to be granted again via an update operation. */ dataset: outputs.bigquery.v2.DatasetAccessEntryResponse; /** * [Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: "example.com". Maps to IAM policy member "domain:DOMAIN". */ domain: string; /** * [Pick one] An email address of a Google Group to grant access to. Maps to IAM policy member "group:GROUP". */ groupByEmail: string; /** * [Pick one] Some other type of member that appears in the IAM Policy but isn't a user, group, domain, or special group. */ iamMember: string; /** * [Required] An IAM role ID that should be granted to the user, group, or domain specified in this access entry. The following legacy mappings will be applied: OWNER roles/bigquery.dataOwner WRITER roles/bigquery.dataEditor READER roles/bigquery.dataViewer This field will accept any of the above formats, but will return only the legacy format. For example, if you set this field to "roles/bigquery.dataOwner", it will be returned back as "OWNER". */ role: string; /** * [Pick one] A routine from a different dataset to grant access to. Queries executed against that routine will have read access to views/tables/routines in this dataset. Only UDF is supported for now. The role field is not required when this field is set. If that routine is updated by any user, access to the routine needs to be granted again via an update operation. */ routine: outputs.bigquery.v2.RoutineReferenceResponse; /** * [Pick one] A special group to grant access to. Possible values include: projectOwners: Owners of the enclosing project. projectReaders: Readers of the enclosing project. projectWriters: Writers of the enclosing project. allAuthenticatedUsers: All authenticated BigQuery users. Maps to similarly-named IAM members. */ specialGroup: string; /** * [Pick one] An email address of a user to grant access to. For example: fred@example.com. Maps to IAM policy member "user:EMAIL" or "serviceAccount:EMAIL". */ userByEmail: string; /** * [Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to tables in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation. */ view: outputs.bigquery.v2.TableReferenceResponse; } interface DatasetReferenceResponse { /** * [Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters. */ datasetId: string; /** * [Optional] The ID of the project containing this dataset. */ project: string; } interface DatasetTagsItemResponse { /** * [Required] The namespaced friendly name of the tag key, e.g. "12345/environment" where 12345 is org id. */ tagKey: string; /** * [Required] Friendly short name of the tag value, e.g. "production". */ tagValue: string; } interface DestinationTablePropertiesResponse { /** * [Optional] The description for the destination table. This will only be used if the destination table is newly created. If the table already exists and a value different than the current description is provided, the job will fail. */ description: string; /** * [Internal] This field is for Google internal use only. */ expirationTime: string; /** * [Optional] The friendly name for the destination table. This will only be used if the destination table is newly created. If the table already exists and a value different than the current friendly name is provided, the job will fail. */ friendlyName: string; /** * [Optional] The labels associated with this table. You can use these to organize and group your tables. This will only be used if the destination table is newly created. If the table already exists and labels are different than the current labels are provided, the job will fail. */ labels: { [key: string]: string; }; } interface DmlStatisticsResponse { /** * Number of deleted Rows. populated by DML DELETE, MERGE and TRUNCATE statements. */ deletedRowCount: string; /** * Number of inserted Rows. Populated by DML INSERT and MERGE statements. */ insertedRowCount: string; /** * Number of updated Rows. Populated by DML UPDATE and MERGE statements. */ updatedRowCount: string; } interface EncryptionConfigurationResponse { /** * Optional. Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. */ kmsKeyName: string; } interface ErrorProtoResponse { /** * Debugging information. This property is internal to Google and should not be used. */ debugInfo: string; /** * Specifies where the error occurred, if present. */ location: string; /** * A human-readable description of the error. */ message: string; /** * A short error code that summarizes the error. */ reason: string; } interface ExplainQueryStageResponse { /** * Number of parallel input segments completed. */ completedParallelInputs: string; /** * Milliseconds the average shard spent on CPU-bound tasks. */ computeMsAvg: string; /** * Milliseconds the slowest shard spent on CPU-bound tasks. */ computeMsMax: string; /** * Relative amount of time the average shard spent on CPU-bound tasks. */ computeRatioAvg: number; /** * Relative amount of time the slowest shard spent on CPU-bound tasks. */ computeRatioMax: number; /** * Stage end time represented as milliseconds since epoch. */ endMs: string; /** * IDs for stages that are inputs to this stage. */ inputStages: string[]; /** * Human-readable name for stage. */ name: string; /** * Number of parallel input segments to be processed. */ parallelInputs: string; /** * Milliseconds the average shard spent reading input. */ readMsAvg: string; /** * Milliseconds the slowest shard spent reading input. */ readMsMax: string; /** * Relative amount of time the average shard spent reading input. */ readRatioAvg: number; /** * Relative amount of time the slowest shard spent reading input. */ readRatioMax: number; /** * Number of records read into the stage. */ recordsRead: string; /** * Number of records written by the stage. */ recordsWritten: string; /** * Total number of bytes written to shuffle. */ shuffleOutputBytes: string; /** * Total number of bytes written to shuffle and spilled to disk. */ shuffleOutputBytesSpilled: string; /** * Slot-milliseconds used by the stage. */ slotMs: string; /** * Stage start time represented as milliseconds since epoch. */ startMs: string; /** * Current status for the stage. */ status: string; /** * List of operations within the stage in dependency order (approximately chronological). */ steps: outputs.bigquery.v2.ExplainQueryStepResponse[]; /** * Milliseconds the average shard spent waiting to be scheduled. */ waitMsAvg: string; /** * Milliseconds the slowest shard spent waiting to be scheduled. */ waitMsMax: string; /** * Relative amount of time the average shard spent waiting to be scheduled. */ waitRatioAvg: number; /** * Relative amount of time the slowest shard spent waiting to be scheduled. */ waitRatioMax: number; /** * Milliseconds the average shard spent on writing output. */ writeMsAvg: string; /** * Milliseconds the slowest shard spent on writing output. */ writeMsMax: string; /** * Relative amount of time the average shard spent on writing output. */ writeRatioAvg: number; /** * Relative amount of time the slowest shard spent on writing output. */ writeRatioMax: number; } interface ExplainQueryStepResponse { /** * Machine-readable operation type. */ kind: string; /** * Human-readable stage descriptions. */ substeps: string[]; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } interface ExternalDataConfigurationResponse { /** * Try to detect schema and format options automatically. Any option specified explicitly will be honored. */ autodetect: boolean; /** * Additional properties to set if sourceFormat is set to Avro. */ avroOptions: outputs.bigquery.v2.AvroOptionsResponse; /** * [Optional] Additional options if sourceFormat is set to BIGTABLE. */ bigtableOptions: outputs.bigquery.v2.BigtableOptionsResponse; /** * [Optional] The compression type of the data source. Possible values include GZIP and NONE. The default value is NONE. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats. */ compression: string; /** * [Optional, Trusted Tester] Connection for external data source. */ connectionId: string; /** * Additional properties to set if sourceFormat is set to CSV. */ csvOptions: outputs.bigquery.v2.CsvOptionsResponse; /** * [Optional] Defines the list of possible SQL data types to which the source decimal values are converted. This list and the precision and the scale parameters of the decimal field determine the target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in the specified list and if it supports the precision and the scale. STRING supports all precision and scale values. If none of the listed types supports the precision and the scale, the type supporting the widest range in the specified list is picked, and if a value exceeds the supported range when reading the data, an error will be thrown. Example: Suppose the value of this field is ["NUMERIC", "BIGNUMERIC"]. If (precision,scale) is: (38,9) -> NUMERIC; (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); (76,38) -> BIGNUMERIC; (77,38) -> BIGNUMERIC (error if value exeeds supported range). This field cannot contain duplicate types. The order of the types in this field is ignored. For example, ["BIGNUMERIC", "NUMERIC"] is the same as ["NUMERIC", "BIGNUMERIC"] and NUMERIC always takes precedence over BIGNUMERIC. Defaults to ["NUMERIC", "STRING"] for ORC and ["NUMERIC"] for the other file formats. */ decimalTargetTypes: string[]; /** * [Optional] Specifies how source URIs are interpreted for constructing the file set to load. By default source URIs are expanded against the underlying storage. Other options include specifying manifest files. Only applicable to object storage systems. */ fileSetSpecType: string; /** * [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS. */ googleSheetsOptions: outputs.bigquery.v2.GoogleSheetsOptionsResponse; /** * [Optional] Options to configure hive partitioning support. */ hivePartitioningOptions: outputs.bigquery.v2.HivePartitioningOptionsResponse; /** * [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored. */ ignoreUnknownValues: boolean; /** * Additional properties to set if `sourceFormat` is set to `NEWLINE_DELIMITED_JSON`. */ jsonOptions: outputs.bigquery.v2.JsonOptionsResponse; /** * [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. This is only valid for CSV, JSON, and Google Sheets. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats. */ maxBadRecords: number; /** * [Optional] Metadata Cache Mode for the table. Set this to enable caching of metadata from external data source. */ metadataCacheMode: string; /** * ObjectMetadata is used to create Object Tables. Object Tables contain a listing of objects (with their metadata) found at the source_uris. If ObjectMetadata is set, source_format should be omitted. Currently SIMPLE is the only supported Object Metadata type. */ objectMetadata: string; /** * Additional properties to set if sourceFormat is set to Parquet. */ parquetOptions: outputs.bigquery.v2.ParquetOptionsResponse; /** * [Optional] Provide a referencing file with the expected table schema. Enabled for the format: AVRO, PARQUET, ORC. */ referenceFileSchemaUri: string; /** * [Optional] The schema for the data. Schema is required for CSV and JSON formats. Schema is disallowed for Google Cloud Bigtable, Cloud Datastore backups, and Avro formats. */ schema: outputs.bigquery.v2.TableSchemaResponse; /** * [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE". */ sourceFormat: string; /** * [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified. Also, the '*' wildcard character is not allowed. */ sourceUris: string[]; } interface ExternalDatasetReferenceResponse { /** * [Required] The connection id that is used to access the external_source. Format: projects/{project_id}/locations/{location_id}/connections/{connection_id} */ connection: string; /** * [Required] External source that backs this dataset. */ externalSource: string; } interface GoogleSheetsOptionsResponse { /** * [Optional] Range of a sheet to query from. Only used when non-empty. Typical format: sheet_name!top_left_cell_id:bottom_right_cell_id For example: sheet1!A1:B20 */ range: string; /** * [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema. */ skipLeadingRows: string; } interface HivePartitioningOptionsResponse { /** * For permanent external tables, this field is populated with the hive partition keys in the order they were inferred. The types of the partition keys can be deduced by checking the table schema (which will include the partition keys). Not every API will populate this field in the output. For example, Tables.Get will populate it, but Tables.List will not contain this field. */ fields: string[]; /** * [Optional] When set, what mode of hive partitioning to use when reading data. The following modes are supported. (1) AUTO: automatically infer partition key name(s) and type(s). (2) STRINGS: automatically infer partition key name(s). All types are interpreted as strings. (3) CUSTOM: partition key schema is encoded in the source URI prefix. Not all storage formats support hive partitioning. Requesting hive partitioning on an unsupported format will lead to an error. Currently supported types include: AVRO, CSV, JSON, ORC and Parquet. */ mode: string; /** * [Optional] If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. Note that this field should only be true when creating a permanent external table or querying a temporary external table. Hive-partitioned loads with requirePartitionFilter explicitly set to true will fail. */ requirePartitionFilter: boolean; /** * [Optional] When hive partition detection is requested, a common prefix for all source uris should be supplied. The prefix must end immediately before the partition key encoding begins. For example, consider files following this data layout. gs://bucket/path_to_table/dt=2019-01-01/country=BR/id=7/file.avro gs://bucket/path_to_table/dt=2018-12-31/country=CA/id=3/file.avro When hive partitioning is requested with either AUTO or STRINGS detection, the common prefix can be either of gs://bucket/path_to_table or gs://bucket/path_to_table/ (trailing slash does not matter). */ sourceUriPrefix: string; } interface IndexUnusedReasonResponse { /** * Specifies the base table involved in the reason that no search index was used. */ baseTable: outputs.bigquery.v2.TableReferenceResponse; /** * Specifies the high-level reason for the scenario when no search index was used. */ code: string; /** * Specifies the name of the unused search index, if available. */ indexName: string; /** * Free form human-readable reason for the scenario when no search index was used. */ message: string; } interface IterationResultResponse { /** * Time taken to run the iteration in milliseconds. */ durationMs: string; /** * Loss computed on the eval data at the end of iteration. */ evalLoss: number; /** * Index of the iteration, 0 based. */ index: number; /** * Learn rate used for this iteration. */ learnRate: number; /** * Loss computed on the training data at the end of iteration. */ trainingLoss: number; } interface JobConfigurationExtractResponse { /** * [Optional] The compression type to use for exported files. Possible values include GZIP, DEFLATE, SNAPPY, and NONE. The default value is NONE. DEFLATE and SNAPPY are only supported for Avro. Not applicable when extracting models. */ compression: string; /** * [Optional] The exported file format. Possible values include CSV, NEWLINE_DELIMITED_JSON, PARQUET or AVRO for tables and ML_TF_SAVED_MODEL or ML_XGBOOST_BOOSTER for models. The default value for tables is CSV. Tables with nested or repeated fields cannot be exported as CSV. The default value for models is ML_TF_SAVED_MODEL. */ destinationFormat: string; /** * [Pick one] DEPRECATED: Use destinationUris instead, passing only one URI as necessary. The fully-qualified Google Cloud Storage URI where the extracted table should be written. */ destinationUri: string; /** * [Pick one] A list of fully-qualified Google Cloud Storage URIs where the extracted table should be written. */ destinationUris: string[]; /** * [Optional] Delimiter to use between fields in the exported data. Default is ','. Not applicable when extracting models. */ fieldDelimiter: string; /** * [Optional] Whether to print out a header row in the results. Default is true. Not applicable when extracting models. */ printHeader: boolean; /** * A reference to the model being exported. */ sourceModel: outputs.bigquery.v2.ModelReferenceResponse; /** * A reference to the table being exported. */ sourceTable: outputs.bigquery.v2.TableReferenceResponse; /** * [Optional] If destinationFormat is set to "AVRO", this flag indicates whether to enable extracting applicable column types (such as TIMESTAMP) to their corresponding AVRO logical types (timestamp-micros), instead of only using their raw types (avro-long). Not applicable when extracting models. */ useAvroLogicalTypes: boolean; } interface JobConfigurationLoadResponse { /** * [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats. */ allowJaggedRows: boolean; /** * Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false. */ allowQuotedNewlines: boolean; /** * [Optional] Indicates if we should automatically infer the options and schema for CSV and JSON sources. */ autodetect: boolean; /** * [Beta] Clustering specification for the destination table. Must be specified with time-based partitioning, data in the table will be first partitioned and subsequently clustered. */ clustering: outputs.bigquery.v2.ClusteringResponse; /** * Connection properties. */ connectionProperties: outputs.bigquery.v2.ConnectionPropertyResponse[]; /** * [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion. */ createDisposition: string; /** * If true, creates a new session, where session id will be a server generated random id. If false, runs query with an existing session_id passed in ConnectionProperty, otherwise runs the load job in non-session mode. */ createSession: boolean; /** * [Optional] Defines the list of possible SQL data types to which the source decimal values are converted. This list and the precision and the scale parameters of the decimal field determine the target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in the specified list and if it supports the precision and the scale. STRING supports all precision and scale values. If none of the listed types supports the precision and the scale, the type supporting the widest range in the specified list is picked, and if a value exceeds the supported range when reading the data, an error will be thrown. Example: Suppose the value of this field is ["NUMERIC", "BIGNUMERIC"]. If (precision,scale) is: (38,9) -> NUMERIC; (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); (76,38) -> BIGNUMERIC; (77,38) -> BIGNUMERIC (error if value exeeds supported range). This field cannot contain duplicate types. The order of the types in this field is ignored. For example, ["BIGNUMERIC", "NUMERIC"] is the same as ["NUMERIC", "BIGNUMERIC"] and NUMERIC always takes precedence over BIGNUMERIC. Defaults to ["NUMERIC", "STRING"] for ORC and ["NUMERIC"] for the other file formats. */ decimalTargetTypes: string[]; /** * Custom encryption configuration (e.g., Cloud KMS keys). */ destinationEncryptionConfiguration: outputs.bigquery.v2.EncryptionConfigurationResponse; /** * [Required] The destination table to load the data into. */ destinationTable: outputs.bigquery.v2.TableReferenceResponse; /** * [Beta] [Optional] Properties with which to create the destination table if it is new. */ destinationTableProperties: outputs.bigquery.v2.DestinationTablePropertiesResponse; /** * [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties. */ encoding: string; /** * [Optional] The separator for fields in a CSV file. The separator can be any ISO-8859-1 single-byte character. To use a character in the range 128-255, you must encode the character as UTF8. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (','). */ fieldDelimiter: string; /** * [Optional] Specifies how source URIs are interpreted for constructing the file set to load. By default source URIs are expanded against the underlying storage. Other options include specifying manifest files. Only applicable to object storage systems. */ fileSetSpecType: string; /** * [Optional] Options to configure hive partitioning support. */ hivePartitioningOptions: outputs.bigquery.v2.HivePartitioningOptionsResponse; /** * [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names */ ignoreUnknownValues: boolean; /** * [Optional] If sourceFormat is set to newline-delimited JSON, indicates whether it should be processed as a JSON variant such as GeoJSON. For a sourceFormat other than JSON, omit this field. If the sourceFormat is newline-delimited JSON: - for newline-delimited GeoJSON: set to GEOJSON. */ jsonExtension: string; /** * [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. This is only valid for CSV and JSON. The default value is 0, which requires that all records are valid. */ maxBadRecords: number; /** * [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery throws an error if an empty string is present for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value. */ nullMarker: string; /** * [Optional] Options to configure parquet support. */ parquetOptions: outputs.bigquery.v2.ParquetOptionsResponse; /** * [Optional] Preserves the embedded ASCII control characters (the first 32 characters in the ASCII-table, from '\x00' to '\x1F') when loading from CSV. Only applicable to CSV, ignored for other formats. */ preserveAsciiControlCharacters: boolean; /** * If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result. */ projectionFields: string[]; /** * [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true. */ quote: string; /** * [TrustedTester] Range partitioning specification for this table. Only one of timePartitioning and rangePartitioning should be specified. */ rangePartitioning: outputs.bigquery.v2.RangePartitioningResponse; /** * User provided referencing file with the expected reader schema, Available for the format: AVRO, PARQUET, ORC. */ referenceFileSchemaUri: string; /** * [Optional] The schema for the destination table. The schema can be omitted if the destination table already exists, or if you're loading data from Google Cloud Datastore. */ schema: outputs.bigquery.v2.TableSchemaResponse; /** * [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT". * * @deprecated [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT". */ schemaInline: string; /** * [Deprecated] The format of the schemaInline property. * * @deprecated [Deprecated] The format of the schemaInline property. */ schemaInlineFormat: string; /** * Allows the schema of the destination table to be updated as a side effect of the load job if a schema is autodetected or supplied in the job configuration. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable. */ schemaUpdateOptions: string[]; /** * [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped. */ skipLeadingRows: number; /** * [Optional] The format of the data files. For CSV files, specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro, specify "AVRO". For parquet, specify "PARQUET". For orc, specify "ORC". The default value is CSV. */ sourceFormat: string; /** * [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups: Exactly one URI can be specified. Also, the '*' wildcard character is not allowed. */ sourceUris: string[]; /** * Time-based partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified. */ timePartitioning: outputs.bigquery.v2.TimePartitioningResponse; /** * [Optional] If sourceFormat is set to "AVRO", indicates whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER). */ useAvroLogicalTypes: boolean; /** * [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion. */ writeDisposition: string; } interface JobConfigurationQueryResponse { /** * [Optional] If true and query uses legacy SQL dialect, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set. For standard SQL queries, this flag is ignored and large results are always allowed. However, you must still set destinationTable when result size exceeds the allowed maximum response size. */ allowLargeResults: boolean; /** * [Beta] Clustering specification for the destination table. Must be specified with time-based partitioning, data in the table will be first partitioned and subsequently clustered. */ clustering: outputs.bigquery.v2.ClusteringResponse; /** * Connection properties. */ connectionProperties: outputs.bigquery.v2.ConnectionPropertyResponse[]; /** * [Optional] Specifies whether the query should be executed as a continuous query. The default value is false. */ continuous: boolean; /** * [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion. */ createDisposition: string; /** * If true, creates a new session, where session id will be a server generated random id. If false, runs query with an existing session_id passed in ConnectionProperty, otherwise runs query in non-session mode. */ createSession: boolean; /** * [Optional] Specifies the default dataset to use for unqualified table names in the query. Note that this does not alter behavior of unqualified dataset names. */ defaultDataset: outputs.bigquery.v2.DatasetReferenceResponse; /** * Custom encryption configuration (e.g., Cloud KMS keys). */ destinationEncryptionConfiguration: outputs.bigquery.v2.EncryptionConfigurationResponse; /** * [Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results. This property must be set for large results that exceed the maximum response size. */ destinationTable: outputs.bigquery.v2.TableReferenceResponse; /** * [Optional] If true and query uses legacy SQL dialect, flattens all nested and repeated fields in the query results. allowLargeResults must be true if this is set to false. For standard SQL queries, this flag is ignored and results are never flattened. */ flattenResults: boolean; /** * [Optional] Limits the billing tier for this job. Queries that have resource usage beyond this tier will fail (without incurring a charge). If unspecified, this will be set to your project default. */ maximumBillingTier: number; /** * [Optional] Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge). If unspecified, this will be set to your project default. */ maximumBytesBilled: string; /** * Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query. */ parameterMode: string; /** * [Deprecated] This property is deprecated. * * @deprecated [Deprecated] This property is deprecated. */ preserveNulls: boolean; /** * [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE. */ priority: string; /** * [Required] SQL query text to execute. The useLegacySql field can be used to indicate whether the query uses legacy SQL or standard SQL. */ query: string; /** * Query parameters for standard SQL queries. */ queryParameters: outputs.bigquery.v2.QueryParameterResponse[]; /** * [TrustedTester] Range partitioning specification for this table. Only one of timePartitioning and rangePartitioning should be specified. */ rangePartitioning: outputs.bigquery.v2.RangePartitioningResponse; /** * Allows the schema of the destination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable. */ schemaUpdateOptions: string[]; /** * [Optional] If querying an external data source outside of BigQuery, describes the data format, location and other properties of the data source. By defining these properties, the data source can then be queried as if it were a standard BigQuery table. */ tableDefinitions: { [key: string]: string; }; /** * Time-based partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified. */ timePartitioning: outputs.bigquery.v2.TimePartitioningResponse; /** * Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is set to false, the value of flattenResults is ignored; query will be run as if flattenResults is false. */ useLegacySql: boolean; /** * [Optional] Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. Moreover, the query cache is only available when a query does not have a destination table specified. The default value is true. */ useQueryCache: boolean; /** * Describes user-defined function resources used in the query. */ userDefinedFunctionResources: outputs.bigquery.v2.UserDefinedFunctionResourceResponse[]; /** * [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion. */ writeDisposition: string; } interface JobConfigurationResponse { /** * [Pick one] Copies a table. */ copy: outputs.bigquery.v2.JobConfigurationTableCopyResponse; /** * [Optional] If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run. Behavior of non-query jobs is undefined. */ dryRun: boolean; /** * [Pick one] Configures an extract job. */ extract: outputs.bigquery.v2.JobConfigurationExtractResponse; /** * [Optional] Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt to terminate the job. */ jobTimeoutMs: string; /** * The type of the job. Can be QUERY, LOAD, EXTRACT, COPY or UNKNOWN. */ jobType: string; /** * The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key. */ labels: { [key: string]: string; }; /** * [Pick one] Configures a load job. */ load: outputs.bigquery.v2.JobConfigurationLoadResponse; /** * [Pick one] Configures a query job. */ query: outputs.bigquery.v2.JobConfigurationQueryResponse; } interface JobConfigurationTableCopyResponse { /** * [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion. */ createDisposition: string; /** * Custom encryption configuration (e.g., Cloud KMS keys). */ destinationEncryptionConfiguration: outputs.bigquery.v2.EncryptionConfigurationResponse; /** * [Optional] The time when the destination table expires. Expired tables will be deleted and their storage reclaimed. */ destinationExpirationTime: any; /** * [Required] The destination table */ destinationTable: outputs.bigquery.v2.TableReferenceResponse; /** * [Optional] Supported operation types in table copy job. */ operationType: string; /** * [Pick one] Source table to copy. */ sourceTable: outputs.bigquery.v2.TableReferenceResponse; /** * [Pick one] Source tables to copy. */ sourceTables: outputs.bigquery.v2.TableReferenceResponse[]; /** * [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion. */ writeDisposition: string; } interface JobReferenceResponse { /** * [Required] The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters. */ jobId: string; /** * The geographic location of the job. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location. */ location: string; /** * [Required] The ID of the project containing this job. */ project: string; } interface JobStatistics2ReservationUsageItemResponse { /** * [Output only] Reservation name or "unreserved" for on-demand resources usage. */ name: string; /** * [Output only] Slot-milliseconds the job spent in the given reservation. */ slotMs: string; } interface JobStatistics2Response { /** * BI Engine specific Statistics. [Output only] BI Engine specific Statistics. */ biEngineStatistics: outputs.bigquery.v2.BiEngineStatisticsResponse; /** * [Output only] Billing tier for the job. */ billingTier: number; /** * [Output only] Whether the query result was fetched from the query cache. */ cacheHit: boolean; /** * [Output only] [Preview] The number of row access policies affected by a DDL statement. Present only for DROP ALL ROW ACCESS POLICIES queries. */ ddlAffectedRowAccessPolicyCount: string; /** * [Output only] The DDL destination table. Present only for ALTER TABLE RENAME TO queries. Note that ddl_target_table is used just for its type information. */ ddlDestinationTable: outputs.bigquery.v2.TableReferenceResponse; /** * The DDL operation performed, possibly dependent on the pre-existence of the DDL target. Possible values (new values might be added in the future): "CREATE": The query created the DDL target. "SKIP": No-op. Example cases: the query is CREATE TABLE IF NOT EXISTS while the table already exists, or the query is DROP TABLE IF EXISTS while the table does not exist. "REPLACE": The query replaced the DDL target. Example case: the query is CREATE OR REPLACE TABLE, and the table already exists. "DROP": The query deleted the DDL target. */ ddlOperationPerformed: string; /** * [Output only] The DDL target dataset. Present only for CREATE/ALTER/DROP/UNDROP SCHEMA queries. */ ddlTargetDataset: outputs.bigquery.v2.DatasetReferenceResponse; /** * The DDL target routine. Present only for CREATE/DROP FUNCTION/PROCEDURE queries. */ ddlTargetRoutine: outputs.bigquery.v2.RoutineReferenceResponse; /** * [Output only] [Preview] The DDL target row access policy. Present only for CREATE/DROP ROW ACCESS POLICY queries. */ ddlTargetRowAccessPolicy: outputs.bigquery.v2.RowAccessPolicyReferenceResponse; /** * [Output only] The DDL target table. Present only for CREATE/DROP TABLE/VIEW and DROP ALL ROW ACCESS POLICIES queries. */ ddlTargetTable: outputs.bigquery.v2.TableReferenceResponse; /** * [Output only] Detailed statistics for DML statements Present only for DML statements INSERT, UPDATE, DELETE or TRUNCATE. */ dmlStats: outputs.bigquery.v2.DmlStatisticsResponse; /** * [Output only] The original estimate of bytes processed for the job. */ estimatedBytesProcessed: string; /** * [Output only] Statistics of a BigQuery ML training job. */ mlStatistics: outputs.bigquery.v2.MlStatisticsResponse; /** * [Output only, Beta] Information about create model query job progress. */ modelTraining: outputs.bigquery.v2.BigQueryModelTrainingResponse; /** * [Output only, Beta] Deprecated; do not use. * * @deprecated [Output only, Beta] Deprecated; do not use. */ modelTrainingCurrentIteration: number; /** * [Output only, Beta] Deprecated; do not use. * * @deprecated [Output only, Beta] Deprecated; do not use. */ modelTrainingExpectedTotalIteration: string; /** * [Output only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE. */ numDmlAffectedRows: string; /** * [Output only] Describes execution plan for the query. */ queryPlan: outputs.bigquery.v2.ExplainQueryStageResponse[]; /** * [Output only] Referenced routines (persistent user-defined functions and stored procedures) for the job. */ referencedRoutines: outputs.bigquery.v2.RoutineReferenceResponse[]; /** * [Output only] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list. */ referencedTables: outputs.bigquery.v2.TableReferenceResponse[]; /** * [Output only] Job resource usage breakdown by reservation. */ reservationUsage: outputs.bigquery.v2.JobStatistics2ReservationUsageItemResponse[]; /** * [Output only] The schema of the results. Present only for successful dry run of non-legacy SQL queries. */ schema: outputs.bigquery.v2.TableSchemaResponse; /** * [Output only] Search query specific statistics. */ searchStatistics: outputs.bigquery.v2.SearchStatisticsResponse; /** * [Output only] Statistics of a Spark procedure job. */ sparkStatistics: outputs.bigquery.v2.SparkStatisticsResponse; /** * The type of query statement, if valid. Possible values (new values might be added in the future): "SELECT": SELECT query. "INSERT": INSERT query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. "UPDATE": UPDATE query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. "DELETE": DELETE query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. "MERGE": MERGE query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. "ALTER_TABLE": ALTER TABLE query. "ALTER_VIEW": ALTER VIEW query. "ASSERT": ASSERT condition AS 'description'. "CREATE_FUNCTION": CREATE FUNCTION query. "CREATE_MODEL": CREATE [OR REPLACE] MODEL ... AS SELECT ... . "CREATE_PROCEDURE": CREATE PROCEDURE query. "CREATE_TABLE": CREATE [OR REPLACE] TABLE without AS SELECT. "CREATE_TABLE_AS_SELECT": CREATE [OR REPLACE] TABLE ... AS SELECT ... . "CREATE_VIEW": CREATE [OR REPLACE] VIEW ... AS SELECT ... . "DROP_FUNCTION" : DROP FUNCTION query. "DROP_PROCEDURE": DROP PROCEDURE query. "DROP_TABLE": DROP TABLE query. "DROP_VIEW": DROP VIEW query. */ statementType: string; /** * [Output only] [Beta] Describes a timeline of job execution. */ timeline: outputs.bigquery.v2.QueryTimelineSampleResponse[]; /** * [Output only] Total bytes billed for the job. */ totalBytesBilled: string; /** * [Output only] Total bytes processed for the job. */ totalBytesProcessed: string; /** * [Output only] For dry-run jobs, totalBytesProcessed is an estimate and this field specifies the accuracy of the estimate. Possible values can be: UNKNOWN: accuracy of the estimate is unknown. PRECISE: estimate is precise. LOWER_BOUND: estimate is lower bound of what the query would cost. UPPER_BOUND: estimate is upper bound of what the query would cost. */ totalBytesProcessedAccuracy: string; /** * [Output only] Total number of partitions processed from all partitioned tables referenced in the job. */ totalPartitionsProcessed: string; /** * [Output only] Slot-milliseconds for the job. */ totalSlotMs: string; /** * Total bytes transferred for cross-cloud queries such as Cross Cloud Transfer and CREATE TABLE AS SELECT (CTAS). */ transferredBytes: string; /** * Standard SQL only: list of undeclared query parameters detected during a dry run validation. */ undeclaredQueryParameters: outputs.bigquery.v2.QueryParameterResponse[]; } interface JobStatistics3Response { /** * The number of bad records encountered. Note that if the job has failed because of more bad records encountered than the maximum allowed in the load job configuration, then this number can be less than the total number of bad records present in the input data. */ badRecords: string; /** * Number of bytes of source data in a load job. */ inputFileBytes: string; /** * Number of source files in a load job. */ inputFiles: string; /** * Size of the loaded data in bytes. Note that while a load job is in the running state, this value may change. */ outputBytes: string; /** * Number of rows imported in a load job. Note that while an import job is in the running state, this value may change. */ outputRows: string; } interface JobStatistics4Response { /** * Number of files per destination URI or URI pattern specified in the extract configuration. These values will be in the same order as the URIs specified in the 'destinationUris' field. */ destinationUriFileCounts: string[]; /** * Number of user bytes extracted into the result. This is the byte count as computed by BigQuery for billing purposes. */ inputBytes: string; } interface JobStatistics5Response { /** * Number of logical bytes copied to the destination table. */ copiedLogicalBytes: string; /** * Number of rows copied to the destination table. */ copiedRows: string; } interface JobStatisticsReservationUsageItemResponse { /** * Reservation name or "unreserved" for on-demand resources usage. */ name: string; /** * Slot-milliseconds the job spent in the given reservation. */ slotMs: string; } interface JobStatisticsResponse { /** * [TrustedTester] [Output-only] Job progress (0.0 -> 1.0) for LOAD and EXTRACT jobs. */ completionRatio: number; /** * Statistics for a copy job. */ copy: outputs.bigquery.v2.JobStatistics5Response; /** * Creation time of this job, in milliseconds since the epoch. This field will be present on all jobs. */ creationTime: string; /** * Statistics for data masking. Present only for query and extract jobs. */ dataMaskingStatistics: outputs.bigquery.v2.DataMaskingStatisticsResponse; /** * End time of this job, in milliseconds since the epoch. This field will be present whenever a job is in the DONE state. */ endTime: string; /** * Statistics for an extract job. */ extract: outputs.bigquery.v2.JobStatistics4Response; /** * Statistics for a load job. */ load: outputs.bigquery.v2.JobStatistics3Response; /** * Number of child jobs executed. */ numChildJobs: string; /** * If this is a child job, the id of the parent. */ parentJobId: string; /** * Statistics for a query job. */ query: outputs.bigquery.v2.JobStatistics2Response; /** * Quotas which delayed this job's start time. */ quotaDeferments: string[]; /** * Name of the primary reservation assigned to this job. Note that this could be different than reservations reported in the reservation usage field if parent reservations were used to execute this job. */ reservationId: string; /** * Job resource usage breakdown by reservation. */ reservationUsage: outputs.bigquery.v2.JobStatisticsReservationUsageItemResponse[]; /** * [Preview] Statistics for row-level security. Present only for query and extract jobs. */ rowLevelSecurityStatistics: outputs.bigquery.v2.RowLevelSecurityStatisticsResponse; /** * Statistics for a child job of a script. */ scriptStatistics: outputs.bigquery.v2.ScriptStatisticsResponse; /** * [Preview] Information of the session if this job is part of one. */ sessionInfo: outputs.bigquery.v2.SessionInfoResponse; /** * Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE. */ startTime: string; /** * [Deprecated] Use the bytes processed in the query statistics instead. * * @deprecated [Output-only] [Deprecated] Use the bytes processed in the query statistics instead. */ totalBytesProcessed: string; /** * Slot-milliseconds for the job. */ totalSlotMs: string; /** * [Alpha] Information of the multi-statement transaction if this job is part of one. */ transactionInfo: outputs.bigquery.v2.TransactionInfoResponse; } interface JobStatusResponse { /** * Final error result of the job. If present, indicates that the job has completed and was unsuccessful. */ errorResult: outputs.bigquery.v2.ErrorProtoResponse; /** * The first errors encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful. */ errors: outputs.bigquery.v2.ErrorProtoResponse[]; /** * Running state of the job. */ state: string; } interface JsonOptionsResponse { /** * [Optional] The character encoding of the data. The supported values are UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8. */ encoding: string; } interface MaterializedViewDefinitionResponse { /** * [Optional] Allow non incremental materialized view definition. The default value is "false". */ allowNonIncrementalDefinition: boolean; /** * [Optional] [TrustedTester] Enable automatic refresh of the materialized view when the base table is updated. The default value is "true". */ enableRefresh: boolean; /** * [TrustedTester] The time when this materialized view was last modified, in milliseconds since the epoch. */ lastRefreshTime: string; /** * [Optional] Max staleness of data that could be returned when materizlized view is queried (formatted as Google SQL Interval type). */ maxStaleness: string; /** * [Required] A query whose result is persisted. */ query: string; /** * [Optional] [TrustedTester] The maximum frequency at which this materialized view will be refreshed. The default value is "1800000" (30 minutes). */ refreshIntervalMs: string; } interface MlStatisticsResponse { /** * Results for all completed iterations. */ iterationResults: outputs.bigquery.v2.IterationResultResponse[]; /** * Maximum number of iterations specified as max_iterations in the 'CREATE MODEL' query. The actual number of iterations may be less than this number due to early stop. */ maxIterations: string; } /** * [Output-only, Beta] Model options used for the first training run. These options are immutable for subsequent training runs. Default values are used for any options not specified in the input query. */ interface ModelDefinitionModelOptionsResponse { labels: string[]; lossType: string; modelType: string; } interface ModelDefinitionResponse { /** * [Output-only, Beta] Model options used for the first training run. These options are immutable for subsequent training runs. Default values are used for any options not specified in the input query. */ modelOptions: outputs.bigquery.v2.ModelDefinitionModelOptionsResponse; /** * [Output-only, Beta] Information about ml training runs, each training run comprises of multiple iterations and there may be multiple training runs for the model if warm start is used or if a user decides to continue a previously cancelled query. */ trainingRuns: outputs.bigquery.v2.BqmlTrainingRunResponse[]; } interface ModelReferenceResponse { /** * The ID of the dataset containing this model. */ datasetId: string; /** * The ID of the model. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters. */ modelId: string; /** * The ID of the project containing this model. */ project: string; } interface ParquetOptionsResponse { /** * [Optional] Indicates whether to use schema inference specifically for Parquet LIST logical type. */ enableListInference: boolean; /** * [Optional] Indicates whether to infer Parquet ENUM logical type as STRING instead of BYTES by default. */ enumAsString: boolean; } interface QueryParameterResponse { /** * [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query. */ name: string; /** * [Required] The type of this parameter. */ parameterType: outputs.bigquery.v2.QueryParameterTypeResponse; /** * [Required] The value of this parameter. */ parameterValue: outputs.bigquery.v2.QueryParameterValueResponse; } interface QueryParameterTypeResponse { /** * [Optional] The type of the array's elements, if this is an array. */ arrayType: outputs.bigquery.v2.QueryParameterTypeResponse; /** * [Optional] The types of the fields of this struct, in order, if this is a struct. */ structTypes: outputs.bigquery.v2.QueryParameterTypeStructTypesItemResponse[]; /** * [Required] The top level type of this field. */ type: string; } interface QueryParameterTypeStructTypesItemResponse { /** * [Optional] Human-oriented description of the field. */ description: string; /** * [Optional] The name of this field. */ name: string; /** * [Required] The type of this field. */ type: outputs.bigquery.v2.QueryParameterTypeResponse; } interface QueryParameterValueResponse { /** * [Optional] The array values, if this is an array type. */ arrayValues: outputs.bigquery.v2.QueryParameterValueResponse[]; /** * [Optional] The struct field values, in order of the struct type's declaration. */ structValues: { [key: string]: string; }; /** * [Optional] The value of this value, if a simple scalar type. */ value: string; } interface QueryTimelineSampleResponse { /** * Total number of units currently being processed by workers. This does not correspond directly to slot usage. This is the largest value observed since the last sample. */ activeUnits: string; /** * Total parallel units of work completed by this query. */ completedUnits: string; /** * Milliseconds elapsed since the start of query execution. */ elapsedMs: string; /** * Units of work that can be scheduled immediately. Providing additional slots for these units of work will speed up the query, provided no other query in the reservation needs additional slots. */ estimatedRunnableUnits: string; /** * Total units of work remaining for the query. This number can be revised (increased or decreased) while the query is running. */ pendingUnits: string; /** * Cumulative slot-ms consumed by the query. */ totalSlotMs: string; } /** * [TrustedTester] [Required] Defines the ranges for range partitioning. */ interface RangePartitioningRangeResponse { /** * [TrustedTester] [Required] The end of range partitioning, exclusive. */ end: string; /** * [TrustedTester] [Required] The width of each interval. */ interval: string; /** * [TrustedTester] [Required] The start of range partitioning, inclusive. */ start: string; } interface RangePartitioningResponse { /** * [TrustedTester] [Required] The table is partitioned by this field. The field must be a top-level NULLABLE/REQUIRED field. The only supported type is INTEGER/INT64. */ field: string; /** * [TrustedTester] [Required] Defines the ranges for range partitioning. */ range: outputs.bigquery.v2.RangePartitioningRangeResponse; } /** * Options for a remote user-defined function. */ interface RemoteFunctionOptionsResponse { /** * Fully qualified name of the user-provided connection object which holds the authentication information to send requests to the remote service. Format: ```"projects/{projectId}/locations/{locationId}/connections/{connectionId}"``` */ connection: string; /** * Endpoint of the user-provided remote service, e.g. ```https://us-east1-my_gcf_project.cloudfunctions.net/remote_add``` */ endpoint: string; /** * Max number of rows in each batch sent to the remote service. If absent or if 0, BigQuery dynamically decides the number of rows in a batch. */ maxBatchingRows: string; /** * User-defined context as a set of key/value pairs, which will be sent as function invocation context together with batched arguments in the requests to the remote service. The total number of bytes of keys and values must be less than 8KB. */ userDefinedContext: { [key: string]: string; }; } interface RoutineReferenceResponse { /** * The ID of the dataset containing this routine. */ datasetId: string; /** * The ID of the project containing this routine. */ project: string; /** * The ID of the routine. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters. */ routineId: string; } interface RowAccessPolicyReferenceResponse { /** * The ID of the dataset containing this row access policy. */ datasetId: string; /** * The ID of the row access policy. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters. */ policyId: string; /** * The ID of the project containing this row access policy. */ project: string; /** * The ID of the table containing this row access policy. */ tableId: string; } interface RowLevelSecurityStatisticsResponse { /** * [Preview] Whether any accessed data was protected by row access policies. */ rowLevelSecurityApplied: boolean; } interface ScriptStackFrameResponse { /** * One-based end column. */ endColumn: number; /** * One-based end line. */ endLine: number; /** * Name of the active procedure, empty if in a top-level script. */ procedureId: string; /** * One-based start column. */ startColumn: number; /** * One-based start line. */ startLine: number; /** * Text of the current statement/expression. */ text: string; } interface ScriptStatisticsResponse { /** * Whether this child job was a statement or expression. */ evaluationKind: string; /** * Stack trace showing the line/column/procedure name of each frame on the stack at the point where the current evaluation happened. The leaf frame is first, the primary script is last. Never empty. */ stackFrames: outputs.bigquery.v2.ScriptStackFrameResponse[]; } interface SearchStatisticsResponse { /** * When index_usage_mode is UNUSED or PARTIALLY_USED, this field explains why index was not used in all or part of the search query. If index_usage_mode is FULLLY_USED, this field is not populated. */ indexUnusedReasons: outputs.bigquery.v2.IndexUnusedReasonResponse[]; /** * Specifies index usage mode for the query. */ indexUsageMode: string; } interface SessionInfoResponse { /** * // [Preview] Id of the session. */ sessionId: string; } interface SnapshotDefinitionResponse { /** * [Required] Reference describing the ID of the table that was snapshot. */ baseTableReference: outputs.bigquery.v2.TableReferenceResponse; /** * [Required] The time at which the base table was snapshot. This value is reported in the JSON response using RFC3339 format. */ snapshotTime: string; } interface SparkLoggingInfoResponse { /** * Project ID used for logging */ project: string; /** * Resource type used for logging */ resourceType: string; } /** * Options for a user-defined Spark routine. */ interface SparkOptionsResponse { /** * Archive files to be extracted into the working directory of each executor. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html). */ archiveUris: string[]; /** * Fully qualified name of the user-provided Spark connection object. Format: ```"projects/{project_id}/locations/{location_id}/connections/{connection_id}"``` */ connection: string; /** * Custom container image for the runtime environment. */ containerImage: string; /** * Files to be placed in the working directory of each executor. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html). */ fileUris: string[]; /** * JARs to include on the driver and executor CLASSPATH. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html). */ jarUris: string[]; /** * The fully qualified name of a class in jar_uris, for example, com.example.wordcount. Exactly one of main_class and main_jar_uri field should be set for Java/Scala language type. */ mainClass: string; /** * The main file/jar URI of the Spark application. Exactly one of the definition_body field and the main_file_uri field must be set for Python. Exactly one of main_class and main_file_uri field should be set for Java/Scala language type. */ mainFileUri: string; /** * Configuration properties as a set of key/value pairs, which will be passed on to the Spark application. For more information, see [Apache Spark](https://spark.apache.org/docs/latest/index.html) and the [procedure option list](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#procedure_option_list). */ properties: { [key: string]: string; }; /** * Python files to be placed on the PYTHONPATH for PySpark application. Supported file types: `.py`, `.egg`, and `.zip`. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html). */ pyFileUris: string[]; /** * Runtime version. If not specified, the default runtime version is used. */ runtimeVersion: string; } interface SparkStatisticsResponse { /** * Endpoints generated for the Spark job. */ endpoints: { [key: string]: string; }; /** * Logging info is used to generate a link to Cloud Logging. */ loggingInfo: outputs.bigquery.v2.SparkLoggingInfoResponse; /** * Spark job id if a Spark job is created successfully. */ sparkJobId: string; /** * Location where the Spark job is executed. */ sparkJobLocation: string; } /** * The data type of a variable such as a function argument. Examples include: * INT64: `{"typeKind": "INT64"}` * ARRAY: { "typeKind": "ARRAY", "arrayElementType": {"typeKind": "STRING"} } * STRUCT>: { "typeKind": "STRUCT", "structType": { "fields": [ { "name": "x", "type": {"typeKind": "STRING"} }, { "name": "y", "type": { "typeKind": "ARRAY", "arrayElementType": {"typeKind": "DATE"} } } ] } } */ interface StandardSqlDataTypeResponse { /** * The type of the array's elements, if type_kind = "ARRAY". */ arrayElementType: outputs.bigquery.v2.StandardSqlDataTypeResponse; /** * The type of the range's elements, if type_kind = "RANGE". */ rangeElementType: outputs.bigquery.v2.StandardSqlDataTypeResponse; /** * The fields of this struct, in order, if type_kind = "STRUCT". */ structType: outputs.bigquery.v2.StandardSqlStructTypeResponse; /** * The top level type of this field. Can be any GoogleSQL data type (e.g., "INT64", "DATE", "ARRAY"). */ typeKind: string; } /** * A field or a column. */ interface StandardSqlFieldResponse { /** * Optional. The name of this field. Can be absent for struct fields. */ name: string; /** * Optional. The type of this parameter. Absent if not explicitly specified (e.g., CREATE FUNCTION statement can omit the return type; in this case the output parameter does not have this "type" field). */ type: outputs.bigquery.v2.StandardSqlDataTypeResponse; } /** * The representation of a SQL STRUCT type. */ interface StandardSqlStructTypeResponse { /** * Fields within the struct. */ fields: outputs.bigquery.v2.StandardSqlFieldResponse[]; } /** * A table type */ interface StandardSqlTableTypeResponse { /** * The columns in this table type */ columns: outputs.bigquery.v2.StandardSqlFieldResponse[]; } interface StreamingbufferResponse { /** * A lower-bound estimate of the number of bytes currently in the streaming buffer. */ estimatedBytes: string; /** * A lower-bound estimate of the number of rows currently in the streaming buffer. */ estimatedRows: string; /** * Contains the timestamp of the oldest entry in the streaming buffer, in milliseconds since the epoch, if the streaming buffer is available. */ oldestEntryTime: string; } interface TableConstraintsForeignKeysItemColumnReferencesItemResponse { referencedColumn: string; referencingColumn: string; } interface TableConstraintsForeignKeysItemReferencedTableResponse { datasetId: string; project: string; tableId: string; } interface TableConstraintsForeignKeysItemResponse { columnReferences: outputs.bigquery.v2.TableConstraintsForeignKeysItemColumnReferencesItemResponse[]; name: string; referencedTable: outputs.bigquery.v2.TableConstraintsForeignKeysItemReferencedTableResponse; } /** * [Optional] The primary key of the table. */ interface TableConstraintsPrimaryKeyResponse { columns: string[]; } interface TableConstraintsResponse { /** * [Optional] The foreign keys of the tables. */ foreignKeys: outputs.bigquery.v2.TableConstraintsForeignKeysItemResponse[]; /** * [Optional] The primary key of the table. */ primaryKey: outputs.bigquery.v2.TableConstraintsPrimaryKeyResponse; } /** * [Optional] The categories attached to this field, used for field-level access control. */ interface TableFieldSchemaCategoriesResponse { /** * A list of category resource names. For example, "projects/1/taxonomies/2/categories/3". At most 5 categories are allowed. */ names: string[]; } interface TableFieldSchemaPolicyTagsResponse { /** * A list of category resource names. For example, "projects/1/location/eu/taxonomies/2/policyTags/3". At most 1 policy tag is allowed. */ names: string[]; } /** * Optional. The subtype of the RANGE, if the type of this field is RANGE. If the type is RANGE, this field is required. Possible values for the field element type of a RANGE include: - DATE - DATETIME - TIMESTAMP */ interface TableFieldSchemaRangeElementTypeResponse { /** * The field element type of a RANGE */ type: string; } interface TableFieldSchemaResponse { /** * [Optional] The categories attached to this field, used for field-level access control. */ categories: outputs.bigquery.v2.TableFieldSchemaCategoriesResponse; /** * Optional. Collation specification of the field. It only can be set on string type field. */ collation: string; /** * Optional. A SQL expression to specify the default value for this field. It can only be set for top level fields (columns). You can use struct or array expression to specify default value for the entire struct or array. The valid SQL expressions are: - Literals for all data types, including STRUCT and ARRAY. - Following functions: - CURRENT_TIMESTAMP - CURRENT_TIME - CURRENT_DATE - CURRENT_DATETIME - GENERATE_UUID - RAND - SESSION_USER - ST_GEOGPOINT - Struct or array composed with the above allowed functions, for example, [CURRENT_DATE(), DATE '2020-01-01'] */ defaultValueExpression: string; /** * [Optional] The field description. The maximum length is 1,024 characters. */ description: string; /** * [Optional] Describes the nested schema fields if the type property is set to RECORD. */ fields: outputs.bigquery.v2.TableFieldSchemaResponse[]; /** * [Optional] Maximum length of values of this field for STRINGS or BYTES. If max_length is not specified, no maximum length constraint is imposed on this field. If type = "STRING", then max_length represents the maximum UTF-8 length of strings in this field. If type = "BYTES", then max_length represents the maximum number of bytes in this field. It is invalid to set this field if type ≠ "STRING" and ≠ "BYTES". */ maxLength: string; /** * [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE. */ mode: string; /** * [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 300 characters. */ name: string; policyTags: outputs.bigquery.v2.TableFieldSchemaPolicyTagsResponse; /** * [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ "NUMERIC" and ≠ "BIGNUMERIC". If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = "NUMERIC": 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = "BIGNUMERIC": 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = "NUMERIC": 1 ≤ precision ≤ 29. - If type = "BIGNUMERIC": 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid. */ precision: string; /** * Optional. The subtype of the RANGE, if the type of this field is RANGE. If the type is RANGE, this field is required. Possible values for the field element type of a RANGE include: - DATE - DATETIME - TIMESTAMP */ rangeElementType: outputs.bigquery.v2.TableFieldSchemaRangeElementTypeResponse; /** * Optional. Rounding Mode specification of the field. It only can be set on NUMERIC or BIGNUMERIC type fields. */ roundingMode: string; /** * [Optional] See documentation for precision. */ scale: string; /** * [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD). */ type: string; } interface TableReferenceResponse { /** * [Required] The ID of the dataset containing this table. */ datasetId: string; /** * [Required] The ID of the project containing this table. */ project: string; /** * [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters. */ tableId: string; } interface TableSchemaResponse { /** * Describes the fields in a table. */ fields: outputs.bigquery.v2.TableFieldSchemaResponse[]; } interface TimePartitioningResponse { /** * [Optional] Number of milliseconds for which to keep the storage for partitions in the table. The storage in a partition will have an expiration time of its partition time plus this value. */ expirationMs: string; /** * [Beta] [Optional] If not set, the table is partitioned by pseudo column, referenced via either '_PARTITIONTIME' as TIMESTAMP type, or '_PARTITIONDATE' as DATE type. If field is specified, the table is instead partitioned by this field. The field must be a top-level TIMESTAMP or DATE field. Its mode must be NULLABLE or REQUIRED. */ field: string; requirePartitionFilter: boolean; /** * [Required] The supported types are DAY, HOUR, MONTH, and YEAR, which will generate one partition per day, hour, month, and year, respectively. When the type is not specified, the default behavior is DAY. */ type: string; } interface TransactionInfoResponse { /** * // [Alpha] Id of the transaction. */ transactionId: string; } /** * This is used for defining User Defined Function (UDF) resources only when using legacy SQL. Users of Standard SQL should leverage either DDL (e.g. CREATE [TEMPORARY] FUNCTION ... ) or the Routines API to define UDF resources. For additional information on migrating, see: https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions */ interface UserDefinedFunctionResourceResponse { /** * [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code. */ inlineCode: string; /** * [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path). */ resourceUri: string; } interface ViewDefinitionResponse { /** * [Required] A query that BigQuery executes when the view is referenced. */ query: string; /** * True if the column names are explicitly specified. For example by using the 'CREATE VIEW v(c1, c2) AS ...' syntax. Can only be set using BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ */ useExplicitColumnNames: boolean; /** * Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value. */ useLegacySql: boolean; /** * Describes user-defined function resources used in the query. */ userDefinedFunctionResources: outputs.bigquery.v2.UserDefinedFunctionResourceResponse[]; } } } export declare namespace bigqueryconnection { namespace v1beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.bigqueryconnection.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.bigqueryconnection.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Credential info for the Cloud SQL. */ interface CloudSqlCredentialResponse { /** * The password for the credential. */ password: string; /** * The username for the credential. */ username: string; } /** * Connection properties specific to the Cloud SQL. */ interface CloudSqlPropertiesResponse { /** * Input only. Cloud SQL credential. */ credential: outputs.bigqueryconnection.v1beta1.CloudSqlCredentialResponse; /** * Database name. */ database: string; /** * Cloud SQL instance ID in the form `project:location:instance`. */ instanceId: string; /** * The account ID of the service used for the purpose of this connection. When the connection is used in the context of an operation in BigQuery, this service account will serve as the identity being used for connecting to the CloudSQL instance specified in this connection. */ serviceAccountId: string; /** * Type of the Cloud SQL database. */ type: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace bigquerydatapolicy { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.bigquerydatapolicy.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.bigquerydatapolicy.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * The data masking policy that is used to specify data masking rule. */ interface DataMaskingPolicyResponse { /** * A predefined masking expression. */ predefinedExpression: string; /** * The name of the BigQuery routine that contains the custom masking routine, in the format of `projects/{project_number}/datasets/{dataset_id}/routines/{routine_id}`. */ routine: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace bigquerydatatransfer { namespace v1 { /** * Represents preferences for sending email notifications for transfer run events. */ interface EmailPreferencesResponse { /** * If true, email notifications will be sent on transfer run failures. */ enableFailureEmail: boolean; } /** * Represents the encryption configuration for a transfer. */ interface EncryptionConfigurationResponse { /** * The name of the KMS key used for encrypting BigQuery data. */ kmsKeyName: string; } /** * Options customizing the data transfer schedule. */ interface ScheduleOptionsResponse { /** * If true, automatic scheduling of data transfer runs for this configuration will be disabled. The runs can be started on ad-hoc basis using StartManualTransferRuns API. When automatic scheduling is disabled, the TransferConfig.schedule field will be ignored. */ disableAutoScheduling: boolean; /** * Defines time to stop scheduling transfer runs. A transfer run cannot be scheduled at or after the end time. The end time can be changed at any moment. The time when a data transfer can be trigerred manually is not limited by this option. */ endTime: string; /** * Specifies time to start scheduling transfer runs. The first run will be scheduled at or after the start time according to a recurrence pattern defined in the schedule string. The start time can be changed at any moment. The time when a data transfer can be trigerred manually is not limited by this option. */ startTime: string; } /** * Information about a user. */ interface UserInfoResponse { /** * E-mail address of the user. */ email: string; } } } export declare namespace bigqueryreservation { namespace v1 { /** * Auto scaling settings. */ interface AutoscaleResponse { /** * The slot capacity added to this reservation when autoscale happens. Will be between [0, max_slots]. */ currentSlots: string; /** * Number of slots to be scaled when needed. */ maxSlots: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } namespace v1beta1 { /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } } export declare namespace bigtableadmin { namespace v2 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.bigtableadmin.v2.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Limits for the number of nodes a Cluster can autoscale up/down to. */ interface AutoscalingLimitsResponse { /** * Maximum number of nodes to scale up to. */ maxServeNodes: number; /** * Minimum number of nodes to scale down to. */ minServeNodes: number; } /** * The Autoscaling targets for a Cluster. These determine the recommended nodes. */ interface AutoscalingTargetsResponse { /** * The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80, otherwise it will return INVALID_ARGUMENT error. */ cpuUtilizationPercent: number; /** * The storage utilization that the Autoscaler should be trying to achieve. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16TiB) for an HDD cluster, otherwise it will return INVALID_ARGUMENT error. If this value is set to 0, it will be treated as if it were set to the default value: 2560 for SSD, 8192 for HDD. */ storageUtilizationGibPerNode: number; } /** * Information about a backup. */ interface BackupInfoResponse { /** * Name of the backup. */ backup: string; /** * This time that the backup was finished. Row data in the backup will be no newer than this timestamp. */ endTime: string; /** * Name of the backup from which this backup was copied. If a backup is not created by copying a backup, this field will be empty. Values are of the form: projects//instances//backups/. */ sourceBackup: string; /** * Name of the table the backup was created from. */ sourceTable: string; /** * The time that the backup was started. Row data in the backup will be no older than this timestamp. */ startTime: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.bigtableadmin.v2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Change stream configuration. */ interface ChangeStreamConfigResponse { /** * How long the change stream should be retained. Change stream data older than the retention period will not be returned when reading the change stream from the table. Values must be at least 1 day and at most 7 days, and will be truncated to microsecond granularity. */ retentionPeriod: string; } /** * Autoscaling config for a cluster. */ interface ClusterAutoscalingConfigResponse { /** * Autoscaling limits for this cluster. */ autoscalingLimits: outputs.bigtableadmin.v2.AutoscalingLimitsResponse; /** * Autoscaling targets for this cluster. */ autoscalingTargets: outputs.bigtableadmin.v2.AutoscalingTargetsResponse; } /** * Configuration for a cluster. */ interface ClusterConfigResponse { /** * Autoscaling configuration for this cluster. */ clusterAutoscalingConfig: outputs.bigtableadmin.v2.ClusterAutoscalingConfigResponse; } /** * Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. */ interface EncryptionConfigResponse { /** * Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}` */ kmsKeyName: string; } /** * Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status. */ interface EncryptionInfoResponse { /** * The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest. */ encryptionStatus: outputs.bigtableadmin.v2.StatusResponse; /** * The type of encryption used to protect this resource. */ encryptionType: string; /** * The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table. */ kmsKeyVersion: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes consistency to improve availability. */ interface MultiClusterRoutingUseAnyResponse { /** * The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all clusters are eligible. */ clusterIds: string[]; } /** * Information about a table restore. */ interface RestoreInfoResponse { /** * Information about the backup used to restore the table. The backup may no longer exist. */ backupInfo: outputs.bigtableadmin.v2.BackupInfoResponse; /** * The type of the restore source. */ sourceType: string; } /** * Unconditionally routes all read/write requests to a specific cluster. This option preserves read-your-writes consistency but does not improve availability. */ interface SingleClusterRoutingResponse { /** * Whether or not `CheckAndMutateRow` and `ReadModifyWriteRow` requests are allowed by this app profile. It is unsafe to send these requests to the same table/row/column in multiple clusters. */ allowTransactionalWrites: boolean; /** * The cluster to which read/write requests should be routed. */ clusterId: string; } /** * Standard options for isolating this app profile's traffic from other use cases. */ interface StandardIsolationResponse { /** * The priority of requests sent using this app profile. */ priority: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Approximate statistics related to a table. These statistics are calculated infrequently, while simultaneously, data in the table can change rapidly. Thus the values reported here (e.g. row count) are very likely out-of date, even the instant they are received in this API. Thus, only treat these values as approximate. IMPORTANT: Everything below is approximate, unless otherwise specified. */ interface TableStatsResponse { /** * How many cells are present per column (column family, column qualifier) combinations, averaged over all columns in all rows in the table. e.g. A table with 2 rows: * A row with 3 cells in "family:col" and 1 cell in "other:col" (4 cells / 2 columns) * A row with 1 cell in "family:col", 7 cells in "family:other_col", and 7 cells in "other:data" (15 cells / 3 columns) would report (4 + 15)/(2 + 3) = 3.8 in this field. */ averageCellsPerColumn: number; /** * How many (column family, column qualifier) combinations are present per row in the table, averaged over all rows in the table. e.g. A table with 2 rows: * A row with cells in "family:col" and "other:col" (2 distinct columns) * A row with cells in "family:col", "family:other_col", and "other:data" (3 distinct columns) would report (2 + 3)/2 = 2.5 in this field. */ averageColumnsPerRow: number; /** * This is roughly how many bytes would be needed to read the entire table (e.g. by streaming all contents out). */ logicalDataBytes: string; /** * How many rows are in the table. */ rowCount: string; } } } export declare namespace billingbudgets { namespace v1 { /** * The budgeted amount for each usage period. */ interface GoogleCloudBillingBudgetsV1BudgetAmountResponse { /** * Use the last period's actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget's time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period. */ lastPeriodAmount: outputs.billingbudgets.v1.GoogleCloudBillingBudgetsV1LastPeriodAmountResponse; /** * A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output. */ specifiedAmount: outputs.billingbudgets.v1.GoogleTypeMoneyResponse; } /** * All date times begin at 12 AM US and Canadian Pacific Time (UTC-8). */ interface GoogleCloudBillingBudgetsV1CustomPeriodResponse { /** * Optional. The end date of the time period. Budgets with elapsed end date won't be processed. If unset, specifies to track all usage incurred since the start_date. */ endDate: outputs.billingbudgets.v1.GoogleTypeDateResponse; /** * The start date must be after January 1, 2017. */ startDate: outputs.billingbudgets.v1.GoogleTypeDateResponse; } /** * A filter for a budget, limiting the scope of the cost to calculate. */ interface GoogleCloudBillingBudgetsV1FilterResponse { /** * Optional. Specifies to track usage for recurring calendar period. For example, assume that CalendarPeriod.QUARTER is set. The budget tracks usage from April 1 to June 30, when the current calendar month is April, May, June. After that, it tracks usage from July 1 to September 30 when the current calendar month is July, August, September, so on. */ calendarPeriod: string; /** * Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type). If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. */ creditTypes: string[]; /** * Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`. */ creditTypesTreatment: string; /** * Optional. Specifies to track usage from any start date (required) to any end date (optional). This time period is static, it does not recur. */ customPeriod: outputs.billingbudgets.v1.GoogleCloudBillingBudgetsV1CustomPeriodResponse; /** * Optional. A single label and value pair specifying that usage from only this set of labeled resources should be included in the budget. If omitted, the report includes all labeled and unlabeled usage. An object containing a single `"key": value` pair. Example: `{ "name": "wrench" }`. _Currently, multiple entries or multiple values per entry are not allowed._ */ labels: { [key: string]: string; }; /** * Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report includes all usage for the billing account, regardless of which project the usage occurred on. */ projects: string[]; /** * Optional. A set of folder and organization names of the form `folders/{folderId}` or `organizations/{organizationId}`, specifying that usage from only this set of folders and organizations should be included in the budget. If omitted, the budget includes all usage that the billing account pays for. If the folder or organization contains projects that are paid for by a different Cloud Billing account, the budget *doesn't* apply to those projects. */ resourceAncestors: string[]; /** * Optional. A set of services of the form `services/{service_id}`, specifying that usage from only this set of services should be included in the budget. If omitted, the report includes usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api. */ services: string[]; /** * Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, specifying that usage from only this set of subaccounts should be included in the budget. If a subaccount is set to the name of the parent account, usage from the parent account is included. If the field is omitted, the report includes usage from the parent account and all subaccounts, if they exist. */ subaccounts: string[]; } /** * Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period's spend; that is, there are no other options yet. LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. */ interface GoogleCloudBillingBudgetsV1LastPeriodAmountResponse { } /** * NotificationsRule defines notifications that are sent based on budget spend and thresholds. */ interface GoogleCloudBillingBudgetsV1NotificationsRuleResponse { /** * Optional. When set to true, disables default notifications sent when a threshold is exceeded. Default notifications are sent to those with Billing Account Administrator and Billing Account User IAM roles for the target account. */ disableDefaultIamRecipients: boolean; /** * Optional. When set to true, and when the budget has a single project configured, notifications will be sent to project level recipients of that project. This field will be ignored if the budget has multiple or no project configured. Currently, project level recipients are the users with `Owner` role on a cloud project. */ enableProjectLevelRecipients: boolean; /** * Optional. Email targets to send notifications to when a threshold is exceeded. This is in addition to the `DefaultIamRecipients` who receive alert emails based on their billing account IAM role. The value is the full REST resource name of a Cloud Monitoring email notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 email notifications are allowed. To customize budget alert email recipients with monitoring notification channels, you _must create the monitoring notification channels before you link them to a budget_. For guidance on setting up notification channels to use with budgets, see [Customize budget alert email recipients](https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients). For Cloud Billing budget alerts, you _must use email notification channels_. The other types of notification channels are _not_ supported, such as Slack, SMS, or PagerDuty. If you want to [send budget notifications to Slack](https://cloud.google.com/billing/docs/how-to/notify#send_notifications_to_slack), use a pubsubTopic and configure [programmatic notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications). */ monitoringNotificationChannels: string[]; /** * Optional. The name of the Pub/Sub topic where budget-related messages are published, in the form `projects/{project_id}/topics/{topic_id}`. Updates are sent to the topic at regular intervals; the timing of the updates is not dependent on the [threshold rules](#thresholdrule) you've set. Note that if you want your [Pub/Sub JSON object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) to contain data for `alertThresholdExceeded`, you need at least one [alert threshold rule](#thresholdrule). When you set threshold rules, you must also enable at least one of the email notification options, either using the default IAM recipients or Cloud Monitoring email notification channels. To use Pub/Sub topics with budgets, you must do the following: 1. Create the Pub/Sub topic before connecting it to your budget. For guidance, see [Manage programmatic budget alert notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications). 2. Grant the API caller the `pubsub.topics.setIamPolicy` permission on the Pub/Sub topic. If not set, the API call fails with PERMISSION_DENIED. For additional details on Pub/Sub roles and permissions, see [Permissions required for this task](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task). */ pubsubTopic: string; /** * Optional. Required when NotificationsRule.pubsub_topic is set. The schema version of the notification sent to NotificationsRule.pubsub_topic. Only "1.0" is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format. */ schemaVersion: string; } /** * ThresholdRule contains the definition of a threshold. Threshold rules define the triggering events used to generate a budget notification email. When a threshold is crossed (spend exceeds the specified percentages of the budget), budget alert emails are sent to the email recipients you specify in the [NotificationsRule](#notificationsrule). Threshold rules also affect the fields included in the [JSON data object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) sent to a Pub/Sub topic. Threshold rules are _required_ if using email notifications. Threshold rules are _optional_ if only setting a [`pubsubTopic` NotificationsRule](#NotificationsRule), unless you want your JSON data object to include data about the thresholds you set. For more information, see [set budget threshold rules and actions](https://cloud.google.com/billing/docs/how-to/budgets#budget-actions). */ interface GoogleCloudBillingBudgetsV1ThresholdRuleResponse { /** * Optional. The type of basis used to determine if spend has passed the threshold. Behavior defaults to CURRENT_SPEND if not set. */ spendBasis: string; /** * Send an alert when this threshold is exceeded. This is a 1.0-based percentage, so 0.5 = 50%. Validation: non-negative number. */ thresholdPercent: number; } /** * Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp */ interface GoogleTypeDateResponse { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day: number; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month: number; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year: number; } /** * Represents an amount of money with its currency type. */ interface GoogleTypeMoneyResponse { /** * The three-letter currency code defined in ISO 4217. */ currencyCode: string; /** * Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. */ nanos: number; /** * The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. */ units: string; } } namespace v1beta1 { /** * AllUpdatesRule defines notifications that are sent based on budget spend and thresholds. */ interface GoogleCloudBillingBudgetsV1beta1AllUpdatesRuleResponse { /** * Optional. When set to true, disables default notifications sent when a threshold is exceeded. Default notifications are sent to those with Billing Account Administrator and Billing Account User IAM roles for the target account. */ disableDefaultIamRecipients: boolean; /** * Optional. When set to true, and when the budget has a single project configured, notifications will be sent to project level recipients of that project. This field will be ignored if the budget has multiple or no project configured. Currently, project level recipients are the users with `Owner` role on a cloud project. */ enableProjectLevelRecipients: boolean; /** * Optional. Targets to send notifications to when a threshold is exceeded. This is in addition to default recipients who have billing account IAM roles. The value is the full REST resource name of a monitoring notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 channels are allowed. See https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients for more details. */ monitoringNotificationChannels: string[]; /** * Optional. The name of the Pub/Sub topic where budget related messages will be published, in the form `projects/{project_id}/topics/{topic_id}`. Updates are sent at regular intervals to the topic. The topic needs to be created before the budget is created; see https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications for more details. Caller is expected to have `pubsub.topics.setIamPolicy` permission on the topic when it's set for a budget, otherwise, the API call will fail with PERMISSION_DENIED. See https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task for more details on Pub/Sub roles and permissions. */ pubsubTopic: string; /** * Optional. Required when AllUpdatesRule.pubsub_topic is set. The schema version of the notification sent to AllUpdatesRule.pubsub_topic. Only "1.0" is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format. */ schemaVersion: string; } /** * The budgeted amount for each usage period. */ interface GoogleCloudBillingBudgetsV1beta1BudgetAmountResponse { /** * Use the last period's actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget's time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period. */ lastPeriodAmount: outputs.billingbudgets.v1beta1.GoogleCloudBillingBudgetsV1beta1LastPeriodAmountResponse; /** * A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output. */ specifiedAmount: outputs.billingbudgets.v1beta1.GoogleTypeMoneyResponse; } /** * All date times begin at 12 AM US and Canadian Pacific Time (UTC-8). */ interface GoogleCloudBillingBudgetsV1beta1CustomPeriodResponse { /** * Optional. The end date of the time period. Budgets with elapsed end date won't be processed. If unset, specifies to track all usage incurred since the start_date. */ endDate: outputs.billingbudgets.v1beta1.GoogleTypeDateResponse; /** * The start date must be after January 1, 2017. */ startDate: outputs.billingbudgets.v1beta1.GoogleTypeDateResponse; } /** * A filter for a budget, limiting the scope of the cost to calculate. */ interface GoogleCloudBillingBudgetsV1beta1FilterResponse { /** * Optional. Specifies to track usage for recurring calendar period. For example, assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when the current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when the current calendar month is July, August, September, so on. */ calendarPeriod: string; /** * Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type). If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. */ creditTypes: string[]; /** * Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`. */ creditTypesTreatment: string; /** * Optional. Specifies to track usage from any start date (required) to any end date (optional). This time period is static, it does not recur. */ customPeriod: outputs.billingbudgets.v1beta1.GoogleCloudBillingBudgetsV1beta1CustomPeriodResponse; /** * Optional. A single label and value pair specifying that usage from only this set of labeled resources should be included in the budget. If omitted, the report will include all labeled and unlabeled usage. An object containing a single `"key": value` pair. Example: `{ "name": "wrench" }`. _Currently, multiple entries or multiple values per entry are not allowed._ */ labels: { [key: string]: string; }; /** * Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report will include all usage for the billing account, regardless of which project the usage occurred on. */ projects: string[]; /** * Optional. A set of folder and organization names of the form `folders/{folderId}` or `organizations/{organizationId}`, specifying that usage from only this set of folders and organizations should be included in the budget. If omitted, the budget includes all usage that the billing account pays for. If the folder or organization contains projects that are paid for by a different Cloud Billing account, the budget *doesn't* apply to those projects. */ resourceAncestors: string[]; /** * Optional. A set of services of the form `services/{service_id}`, specifying that usage from only this set of services should be included in the budget. If omitted, the report will include usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api. */ services: string[]; /** * Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, specifying that usage from only this set of subaccounts should be included in the budget. If a subaccount is set to the name of the parent account, usage from the parent account will be included. If omitted, the report will include usage from the parent account and all subaccounts, if they exist. */ subaccounts: string[]; } /** * Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period's spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period's spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. */ interface GoogleCloudBillingBudgetsV1beta1LastPeriodAmountResponse { } /** * ThresholdRule contains the definition of a threshold. Threshold rules define the triggering events used to generate a budget notification email. When a threshold is crossed (spend exceeds the specified percentages of the budget), budget alert emails are sent to the email recipients you specify in the [NotificationsRule](#notificationsrule). Threshold rules also affect the fields included in the [JSON data object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) sent to a Pub/Sub topic. Threshold rules are _required_ if using email notifications. Threshold rules are _optional_ if only setting a [`pubsubTopic` NotificationsRule](#NotificationsRule), unless you want your JSON data object to include data about the thresholds you set. For more information, see [set budget threshold rules and actions](https://cloud.google.com/billing/docs/how-to/budgets#budget-actions). */ interface GoogleCloudBillingBudgetsV1beta1ThresholdRuleResponse { /** * Optional. The type of basis used to determine if spend has passed the threshold. Behavior defaults to CURRENT_SPEND if not set. */ spendBasis: string; /** * Send an alert when this threshold is exceeded. This is a 1.0-based percentage, so 0.5 = 50%. Validation: non-negative number. */ thresholdPercent: number; } /** * Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp */ interface GoogleTypeDateResponse { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day: number; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month: number; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year: number; } /** * Represents an amount of money with its currency type. */ interface GoogleTypeMoneyResponse { /** * The three-letter currency code defined in ISO 4217. */ currencyCode: string; /** * Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. */ nanos: number; /** * The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. */ units: string; } } } export declare namespace binaryauthorization { namespace v1 { /** * An attestation authenticator that will be used to verify attestations. Typically this is just a set of public keys. Conceptually, an authenticator can be treated as always returning either "authenticated" or "not authenticated" when presented with a signed attestation (almost always assumed to be a [DSSE](https://github.com/secure-systems-lab/dsse) attestation). The details of how an authenticator makes this decision are specific to the type of 'authenticator' that this message wraps. */ interface AttestationAuthenticatorResponse { /** * Optional. A user-provided name for this `AttestationAuthenticator`. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results. */ displayName: string; /** * Optional. A set of raw PKIX SubjectPublicKeyInfo format public keys. If any public key in the set validates the attestation signature, then the signature is considered authenticated (i.e. any one key is sufficient to authenticate). */ pkixPublicKeySet: outputs.binaryauthorization.v1.PkixPublicKeySetResponse; } /** * Specifies the locations for fetching the provenance attestations. */ interface AttestationSourceResponse { /** * The IDs of the GCP projects storing the SLSA attestations as Container Analysis Occurrences. */ containerAnalysisAttestationProjects: string[]; } /** * An attestor public key that will be used to verify attestations signed by this attestor. */ interface AttestorPublicKeyResponse { /** * ASCII-armored representation of a PGP public key, as the entire output by the command `gpg --export --armor foo@example.com` (either LF or CRLF line endings). When using this field, `id` should be left blank. The Binary Authorization API handlers will calculate the ID and fill it in automatically. Binary Authorization computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as upper-case hex. If `id` is provided by the caller, it will be overwritten by the API-calculated ID. */ asciiArmoredPgpPublicKey: string; /** * Optional. A descriptive comment. This field may be updated. */ comment: string; /** * A raw PKIX SubjectPublicKeyInfo format public key. NOTE: `id` may be explicitly provided by the caller when using this type of public key, but it MUST be a valid RFC3986 URI. If `id` is left blank, a default one will be computed based on the digest of the DER encoding of the public key. */ pkixPublicKey: outputs.binaryauthorization.v1.PkixPublicKeyResponse; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.binaryauthorization.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * A single check to perform against a Pod. Checks are grouped into `CheckSet` objects, which are defined by the top-level policy. */ interface CheckResponse { /** * Optional. A special-case check that always denies. Note that this still only applies when the scope of the `CheckSet` applies and the image isn't exempted by an image allowlist. This check is primarily useful for testing, or to set the default behavior for all unmatched scopes to "deny". */ alwaysDeny: boolean; /** * Optional. A user-provided name for this check. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results. */ displayName: string; /** * Optional. Images exempted from this check. If any of the patterns match the image url, the check will not be evaluated. */ imageAllowlist: outputs.binaryauthorization.v1.ImageAllowlistResponse; /** * Optional. Require that an image is no older than a configured expiration time. Image age is determined by its upload time. */ imageFreshnessCheck: outputs.binaryauthorization.v1.ImageFreshnessCheckResponse; /** * Optional. Require a SimpleSigning-type attestation for every image in the deployment. */ simpleSigningAttestationCheck: outputs.binaryauthorization.v1.SimpleSigningAttestationCheckResponse; /** * Optional. Require that an image was built by a trusted builder (such as Google Cloud Build), meets requirements for Supply chain Levels for Software Artifacts (SLSA), and was built from a trusted source code repostitory. */ slsaCheck: outputs.binaryauthorization.v1.SlsaCheckResponse; /** * Optional. Require that an image lives in a trusted directory. */ trustedDirectoryCheck: outputs.binaryauthorization.v1.TrustedDirectoryCheckResponse; /** * Optional. Require that an image does not contain vulnerabilities that violate the configured rules, such as based on severity levels. */ vulnerabilityCheck: outputs.binaryauthorization.v1.VulnerabilityCheckResponse; } /** * A conjunction of policy checks, scoped to a particular namespace or Kubernetes service account. In order for evaluation of a `CheckSet` to return "allowed" for a given image in a given Pod, one of the following conditions must be satisfied: * The image is explicitly exempted by an entry in `image_allowlist`, OR * ALL of the `checks` evaluate to "allowed". */ interface CheckSetResponse { /** * Optional. The checks to apply. The ultimate result of evaluating the check set will be "allow" if and only if every check in `checks` evaluates to "allow". If `checks` is empty, the default behavior is "always allow". */ checks: outputs.binaryauthorization.v1.CheckResponse[]; /** * Optional. A user-provided name for this `CheckSet`. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results. */ displayName: string; /** * Optional. Images exempted from this `CheckSet`. If any of the patterns match the image being evaluated, no checks in the `CheckSet` will be evaluated. */ imageAllowlist: outputs.binaryauthorization.v1.ImageAllowlistResponse; /** * Optional. The scope to which this `CheckSet` applies. If unset or an empty string (the default), applies to all namespaces and service accounts. See the `Scope` message documentation for details on scoping rules. */ scope: outputs.binaryauthorization.v1.ScopeResponse; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A Binary Authorization policy for a GKE cluster. This is one type of policy that can occur as a `PlatformPolicy`. */ interface GkePolicyResponse { /** * Optional. The `CheckSet` objects to apply, scoped by namespace or namespace and service account. Exactly one `CheckSet` will be evaluated for a given Pod (unless the list is empty, in which case the behavior is "always allow"). If multiple `CheckSet` objects have scopes that match the namespace and service account of the Pod being evaluated, only the `CheckSet` with the MOST SPECIFIC scope will match. `CheckSet` objects must be listed in order of decreasing specificity, i.e. if a scope matches a given service account (which must include the namespace), it must come before a `CheckSet` with a scope matching just that namespace. This property is enforced by server-side validation. The purpose of this restriction is to ensure that if more than one `CheckSet` matches a given Pod, the `CheckSet` that will be evaluated will always be the first in the list to match (because if any other matches, it must be less specific). If `check_sets` is empty, the default behavior is to allow all images. If `check_sets` is non-empty, the last `check_sets` entry must always be a `CheckSet` with no scope set, i.e. a catchall to handle any situation not caught by the preceding `CheckSet` objects. */ checkSets: outputs.binaryauthorization.v1.CheckSetResponse[]; /** * Optional. Images exempted from this policy. If any of the patterns match the image being evaluated, the rest of the policy will not be evaluated. */ imageAllowlist: outputs.binaryauthorization.v1.ImageAllowlistResponse; } /** * Images that are exempted from normal checks based on name pattern only. */ interface ImageAllowlistResponse { /** * A disjunction of image patterns to allow. If any of these patterns match, then the image is considered exempted by this allowlist. */ allowPattern: string[]; } /** * An image freshness check, which rejects images that were uploaded before the set number of days ago to the supported repositories. */ interface ImageFreshnessCheckResponse { /** * The max number of days that is allowed since the image was uploaded. Must be greater than zero. */ maxUploadAgeDays: number; } /** * A public key in the PkixPublicKey [format](https://tools.ietf.org/html/rfc5280#section-4.1.2.7). Public keys of this type are typically textually encoded using the PEM format. */ interface PkixPublicKeyResponse { /** * Optional. The ID of this public key. Signatures verified by Binary Authorization must include the ID of the public key that can be used to verify them, and that ID must match the contents of this field exactly. This may be explicitly provided by the caller, but it MUST be a valid RFC3986 URI. If `key_id` is left blank and this `PkixPublicKey` is not used in the context of a wrapper (see next paragraph), a default key ID will be computed based on the digest of the DER encoding of the public key. If this `PkixPublicKey` is used in the context of a wrapper that has its own notion of key ID (e.g. `AttestorPublicKey`), then this field can either: * Match that value exactly. * Or be left blank, in which case it behaves exactly as though it is equal to that wrapper value. */ keyId: string; /** * A PEM-encoded public key, as described in https://tools.ietf.org/html/rfc7468#section-13 */ publicKeyPem: string; /** * The signature algorithm used to verify a message against a signature using this key. These signature algorithm must match the structure and any object identifiers encoded in `public_key_pem` (i.e. this algorithm must match that of the public key). */ signatureAlgorithm: string; } /** * A bundle of PKIX public keys, used to authenticate attestation signatures. Generally, a signature is considered to be authenticated by a `PkixPublicKeySet` if any of the public keys verify it (i.e. it is an "OR" of the keys). */ interface PkixPublicKeySetResponse { /** * `pkix_public_keys` must have at least one entry. */ pkixPublicKeys: outputs.binaryauthorization.v1.PkixPublicKeyResponse[]; } /** * A scope specifier for `CheckSet` objects. */ interface ScopeResponse { /** * Optional. Matches all Kubernetes service accounts in the provided namespace, unless a more specific `kubernetes_service_account` scope already matched. */ kubernetesNamespace: string; /** * Optional. Matches a single Kubernetes service account, e.g. `my-namespace:my-service-account`. `kubernetes_service_account` scope is always more specific than `kubernetes_namespace` scope for the same namespace. */ kubernetesServiceAccount: string; } /** * Require a signed [DSSE](https://github.com/secure-systems-lab/dsse) attestation with type SimpleSigning. */ interface SimpleSigningAttestationCheckResponse { /** * The authenticators required by this check to verify an attestation. Typically this is one or more PKIX public keys for signature verification. Only one authenticator needs to consider an attestation verified in order for an attestation to be considered fully authenticated. In otherwords, this list of authenticators is an "OR" of the authenticator results. At least one authenticator is required. */ attestationAuthenticators: outputs.binaryauthorization.v1.AttestationAuthenticatorResponse[]; /** * Optional. The projects where attestations are stored as Container Analysis Occurrences. Only one attestation needs to successfully verify an image for this check to pass, so a single verified attestation found in any of `container_analysis_attestation_projects` is sufficient for the check to pass. When fetching Occurrences from Container Analysis, only 'AttestationOccurrence' kinds are considered. In the future, additional Occurrence kinds may be added to the query. */ containerAnalysisAttestationProjects: string[]; } /** * A SLSA provenance attestation check, which ensures that images are built by a trusted builder using source code from its trusted repositories only. */ interface SlsaCheckResponse { /** * Specifies a list of verification rules for the SLSA attestations. An image is considered compliant with the SlsaCheck if any of the rules are satisfied. */ rules: outputs.binaryauthorization.v1.VerificationRuleResponse[]; } /** * A trusted directory check, which rejects images that do not come from the set of user-configured trusted directories. */ interface TrustedDirectoryCheckResponse { /** * List of trusted directory patterns. A pattern is in the form "registry/path/to/directory". The registry domain part is defined as two or more dot-separated words, e.g., `us.pkg.dev`, or `gcr.io`. Additionally, `*` can be used in three ways as wildcards: 1. leading `*` to match varying prefixes in registry subdomain (useful for location prefixes); 2. trailing `*` after registry/ to match varying endings; 3. trailing `**` after registry/ to match "/" as well. For example: -- `gcr.io/my-project/my-repo` is valid to match a single directory -- `*-docker.pkg.dev/my-project/my-repo` or `*.gcr.io/my-project` are valid to match varying prefixes -- `gcr.io/my-project/*` will match all direct directories in `my-project` -- `gcr.io/my-project/**` would match all directories in `my-project` -- `gcr.i*` is not allowed since the registry is not completely specified -- `sub*domain.gcr.io/nginx` is not valid because only leading `*` or trailing `*` are allowed. -- `*pkg.dev/my-project/my-repo` is not valid because leading `*` can only match subdomain -- `**-docker.pkg.dev` is not valid because one leading `*` is allowed, and that it cannot match `/` */ trustedDirPatterns: string[]; } /** * An user owned Grafeas note references a Grafeas Attestation.Authority Note created by the user. */ interface UserOwnedGrafeasNoteResponse { /** * This field will contain the service account email address that this attestor will use as the principal when querying Container Analysis. Attestor administrators must grant this service account the IAM role needed to read attestations from the note_reference in Container Analysis (`containeranalysis.notes.occurrences.viewer`). This email address is fixed for the lifetime of the attestor, but callers should not make any other assumptions about the service account email; future versions may use an email based on a different naming pattern. */ delegationServiceAccountEmail: string; /** * The Grafeas resource name of a Attestation.Authority Note, created by the user, in the format: `projects/*/notes/*`. This field may not be updated. An attestation by this attestor is stored as a Grafeas Attestation.Authority Occurrence that names a container image and that links to this Note. Grafeas is an external dependency. */ noteReference: string; /** * Optional. Public keys that verify attestations signed by this attestor. This field may be updated. If this field is non-empty, one of the specified public keys must verify that an attestation was signed by this attestor for the image specified in the admission request. If this field is empty, this attestor always returns that no valid attestations exist. */ publicKeys: outputs.binaryauthorization.v1.AttestorPublicKeyResponse[]; } /** * Specifies verification rules for evaluating the SLSA attestations including: which builders to trust, where to fetch the SLSA attestations generated by those builders, and other builder-specific evaluation rules such as which source repositories are trusted. An image is considered verified by the rule if any of the fetched SLSA attestations is verified. */ interface VerificationRuleResponse { /** * Specifies where to fetch the provenances attestations generated by the builder (group). */ attestationSource: outputs.binaryauthorization.v1.AttestationSourceResponse; /** * If true, require the image to be built from a top-level configuration. `trusted_source_repo_patterns` specifies the repositories containing this configuration. */ configBasedBuildRequired: boolean; /** * Each verification rule is used for evaluation against provenances generated by a specific builder (group). For some of the builders, such as the Google Cloud Build, users don't need to explicitly specify their roots of trust in the policy since the evaluation service can automatically fetch them based on the builder (group). */ trustedBuilder: string; /** * List of trusted source code repository URL patterns. These patterns match the full repository URL without its scheme (e.g. `https://`). The patterns must not include schemes. For example, the pattern `source.cloud.google.com/my-project/my-repo-name` matches the following URLs: - `source.cloud.google.com/my-project/my-repo-name` - `git+ssh://source.cloud.google.com/my-project/my-repo-name` - `https://source.cloud.google.com/my-project/my-repo-name` A pattern matches a URL either exactly or with `*` wildcards. `*` can be used in only two ways: 1. trailing `*` after hosturi/ to match varying endings; 2. trailing `**` after hosturi/ to match `/` as well. `*` and `**` can only be used as wildcards and can only occur at the end of the pattern after a `/`. (So it's not possible to match a URL that contains literal `*`.) For example: - `github.com/my-project/my-repo` is valid to match a single repo - `github.com/my-project/*` will match all direct repos in `my-project` - `github.com/**` matches all repos in GitHub */ trustedSourceRepoPatterns: string[]; } /** * An image vulnerability check, which rejects images that violate the configured vulnerability rules. */ interface VulnerabilityCheckResponse { /** * Optional. A list of specific CVEs to ignore even if the vulnerability level violates `maximumUnfixableSeverity` or `maximumFixableSeverity`. CVEs are listed in the format of Container Analysis note id. For example: - CVE-2021-20305 - CVE-2020-10543 The CVEs are applicable regardless of note provider project, e.g., an entry of `CVE-2021-20305` will allow vulnerabilities with a note name of either `projects/goog-vulnz/notes/CVE-2021-20305` or `projects/CUSTOM-PROJECT/notes/CVE-2021-20305`. */ allowedCves: string[]; /** * Optional. A list of specific CVEs to always raise warnings about even if the vulnerability level meets `maximumUnfixableSeverity` or `maximumFixableSeverity`. CVEs are listed in the format of Container Analysis note id. For example: - CVE-2021-20305 - CVE-2020-10543 The CVEs are applicable regardless of note provider project, e.g., an entry of `CVE-2021-20305` will block vulnerabilities with a note name of either `projects/goog-vulnz/notes/CVE-2021-20305` or `projects/CUSTOM-PROJECT/notes/CVE-2021-20305`. */ blockedCves: string[]; /** * Optional. The projects where vulnerabilities are stored as Container Analysis Occurrences. Each project is expressed in the resource format of `projects/[PROJECT_ID]`, e.g., `projects/my-gcp-project`. An attempt will be made for each project to fetch vulnerabilities, and all valid vulnerabilities will be used to check against the vulnerability policy. If no valid scan is found in all projects configured here, an error will be returned for the check. */ containerAnalysisVulnerabilityProjects: string[]; /** * The threshold for severity for which a fix is currently available. This field is required and must be set. */ maximumFixableSeverity: string; /** * The threshold for severity for which a fix isn't currently available. This field is required and must be set. */ maximumUnfixableSeverity: string; } } namespace v1beta1 { /** * An attestor public key that will be used to verify attestations signed by this attestor. */ interface AttestorPublicKeyResponse { /** * ASCII-armored representation of a PGP public key, as the entire output by the command `gpg --export --armor foo@example.com` (either LF or CRLF line endings). When using this field, `id` should be left blank. The BinAuthz API handlers will calculate the ID and fill it in automatically. BinAuthz computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as upper-case hex. If `id` is provided by the caller, it will be overwritten by the API-calculated ID. */ asciiArmoredPgpPublicKey: string; /** * Optional. A descriptive comment. This field may be updated. */ comment: string; /** * A raw PKIX SubjectPublicKeyInfo format public key. NOTE: `id` may be explicitly provided by the caller when using this type of public key, but it MUST be a valid RFC3986 URI. If `id` is left blank, a default one will be computed based on the digest of the DER encoding of the public key. */ pkixPublicKey: outputs.binaryauthorization.v1beta1.PkixPublicKeyResponse; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.binaryauthorization.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A public key in the PkixPublicKey format (see https://tools.ietf.org/html/rfc5280#section-4.1.2.7 for details). Public keys of this type are typically textually encoded using the PEM format. */ interface PkixPublicKeyResponse { /** * A PEM-encoded public key, as described in https://tools.ietf.org/html/rfc7468#section-13 */ publicKeyPem: string; /** * The signature algorithm used to verify a message against a signature using this key. These signature algorithm must match the structure and any object identifiers encoded in `public_key_pem` (i.e. this algorithm must match that of the public key). */ signatureAlgorithm: string; } /** * An user owned drydock note references a Drydock ATTESTATION_AUTHORITY Note created by the user. */ interface UserOwnedDrydockNoteResponse { /** * This field will contain the service account email address that this Attestor will use as the principal when querying Container Analysis. Attestor administrators must grant this service account the IAM role needed to read attestations from the note_reference in Container Analysis (`containeranalysis.notes.occurrences.viewer`). This email address is fixed for the lifetime of the Attestor, but callers should not make any other assumptions about the service account email; future versions may use an email based on a different naming pattern. */ delegationServiceAccountEmail: string; /** * The Drydock resource name of a ATTESTATION_AUTHORITY Note, created by the user, in the format: `projects/*/notes/*` (or the legacy `providers/*/notes/*`). This field may not be updated. An attestation by this attestor is stored as a Drydock ATTESTATION_AUTHORITY Occurrence that names a container image and that links to this Note. Drydock is an external dependency. */ noteReference: string; /** * Optional. Public keys that verify attestations signed by this attestor. This field may be updated. If this field is non-empty, one of the specified public keys must verify that an attestation was signed by this attestor for the image specified in the admission request. If this field is empty, this attestor always returns that no valid attestations exist. */ publicKeys: outputs.binaryauthorization.v1beta1.AttestorPublicKeyResponse[]; } } } export declare namespace blockchainnodeengine { namespace v1 { /** * The connection information through which to interact with a blockchain node. */ interface ConnectionInfoResponse { /** * The endpoint information through which to interact with a blockchain node. */ endpointInfo: outputs.blockchainnodeengine.v1.EndpointInfoResponse; /** * A service attachment that exposes a node, and has the following format: projects/{project}/regions/{region}/serviceAttachments/{service_attachment_name} */ serviceAttachment: string; } /** * Contains endpoint information through which to interact with a blockchain node. */ interface EndpointInfoResponse { /** * The assigned URL for the node JSON-RPC API endpoint. */ jsonRpcApiEndpoint: string; /** * The assigned URL for the node WebSockets API endpoint. */ websocketsApiEndpoint: string; } /** * Ethereum-specific blockchain node details. */ interface EthereumDetailsResponse { /** * Ethereum-specific endpoint information. */ additionalEndpoints: outputs.blockchainnodeengine.v1.EthereumEndpointsResponse; /** * Immutable. Enables JSON-RPC access to functions in the `admin` namespace. Defaults to `false`. */ apiEnableAdmin: boolean; /** * Immutable. Enables JSON-RPC access to functions in the `debug` namespace. Defaults to `false`. */ apiEnableDebug: boolean; /** * An Ethereum address which the beacon client will send fee rewards to if no recipient is configured in the validator client. See https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html or https://docs.prylabs.network/docs/execution-node/fee-recipient for examples of how this is used. Note that while this is often described as "suggested", as we run the execution node we can trust the execution node, and therefore this is considered enforced. */ beaconFeeRecipient: string; /** * Immutable. The consensus client. */ consensusClient: string; /** * Immutable. The execution client */ executionClient: string; /** * Details for the Geth execution client. */ gethDetails: outputs.blockchainnodeengine.v1.GethDetailsResponse; /** * Immutable. The Ethereum environment being accessed. */ network: string; /** * Immutable. The type of Ethereum node. */ nodeType: string; } /** * Contains endpoint information specific to Ethereum nodes. */ interface EthereumEndpointsResponse { /** * The assigned URL for the node's Beacon API endpoint. */ beaconApiEndpoint: string; /** * The assigned URL for the node's Beacon Prometheus metrics endpoint. See [Prometheus Metrics](https://lighthouse-book.sigmaprime.io/advanced_metrics.html) for more details. */ beaconPrometheusMetricsApiEndpoint: string; /** * The assigned URL for the node's execution client's Prometheus metrics endpoint. */ executionClientPrometheusMetricsApiEndpoint: string; } /** * Options for the Geth execution client. See [Command-line Options](https://geth.ethereum.org/docs/fundamentals/command-line-options) for more details. */ interface GethDetailsResponse { /** * Immutable. Blockchain garbage collection mode. */ garbageCollectionMode: string; } } } export declare namespace certificatemanager { namespace v1 { /** * State of the latest attempt to authorize a domain for certificate issuance. */ interface AuthorizationAttemptInfoResponse { /** * Human readable explanation for reaching the state. Provided to help address the configuration issues. Not guaranteed to be stable. For programmatic access use FailureReason enum. */ details: string; /** * Domain name of the authorization attempt. */ domain: string; /** * Reason for failure of the authorization attempt for the domain. */ failureReason: string; /** * State of the domain for managed certificate issuance. */ state: string; } /** * The CA that issues the workload certificate. It includes CA address, type, authentication to CA service, etc. */ interface CertificateAuthorityConfigResponse { /** * Defines a CertificateAuthorityServiceConfig. */ certificateAuthorityServiceConfig: outputs.certificatemanager.v1.CertificateAuthorityServiceConfigResponse; } /** * Contains information required to contact CA service. */ interface CertificateAuthorityServiceConfigResponse { /** * A CA pool resource used to issue a certificate. The CA pool string has a relative resource path following the form "projects/{project}/locations/{location}/caPools/{ca_pool}". */ caPool: string; } /** * The structure describing the DNS Resource Record that needs to be added to DNS configuration for the authorization to be usable by certificate. */ interface DnsResourceRecordResponse { /** * Data of the DNS Resource Record. */ data: string; /** * Fully qualified name of the DNS Resource Record. e.g. `_acme-challenge.example.com` */ name: string; /** * Type of the DNS Resource Record. Currently always set to "CNAME". */ type: string; } /** * Describes a Target Proxy that uses this Certificate Map. */ interface GclbTargetResponse { /** * IP configurations for this Target Proxy where the Certificate Map is serving. */ ipConfigs: outputs.certificatemanager.v1.IpConfigResponse[]; /** * This field returns the resource name in the following format: `//compute.googleapis.com/projects/*/global/targetHttpsProxies/*`. */ targetHttpsProxy: string; /** * This field returns the resource name in the following format: `//compute.googleapis.com/projects/*/global/targetSslProxies/*`. */ targetSslProxy: string; } /** * Defines an intermediate CA. */ interface IntermediateCAResponse { /** * PEM intermediate certificate used for building up paths for validation. Each certificate provided in PEM format may occupy up to 5kB. */ pemCertificate: string; } /** * Defines IP configuration where this Certificate Map is serving. */ interface IpConfigResponse { /** * An external IP address. */ ipAddress: string; /** * Ports. */ ports: number[]; } /** * Configuration and state of a Managed Certificate. Certificate Manager provisions and renews Managed Certificates automatically, for as long as it's authorized to do so. */ interface ManagedCertificateResponse { /** * Detailed state of the latest authorization attempt for each domain specified for managed certificate resource. */ authorizationAttemptInfo: outputs.certificatemanager.v1.AuthorizationAttemptInfoResponse[]; /** * Immutable. Authorizations that will be used for performing domain authorization. */ dnsAuthorizations: string[]; /** * Immutable. The domains for which a managed SSL certificate will be generated. Wildcard domains are only supported with DNS challenge resolution. */ domains: string[]; /** * Immutable. The resource name for a CertificateIssuanceConfig used to configure private PKI certificates in the format `projects/*/locations/*/certificateIssuanceConfigs/*`. If this field is not set, the certificates will instead be publicly signed as documented at https://cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs#caa. */ issuanceConfig: string; /** * Information about issues with provisioning a Managed Certificate. */ provisioningIssue: outputs.certificatemanager.v1.ProvisioningIssueResponse; /** * State of the managed certificate resource. */ state: string; } /** * Information about issues with provisioning a Managed Certificate. */ interface ProvisioningIssueResponse { /** * Human readable explanation about the issue. Provided to help address the configuration issues. Not guaranteed to be stable. For programmatic access use Reason enum. */ details: string; /** * Reason for provisioning failures. */ reason: string; } /** * Certificate data for a SelfManaged Certificate. SelfManaged Certificates are uploaded by the user. Updating such certificates before they expire remains the user's responsibility. */ interface SelfManagedCertificateResponse { /** * Input only. The PEM-encoded certificate chain. Leaf certificate comes first, followed by intermediate ones if any. */ pemCertificate: string; /** * Input only. The PEM-encoded private key of the leaf certificate. */ pemPrivateKey: string; } /** * Defines a trust anchor. */ interface TrustAnchorResponse { /** * PEM root certificate of the PKI used for validation. Each certificate provided in PEM format may occupy up to 5kB. */ pemCertificate: string; } /** * Defines a trust store. */ interface TrustStoreResponse { /** * Set of intermediate CA certificates used for the path building phase of chain validation. The field is currently not supported if TrustConfig is used for the workload certificate feature. */ intermediateCas: outputs.certificatemanager.v1.IntermediateCAResponse[]; /** * List of Trust Anchors to be used while performing validation against a given TrustStore. */ trustAnchors: outputs.certificatemanager.v1.TrustAnchorResponse[]; } } } export declare namespace cloudasset { namespace v1 { /** * Specifies roles and/or permissions to analyze, to determine both the identities possessing them and the resources they control. If multiple values are specified, results will include roles or permissions matching any of them. The total number of roles and permissions should be equal or less than 10. */ interface AccessSelectorResponse { /** * Optional. The permissions to appear in result. */ permissions: string[]; /** * Optional. The roles to appear in result. */ roles: string[]; } /** * The IAM conditions context. */ interface ConditionContextResponse { /** * The hypothetical access timestamp to evaluate IAM conditions. Note that this value must not be earlier than the current time; otherwise, an INVALID_ARGUMENT error will be returned. */ accessTime: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Output configuration for asset feed destination. */ interface FeedOutputConfigResponse { /** * Destination on Pub/Sub. */ pubsubDestination: outputs.cloudasset.v1.PubsubDestinationResponse; } /** * IAM policy analysis query message. */ interface IamPolicyAnalysisQueryResponse { /** * Optional. Specifies roles or permissions for analysis. This is optional. */ accessSelector: outputs.cloudasset.v1.AccessSelectorResponse; /** * Optional. The hypothetical context for IAM conditions evaluation. */ conditionContext: outputs.cloudasset.v1.ConditionContextResponse; /** * Optional. Specifies an identity for analysis. */ identitySelector: outputs.cloudasset.v1.IdentitySelectorResponse; /** * Optional. The query options. */ options: outputs.cloudasset.v1.OptionsResponse; /** * Optional. Specifies a resource for analysis. */ resourceSelector: outputs.cloudasset.v1.ResourceSelectorResponse; /** * The relative name of the root asset. Only resources and IAM policies within the scope will be analyzed. This can only be an organization number (such as "organizations/123"), a folder number (such as "folders/123"), a project ID (such as "projects/my-project-id"), or a project number (such as "projects/12345"). To know how to get organization id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). */ scope: string; } /** * Specifies an identity for which to determine resource access, based on roles assigned either directly to them or to the groups they belong to, directly or indirectly. */ interface IdentitySelectorResponse { /** * The identity appear in the form of principals in [IAM policy binding](https://cloud.google.com/iam/reference/rest/v1/Binding). The examples of supported forms are: "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com". Notice that wildcard characters (such as * and ?) are not supported. You must give a specific identity. */ identity: string; } /** * Contains query options. */ interface OptionsResponse { /** * Optional. If true, the response will include access analysis from identities to resources via service account impersonation. This is a very expensive operation, because many derived queries will be executed. We highly recommend you use AssetService.AnalyzeIamPolicyLongrunning RPC instead. For example, if the request analyzes for which resources user A has permission P, and there's an IAM policy states user A has iam.serviceAccounts.getAccessToken permission to a service account SA, and there's another IAM policy states service account SA has permission P to a Google Cloud folder F, then user A potentially has access to the Google Cloud folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Another example, if the request analyzes for who has permission P to a Google Cloud folder F, and there's an IAM policy states user A has iam.serviceAccounts.actAs permission to a service account SA, and there's another IAM policy states service account SA has permission P to the Google Cloud folder F, then user A potentially has access to the Google Cloud folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Only the following permissions are considered in this analysis: * `iam.serviceAccounts.actAs` * `iam.serviceAccounts.signBlob` * `iam.serviceAccounts.signJwt` * `iam.serviceAccounts.getAccessToken` * `iam.serviceAccounts.getOpenIdToken` * `iam.serviceAccounts.implicitDelegation` Default is false. */ analyzeServiceAccountImpersonation: boolean; /** * Optional. If true, the identities section of the result will expand any Google groups appearing in an IAM policy binding. If IamPolicyAnalysisQuery.identity_selector is specified, the identity in the result will be determined by the selector, and this flag is not allowed to set. If true, the default max expansion per group is 1000 for AssetService.AnalyzeIamPolicy][]. Default is false. */ expandGroups: boolean; /** * Optional. If true and IamPolicyAnalysisQuery.resource_selector is not specified, the resource section of the result will expand any resource attached to an IAM policy to include resources lower in the resource hierarchy. For example, if the request analyzes for which resources user A has permission P, and the results include an IAM policy with P on a Google Cloud folder, the results will also include resources in that folder with permission P. If true and IamPolicyAnalysisQuery.resource_selector is specified, the resource section of the result will expand the specified resource to include resources lower in the resource hierarchy. Only project or lower resources are supported. Folder and organization resources cannot be used together with this option. For example, if the request analyzes for which users have permission P on a Google Cloud project with this option enabled, the results will include all users who have permission P on that project or any lower resource. If true, the default max expansion per resource is 1000 for AssetService.AnalyzeIamPolicy][] and 100000 for AssetService.AnalyzeIamPolicyLongrunning][]. Default is false. */ expandResources: boolean; /** * Optional. If true, the access section of result will expand any roles appearing in IAM policy bindings to include their permissions. If IamPolicyAnalysisQuery.access_selector is specified, the access section of the result will be determined by the selector, and this flag is not allowed to set. Default is false. */ expandRoles: boolean; /** * Optional. If true, the result will output the relevant membership relationships between groups and other groups, and between groups and principals. Default is false. */ outputGroupEdges: boolean; /** * Optional. If true, the result will output the relevant parent/child relationships between resources. Default is false. */ outputResourceEdges: boolean; } /** * A Pub/Sub destination. */ interface PubsubDestinationResponse { /** * The name of the Pub/Sub topic to publish to. Example: `projects/PROJECT_ID/topics/TOPIC_ID`. */ topic: string; } /** * The query content. */ interface QueryContentResponse { /** * An IAM Policy Analysis query, which could be used in the AssetService.AnalyzeIamPolicy RPC or the AssetService.AnalyzeIamPolicyLongrunning RPC. */ iamPolicyAnalysisQuery: outputs.cloudasset.v1.IamPolicyAnalysisQueryResponse; } /** * Specifies the resource to analyze for access policies, which may be set directly on the resource, or on ancestors such as organizations, folders or projects. */ interface ResourceSelectorResponse { /** * The [full resource name] (https://cloud.google.com/asset-inventory/docs/resource-name-format) of a resource of [supported resource types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#analyzable_asset_types). */ fullResourceName: string; } } } export declare namespace cloudbilling { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudbilling.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudbilling.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace cloudbuild { namespace v1 { /** * ApprovalConfig describes configuration for manual approval of a build. */ interface ApprovalConfigResponse { /** * Whether or not approval is needed. If this is set on a build, it will become pending when created, and will need to be explicitly approved to start. */ approvalRequired: boolean; } /** * ApprovalResult describes the decision and associated metadata of a manual approval of a build. */ interface ApprovalResultResponse { /** * The time when the approval decision was made. */ approvalTime: string; /** * Email of the user that called the ApproveBuild API to approve or reject a build at the time that the API was called. */ approverAccount: string; /** * Optional. An optional comment for this manual approval result. */ comment: string; /** * The decision of this manual approval. */ decision: string; /** * Optional. An optional URL tied to this manual approval result. This field is essentially the same as comment, except that it will be rendered by the UI differently. An example use case is a link to an external job that approved this Build. */ url: string; } /** * Files in the workspace to upload to Cloud Storage upon successful completion of all build steps. */ interface ArtifactObjectsResponse { /** * Cloud Storage bucket and optional object path, in the form "gs://bucket/path/to/somewhere/". (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Files in the workspace matching any path pattern will be uploaded to Cloud Storage with this location as a prefix. */ location: string; /** * Path globs used to match files in the build's workspace. */ paths: string[]; /** * Stores timing information for pushing all artifact objects. */ timing: outputs.cloudbuild.v1.TimeSpanResponse; } /** * Artifacts produced by a build that should be uploaded upon successful completion of all build steps. */ interface ArtifactsResponse { /** * A list of images to be pushed upon the successful completion of all build steps. The images will be pushed using the builder service account's credentials. The digests of the pushed images will be stored in the Build resource's results field. If any of the images fail to be pushed, the build is marked FAILURE. */ images: string[]; /** * A list of Maven artifacts to be uploaded to Artifact Registry upon successful completion of all build steps. Artifacts in the workspace matching specified paths globs will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any artifacts fail to be pushed, the build is marked FAILURE. */ mavenArtifacts: outputs.cloudbuild.v1.MavenArtifactResponse[]; /** * A list of npm packages to be uploaded to Artifact Registry upon successful completion of all build steps. Npm packages in the specified paths will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any packages fail to be pushed, the build is marked FAILURE. */ npmPackages: outputs.cloudbuild.v1.NpmPackageResponse[]; /** * A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps. Files in the workspace matching specified paths globs will be uploaded to the specified Cloud Storage location using the builder service account's credentials. The location and generation of the uploaded objects will be stored in the Build resource's results field. If any objects fail to be pushed, the build is marked FAILURE. */ objects: outputs.cloudbuild.v1.ArtifactObjectsResponse; /** * A list of Python packages to be uploaded to Artifact Registry upon successful completion of all build steps. The build service account credentials will be used to perform the upload. If any objects fail to be pushed, the build is marked FAILURE. */ pythonPackages: outputs.cloudbuild.v1.PythonPackageResponse[]; } /** * BitbucketServerConfig represents the configuration for a Bitbucket Server. */ interface BitbucketServerConfigResponse { /** * Immutable. API Key that will be attached to webhook. Once this field has been set, it cannot be changed. If you need to change it, please create another BitbucketServerConfig. */ apiKey: string; /** * Connected Bitbucket Server repositories for this config. */ connectedRepositories: outputs.cloudbuild.v1.BitbucketServerRepositoryIdResponse[]; /** * Time when the config was created. */ createTime: string; /** * Immutable. The URI of the Bitbucket Server host. Once this field has been set, it cannot be changed. If you need to change it, please create another BitbucketServerConfig. */ hostUri: string; /** * The resource name for the config. */ name: string; /** * Optional. The network to be used when reaching out to the Bitbucket Server instance. The VPC network must be enabled for private service connection. This should be set if the Bitbucket Server instance is hosted on-premises and not reachable by public internet. If this field is left empty, no network peering will occur and calls to the Bitbucket Server instance will be made over the public internet. Must be in the format `projects/{project}/global/networks/{network}`, where {project} is a project number or id and {network} is the name of a VPC network in the project. */ peeredNetwork: string; /** * Immutable. IP range within the peered network. This is specified in CIDR notation with a slash and the subnet prefix size. You can optionally specify an IP address before the subnet prefix value. e.g. `192.168.0.0/29` would specify an IP range starting at 192.168.0.0 with a 29 bit prefix size. `/16` would specify a prefix size of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. The field only has an effect if peered_network is set. */ peeredNetworkIpRange: string; /** * Secret Manager secrets needed by the config. */ secrets: outputs.cloudbuild.v1.BitbucketServerSecretsResponse; /** * Optional. SSL certificate to use for requests to Bitbucket Server. The format should be PEM format but the extension can be one of .pem, .cer, or .crt. */ sslCa: string; /** * Username of the account Cloud Build will use on Bitbucket Server. */ username: string; /** * UUID included in webhook requests. The UUID is used to look up the corresponding config. */ webhookKey: string; } /** * BitbucketServerRepositoryId identifies a specific repository hosted on a Bitbucket Server. */ interface BitbucketServerRepositoryIdResponse { /** * Identifier for the project storing the repository. */ projectKey: string; /** * Identifier for the repository. */ repoSlug: string; /** * The ID of the webhook that was created for receiving events from this repo. We only create and manage a single webhook for each repo. */ webhookId: number; } /** * BitbucketServerSecrets represents the secrets in Secret Manager for a Bitbucket Server. */ interface BitbucketServerSecretsResponse { /** * The resource name for the admin access token's secret version. */ adminAccessTokenVersionName: string; /** * The resource name for the read access token's secret version. */ readAccessTokenVersionName: string; /** * Immutable. The resource name for the webhook secret's secret version. Once this field has been set, it cannot be changed. If you need to change it, please create another BitbucketServerConfig. */ webhookSecretVersionName: string; } /** * BitbucketServerTriggerConfig describes the configuration of a trigger that creates a build whenever a Bitbucket Server event is received. */ interface BitbucketServerTriggerConfigResponse { /** * The BitbucketServerConfig specified in the bitbucket_server_config_resource field. */ bitbucketServerConfig: outputs.cloudbuild.v1.BitbucketServerConfigResponse; /** * The Bitbucket server config resource that this trigger config maps to. */ bitbucketServerConfigResource: string; /** * Key of the project that the repo is in. For example: The key for https://mybitbucket.server/projects/TEST/repos/test-repo is "TEST". */ projectKey: string; /** * Filter to match changes in pull requests. */ pullRequest: outputs.cloudbuild.v1.PullRequestFilterResponse; /** * Filter to match changes in refs like branches, tags. */ push: outputs.cloudbuild.v1.PushFilterResponse; /** * Slug of the repository. A repository slug is a URL-friendly version of a repository name, automatically generated by Bitbucket for use in the URL. For example, if the repository name is 'test repo', in the URL it would become 'test-repo' as in https://mybitbucket.server/projects/TEST/repos/test-repo. */ repoSlug: string; } /** * BuildApproval describes a build's approval configuration, state, and result. */ interface BuildApprovalResponse { /** * Configuration for manual approval of this build. */ config: outputs.cloudbuild.v1.ApprovalConfigResponse; /** * Result of manual approval for this Build. */ result: outputs.cloudbuild.v1.ApprovalResultResponse; /** * The state of this build's approval. */ state: string; } /** * Optional arguments to enable specific features of builds. */ interface BuildOptionsResponse { /** * Option to include built-in and custom substitutions as env variables for all build steps. */ automapSubstitutions: boolean; /** * Optional. Option to specify how default logs buckets are setup. */ defaultLogsBucketBehavior: string; /** * Requested disk size for the VM that runs the build. Note that this is *NOT* "disk free"; some of the space will be used by the operating system and build utilities. Also note that this is the minimum disk size that will be allocated for the build -- the build may run with a larger disk than requested. At present, the maximum disk size is 2000GB; builds that request more than the maximum are rejected with an error. */ diskSizeGb: string; /** * Option to specify whether or not to apply bash style string operations to the substitutions. NOTE: this is always enabled for triggered builds and cannot be overridden in the build configuration file. */ dynamicSubstitutions: boolean; /** * A list of global environment variable definitions that will exist for all build steps in this build. If a variable is defined in both globally and in a build step, the variable will use the build step value. The elements are of the form "KEY=VALUE" for the environment variable "KEY" being given the value "VALUE". */ env: string[]; /** * Option to define build log streaming behavior to Cloud Storage. */ logStreamingOption: string; /** * Option to specify the logging mode, which determines if and where build logs are stored. */ logging: string; /** * Compute Engine machine type on which to run the build. */ machineType: string; /** * Optional. Specification for execution on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information. */ pool: outputs.cloudbuild.v1.PoolOptionResponse; /** * Requested verifiability options. */ requestedVerifyOption: string; /** * A list of global environment variables, which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`. These variables will be available to all build steps in this build. */ secretEnv: string[]; /** * Requested hash for SourceProvenance. */ sourceProvenanceHash: string[]; /** * Option to specify behavior when there is an error in the substitution checks. NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden in the build configuration file. */ substitutionOption: string; /** * Global list of volumes to mount for ALL build steps Each volume is created as an empty volume prior to starting the build process. Upon completion of the build, volumes and their contents are discarded. Global volume names and paths cannot conflict with the volumes defined a build step. Using a global volume in a build with only one step is not valid as it is indicative of a build request with an incorrect configuration. */ volumes: outputs.cloudbuild.v1.VolumeResponse[]; /** * This field deprecated; please use `pool.name` instead. */ workerPool: string; } /** * A build resource in the Cloud Build API. At a high level, a `Build` describes where to find source code, how to build it (for example, the builder image to run on the source), and where to store the built artifacts. Fields can include the following variables, which will be expanded when the build is created: - $PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the autogenerated ID of the build. - $REPO_NAME: the source repository name specified by RepoSource. - $BRANCH_NAME: the branch name specified by RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA. */ interface BuildResponse { /** * Describes this build's approval configuration, status, and result. */ approval: outputs.cloudbuild.v1.BuildApprovalResponse; /** * Artifacts produced by the build that should be uploaded upon successful completion of all build steps. */ artifacts: outputs.cloudbuild.v1.ArtifactsResponse; /** * Secrets and secret environment variables. */ availableSecrets: outputs.cloudbuild.v1.SecretsResponse; /** * The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. */ buildTriggerId: string; /** * Time at which the request to create the build was received. */ createTime: string; /** * Contains information about the build when status=FAILURE. */ failureInfo: outputs.cloudbuild.v1.FailureInfoResponse; /** * Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. */ finishTime: string; /** * A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. */ images: string[]; /** * URL to logs for this build in Google Cloud Console. */ logUrl: string; /** * Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`. */ logsBucket: string; /** * The 'Build' name with format: `projects/{project}/locations/{location}/builds/{build}`, where {build} is a unique identifier generated by the service. */ name: string; /** * Special options for this build. */ options: outputs.cloudbuild.v1.BuildOptionsResponse; /** * ID of the project. */ project: string; /** * TTL in queue for this build. If provided and the build is enqueued longer than this value, the build will expire and the build status will be `EXPIRED`. The TTL starts ticking from create_time. */ queueTtl: string; /** * Results of the build. */ results: outputs.cloudbuild.v1.ResultsResponse; /** * Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is the recommended technique for managing sensitive data with Cloud Build. Use `available_secrets` to configure builds to access secrets from Secret Manager. For instructions, see: https://cloud.google.com/cloud-build/docs/securing-builds/use-secrets */ secrets: outputs.cloudbuild.v1.SecretResponse[]; /** * IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. */ serviceAccount: string; /** * The location of the source files to build. */ source: outputs.cloudbuild.v1.SourceResponse; /** * A permanent fixed identifier for source. */ sourceProvenance: outputs.cloudbuild.v1.SourceProvenanceResponse; /** * Time at which execution of the build was started. */ startTime: string; /** * Status of the build. */ status: string; /** * Customer-readable message about the current status. */ statusDetail: string; /** * The operations to be performed on the workspace. */ steps: outputs.cloudbuild.v1.BuildStepResponse[]; /** * Substitutions data for `Build` resource. */ substitutions: { [key: string]: string; }; /** * Tags for annotation of a `Build`. These are not docker tags. */ tags: string[]; /** * Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes. */ timeout: string; /** * Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all artifacts including docker images and non docker artifacts. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included. */ timing: { [key: string]: string; }; /** * Non-fatal problems encountered during the execution of the build. */ warnings: outputs.cloudbuild.v1.WarningResponse[]; } /** * A step in the build pipeline. */ interface BuildStepResponse { /** * Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence. */ allowExitCodes: number[]; /** * Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field. */ allowFailure: boolean; /** * A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments. */ args: string[]; /** * Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption. */ automapSubstitutions: boolean; /** * Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution. */ dir: string; /** * Entrypoint to be used instead of the build step image's default entrypoint. If unset, the image's default entrypoint is used. */ entrypoint: string; /** * A list of environment variable definitions to be used when running a step. The elements are of the form "KEY=VALUE" for the environment variable "KEY" being given the value "VALUE". */ env: string[]; /** * Return code from running the step. */ exitCode: number; /** * The name of the container image that will run this particular build step. If the image is available in the host's Docker daemon's cache, it will be run directly. If not, the host will attempt to pull the image first, using the builder service account's credentials if necessary. The Docker daemon's cache will already have the latest versions of all of the officially supported build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also have cached many of the layers for some popular images, like "ubuntu", "debian", but they will be refreshed at the time you attempt to use them. If you built an image in a previous build step, it will be stored in the host's Docker daemon's cache and is available to use as the name for a later build step. */ name: string; /** * Stores timing information for pulling this build step's builder image only. */ pullTiming: outputs.cloudbuild.v1.TimeSpanResponse; /** * A shell script to be executed in the step. When script is provided, the user cannot specify the entrypoint or args. */ script: string; /** * A list of environment variables which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`. */ secretEnv: string[]; /** * Status of the build step. At this time, build step status is only updated on build completion; step status is not updated in real-time as the build progresses. */ status: string; /** * Time limit for executing this build step. If not defined, the step has no time limit and will be allowed to continue to run until either it completes or the build itself times out. */ timeout: string; /** * Stores timing information for executing this build step. */ timing: outputs.cloudbuild.v1.TimeSpanResponse; /** * List of volumes to mount into the build step. Each volume is created as an empty volume prior to execution of the build step. Upon completion of the build, volumes and their contents are discarded. Using a named volume in only one step is not valid as it is indicative of a build request with an incorrect configuration. */ volumes: outputs.cloudbuild.v1.VolumeResponse[]; /** * The ID(s) of the step(s) that this build step depends on. This build step will not start until all the build steps in `wait_for` have completed successfully. If `wait_for` is empty, this build step will start when all previous build steps in the `Build.Steps` list have completed successfully. */ waitFor: string[]; } /** * An image built by the pipeline. */ interface BuiltImageResponse { /** * Docker Registry 2.0 digest. */ digest: string; /** * Name used to push the container image to Google Container Registry, as presented to `docker push`. */ name: string; /** * Stores timing information for pushing the specified image. */ pushTiming: outputs.cloudbuild.v1.TimeSpanResponse; } /** * Location of the source in a 2nd-gen Google Cloud Build repository resource. */ interface ConnectedRepositoryResponse { /** * Directory, relative to the source root, in which to run the build. */ dir: string; /** * Name of the Google Cloud Build repository, formatted as `projects/*/locations/*/connections/*/repositories/*`. */ repository: string; /** * The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. */ revision: string; } /** * A fatal problem encountered during the execution of the build. */ interface FailureInfoResponse { /** * Explains the failure issue in more detail using hard-coded text. */ detail: string; /** * The name of the failure. */ type: string; } /** * Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build. */ interface FileHashesResponse { /** * Collection of file hashes. */ fileHash: outputs.cloudbuild.v1.HashResponse[]; } /** * GitFileSource describes a file within a (possibly remote) code repository. */ interface GitFileSourceResponse { /** * The full resource name of the bitbucket server config. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{id}`. */ bitbucketServerConfig: string; /** * The full resource name of the github enterprise config. Format: `projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}`. `projects/{project}/githubEnterpriseConfigs/{id}`. */ githubEnterpriseConfig: string; /** * The path of the file, with the repo root as the root of the path. */ path: string; /** * See RepoType above. */ repoType: string; /** * The fully qualified resource name of the Repos API repository. Either URI or repository can be specified. If unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path. */ repository: string; /** * The branch, tag, arbitrary ref, or SHA version of the repo to use when resolving the filename (optional). This field respects the same syntax/resolution as described here: https://git-scm.com/docs/gitrevisions If unspecified, the revision from which the trigger invocation originated is assumed to be the revision from which to read the specified path. */ revision: string; /** * The URI of the repo. Either uri or repository can be specified. If unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path. */ uri: string; } /** * GitHubEnterpriseSecrets represents the names of all necessary secrets in Secret Manager for a GitHub Enterprise server. Format is: projects//secrets/. */ interface GitHubEnterpriseSecretsResponse { /** * The resource name for the OAuth client ID secret in Secret Manager. */ oauthClientIdName: string; /** * The resource name for the OAuth client ID secret version in Secret Manager. */ oauthClientIdVersionName: string; /** * The resource name for the OAuth secret in Secret Manager. */ oauthSecretName: string; /** * The resource name for the OAuth secret secret version in Secret Manager. */ oauthSecretVersionName: string; /** * The resource name for the private key secret. */ privateKeyName: string; /** * The resource name for the private key secret version. */ privateKeyVersionName: string; /** * The resource name for the webhook secret in Secret Manager. */ webhookSecretName: string; /** * The resource name for the webhook secret secret version in Secret Manager. */ webhookSecretVersionName: string; } /** * GitHubEventsConfig describes the configuration of a trigger that creates a build whenever a GitHub event is received. */ interface GitHubEventsConfigResponse { /** * Optional. The resource name of the github enterprise config that should be applied to this installation. For example: "projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}" */ enterpriseConfigResourceName: string; /** * The installationID that emits the GitHub event. */ installationId: string; /** * Name of the repository. For example: The name for https://github.com/googlecloudplatform/cloud-builders is "cloud-builders". */ name: string; /** * Owner of the repository. For example: The owner for https://github.com/googlecloudplatform/cloud-builders is "googlecloudplatform". */ owner: string; /** * filter to match changes in pull requests. */ pullRequest: outputs.cloudbuild.v1.PullRequestFilterResponse; /** * filter to match changes in refs like branches, tags. */ push: outputs.cloudbuild.v1.PushFilterResponse; } /** * GitLabConfig represents the configuration for a GitLab integration. */ interface GitLabConfigResponse { /** * Connected GitLab.com or GitLabEnterprise repositories for this config. */ connectedRepositories: outputs.cloudbuild.v1.GitLabRepositoryIdResponse[]; /** * Time when the config was created. */ createTime: string; /** * Optional. GitLabEnterprise config. */ enterpriseConfig: outputs.cloudbuild.v1.GitLabEnterpriseConfigResponse; /** * The resource name for the config. */ name: string; /** * Secret Manager secrets needed by the config. */ secrets: outputs.cloudbuild.v1.GitLabSecretsResponse; /** * Username of the GitLab.com or GitLab Enterprise account Cloud Build will use. */ username: string; /** * UUID included in webhook requests. The UUID is used to look up the corresponding config. */ webhookKey: string; } /** * GitLabEnterpriseConfig represents the configuration for a GitLabEnterprise integration. */ interface GitLabEnterpriseConfigResponse { /** * Immutable. The URI of the GitlabEnterprise host. */ hostUri: string; /** * The Service Directory configuration to be used when reaching out to the GitLab Enterprise instance. */ serviceDirectoryConfig: outputs.cloudbuild.v1.ServiceDirectoryConfigResponse; /** * The SSL certificate to use in requests to GitLab Enterprise instances. */ sslCa: string; } /** * GitLabEventsConfig describes the configuration of a trigger that creates a build whenever a GitLab event is received. */ interface GitLabEventsConfigResponse { /** * The GitLabConfig specified in the gitlab_config_resource field. */ gitlabConfig: outputs.cloudbuild.v1.GitLabConfigResponse; /** * The GitLab config resource that this trigger config maps to. */ gitlabConfigResource: string; /** * Namespace of the GitLab project. */ projectNamespace: string; /** * Filter to match changes in pull requests. */ pullRequest: outputs.cloudbuild.v1.PullRequestFilterResponse; /** * Filter to match changes in refs like branches, tags. */ push: outputs.cloudbuild.v1.PushFilterResponse; } /** * GitLabRepositoryId identifies a specific repository hosted on GitLab.com or GitLabEnterprise */ interface GitLabRepositoryIdResponse { /** * The ID of the webhook that was created for receiving events from this repo. We only create and manage a single webhook for each repo. */ webhookId: number; } /** * GitLabSecrets represents the secrets in Secret Manager for a GitLab integration. */ interface GitLabSecretsResponse { /** * The resource name for the api access token’s secret version */ apiAccessTokenVersion: string; /** * Immutable. API Key that will be attached to webhook requests from GitLab to Cloud Build. */ apiKeyVersion: string; /** * The resource name for the read access token’s secret version */ readAccessTokenVersion: string; /** * Immutable. The resource name for the webhook secret’s secret version. Once this field has been set, it cannot be changed. If you need to change it, please create another GitLabConfig. */ webhookSecretVersion: string; } /** * GitRepoSource describes a repo and ref of a code repository. */ interface GitRepoSourceResponse { /** * The full resource name of the bitbucket server config. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{id}`. */ bitbucketServerConfig: string; /** * The full resource name of the github enterprise config. Format: `projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}`. `projects/{project}/githubEnterpriseConfigs/{id}`. */ githubEnterpriseConfig: string; /** * The branch or tag to use. Must start with "refs/" (required). */ ref: string; /** * See RepoType below. */ repoType: string; /** * The connected repository resource name, in the format `projects/*/locations/*/connections/*/repositories/*`. Either `uri` or `repository` can be specified and is required. */ repository: string; /** * The URI of the repo (e.g. https://github.com/user/repo.git). Either `uri` or `repository` can be specified and is required. */ uri: string; } /** * Location of the source in any accessible Git repository. */ interface GitSourceResponse { /** * Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution. */ dir: string; /** * The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. Cloud Build uses `git fetch` to fetch the revision from the Git repository; therefore make sure that the string you provide for `revision` is parsable by the command. For information on string values accepted by `git fetch`, see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on `git fetch`, see https://git-scm.com/docs/git-fetch. */ revision: string; /** * Location of the Git repo to build. This will be used as a `git remote`, see https://git-scm.com/docs/git-remote. */ url: string; } /** * Container message for hash values. */ interface HashResponse { /** * The type of hash that was performed. */ type: string; /** * The hash value. */ value: string; } /** * Pairs a set of secret environment variables mapped to encrypted values with the Cloud KMS key to use to decrypt the value. */ interface InlineSecretResponse { /** * Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets. */ envMap: { [key: string]: string; }; /** * Resource name of Cloud KMS crypto key to decrypt the encrypted value. In format: projects/*/locations/*/keyRings/*/cryptoKeys/* */ kmsKeyName: string; } /** * A Maven artifact to upload to Artifact Registry upon successful completion of all build steps. */ interface MavenArtifactResponse { /** * Maven `artifactId` value used when uploading the artifact to Artifact Registry. */ artifactId: string; /** * Maven `groupId` value used when uploading the artifact to Artifact Registry. */ groupId: string; /** * Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar. */ path: string; /** * Artifact Registry repository, in the form "https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY" Artifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix. */ repository: string; /** * Maven `version` value used when uploading the artifact to Artifact Registry. */ version: string; } /** * Defines the network configuration for the pool. */ interface NetworkConfigResponse { /** * Option to configure network egress for the workers. */ egressOption: string; /** * Immutable. The network definition that the workers are peered to. If this section is left empty, the workers will be peered to `WorkerPool.project_id` on the service producer network. Must be in the format `projects/{project}/global/networks/{network}`, where `{project}` is a project number, such as `12345`, and `{network}` is the name of a VPC network in the project. See [Understanding network configuration options](https://cloud.google.com/build/docs/private-pools/set-up-private-pool-environment) */ peeredNetwork: string; /** * Immutable. Subnet IP range within the peered network. This is specified in CIDR notation with a slash and the subnet prefix size. You can optionally specify an IP address before the subnet prefix value. e.g. `192.168.0.0/29` would specify an IP range starting at 192.168.0.0 with a prefix size of 29 bits. `/16` would specify a prefix size of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. */ peeredNetworkIpRange: string; } /** * Npm package to upload to Artifact Registry upon successful completion of all build steps. */ interface NpmPackageResponse { /** * Path to the package.json. e.g. workspace/path/to/package */ packagePath: string; /** * Artifact Registry repository, in the form "https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY" Npm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix. */ repository: string; } /** * Details about how a build should be executed on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information. */ interface PoolOptionResponse { /** * The `WorkerPool` resource to execute the build on. You must have `cloudbuild.workerpools.use` on the project hosting the WorkerPool. Format projects/{project}/locations/{location}/workerPools/{workerPoolId} */ name: string; } /** * Configuration for a V1 `PrivatePool`. */ interface PrivatePoolV1ConfigResponse { /** * Network configuration for the pool. */ networkConfig: outputs.cloudbuild.v1.NetworkConfigResponse; /** * Machine configuration for the workers in the pool. */ workerConfig: outputs.cloudbuild.v1.WorkerConfigResponse; } /** * PubsubConfig describes the configuration of a trigger that creates a build whenever a Pub/Sub message is published. */ interface PubsubConfigResponse { /** * Service account that will make the push request. */ serviceAccountEmail: string; /** * Potential issues with the underlying Pub/Sub subscription configuration. Only populated on get requests. */ state: string; /** * Name of the subscription. Format is `projects/{project}/subscriptions/{subscription}`. */ subscription: string; /** * The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. */ topic: string; } /** * PullRequestFilter contains filter properties for matching GitHub Pull Requests. */ interface PullRequestFilterResponse { /** * Regex of branches to match. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ branch: string; /** * Configure builds to run whether a repository owner or collaborator need to comment `/gcbrun`. */ commentControl: string; /** * If true, branches that do NOT match the git_ref will trigger a build. */ invertRegex: boolean; } /** * Push contains filter properties for matching GitHub git pushes. */ interface PushFilterResponse { /** * Regexes matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ branch: string; /** * When true, only trigger a build if the revision regex does NOT match the git_ref regex. */ invertRegex: boolean; /** * Regexes matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ tag: string; } /** * Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository. */ interface PythonPackageResponse { /** * Path globs used to match files in the build's workspace. For Python/ Twine, this is usually `dist/*`, and sometimes additionally an `.asc` file. */ paths: string[]; /** * Artifact Registry repository, in the form "https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY" Files in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix. */ repository: string; } /** * Location of the source in a Google Cloud Source Repository. */ interface RepoSourceResponse { /** * Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ branchName: string; /** * Explicit commit SHA to build. */ commitSha: string; /** * Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution. */ dir: string; /** * Only trigger a build if the revision regex does NOT match the revision regex. */ invertRegex: boolean; /** * ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed. */ project: string; /** * Name of the Cloud Source Repository. */ repoName: string; /** * Substitutions to use in a triggered build. Should only be used with RunBuildTrigger */ substitutions: { [key: string]: string; }; /** * Regex matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ tagName: string; } /** * The configuration of a trigger that creates a build whenever an event from Repo API is received. */ interface RepositoryEventConfigResponse { /** * Filter to match changes in pull requests. */ pullRequest: outputs.cloudbuild.v1.PullRequestFilterResponse; /** * Filter to match changes in refs like branches, tags. */ push: outputs.cloudbuild.v1.PushFilterResponse; /** * The resource name of the Repo API resource. */ repository: string; /** * The type of the SCM vendor the repository points to. */ repositoryType: string; } /** * Artifacts created by the build pipeline. */ interface ResultsResponse { /** * Path to the artifact manifest for non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage. */ artifactManifest: string; /** * Time to push all non-container artifacts to Cloud Storage. */ artifactTiming: outputs.cloudbuild.v1.TimeSpanResponse; /** * List of build step digests, in the order corresponding to build step indices. */ buildStepImages: string[]; /** * List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 50KB of data is stored. */ buildStepOutputs: string[]; /** * Container images that were built as a part of the build. */ images: outputs.cloudbuild.v1.BuiltImageResponse[]; /** * Maven artifacts uploaded to Artifact Registry at the end of the build. */ mavenArtifacts: outputs.cloudbuild.v1.UploadedMavenArtifactResponse[]; /** * Npm packages uploaded to Artifact Registry at the end of the build. */ npmPackages: outputs.cloudbuild.v1.UploadedNpmPackageResponse[]; /** * Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage. */ numArtifacts: string; /** * Python artifacts uploaded to Artifact Registry at the end of the build. */ pythonPackages: outputs.cloudbuild.v1.UploadedPythonPackageResponse[]; } /** * Pairs a secret environment variable with a SecretVersion in Secret Manager. */ interface SecretManagerSecretResponse { /** * Environment variable name to associate with the secret. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. */ env: string; /** * Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/* */ versionName: string; } /** * Pairs a set of secret environment variables containing encrypted values with the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `available_secrets` instead of using `kmsKeyName` with `secret`. For instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/use-encrypted-credentials. */ interface SecretResponse { /** * Cloud KMS key name to use to decrypt these envs. */ kmsKeyName: string; /** * Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets. */ secretEnv: { [key: string]: string; }; } /** * Secrets and secret environment variables. */ interface SecretsResponse { /** * Secrets encrypted with KMS key and the associated secret environment variable. */ inline: outputs.cloudbuild.v1.InlineSecretResponse[]; /** * Secrets in Secret Manager and associated secret environment variable. */ secretManager: outputs.cloudbuild.v1.SecretManagerSecretResponse[]; } /** * ServiceDirectoryConfig represents Service Directory configuration for a SCM host connection. */ interface ServiceDirectoryConfigResponse { /** * The Service Directory service name. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. */ service: string; } /** * Provenance of the source. Ways to find the original source, or verify that some source was used for this build. */ interface SourceProvenanceResponse { /** * Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. Note that `FileHashes` will only be populated if `BuildOptions` has requested a `SourceProvenanceHash`. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (`.tar.gz`), the `FileHash` will be for the single path to that file. */ fileHashes: { [key: string]: string; }; /** * A copy of the build's `source.connected_repository`, if exists, with any revisions resolved. */ resolvedConnectedRepository: outputs.cloudbuild.v1.ConnectedRepositoryResponse; /** * A copy of the build's `source.git_source`, if exists, with any revisions resolved. */ resolvedGitSource: outputs.cloudbuild.v1.GitSourceResponse; /** * A copy of the build's `source.repo_source`, if exists, with any revisions resolved. */ resolvedRepoSource: outputs.cloudbuild.v1.RepoSourceResponse; /** * A copy of the build's `source.storage_source`, if exists, with any generations resolved. */ resolvedStorageSource: outputs.cloudbuild.v1.StorageSourceResponse; /** * A copy of the build's `source.storage_source_manifest`, if exists, with any revisions resolved. This feature is in Preview. */ resolvedStorageSourceManifest: outputs.cloudbuild.v1.StorageSourceManifestResponse; } /** * Location of the source in a supported storage service. */ interface SourceResponse { /** * Optional. If provided, get the source from this 2nd-gen Google Cloud Build repository resource. */ connectedRepository: outputs.cloudbuild.v1.ConnectedRepositoryResponse; /** * If provided, get the source from this Git repository. */ gitSource: outputs.cloudbuild.v1.GitSourceResponse; /** * If provided, get the source from this location in a Cloud Source Repository. */ repoSource: outputs.cloudbuild.v1.RepoSourceResponse; /** * If provided, get the source from this location in Cloud Storage. */ storageSource: outputs.cloudbuild.v1.StorageSourceResponse; /** * If provided, get the source from this manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher). */ storageSourceManifest: outputs.cloudbuild.v1.StorageSourceManifestResponse; } /** * Location of the source manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher). */ interface StorageSourceManifestResponse { /** * Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). */ bucket: string; /** * Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used. */ generation: string; /** * Cloud Storage object containing the source manifest. This object must be a JSON file. */ object: string; } /** * Location of the source in an archive file in Cloud Storage. */ interface StorageSourceResponse { /** * Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). */ bucket: string; /** * Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used. */ generation: string; /** * Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build. */ object: string; /** * Optional. Option to specify the tool to fetch the source file for the build. */ sourceFetcher: string; } /** * Start and end times for a build execution phase. */ interface TimeSpanResponse { /** * End of time span. */ endTime: string; /** * Start of time span. */ startTime: string; } /** * A Maven artifact uploaded using the MavenArtifact directive. */ interface UploadedMavenArtifactResponse { /** * Hash types and values of the Maven Artifact. */ fileHashes: outputs.cloudbuild.v1.FileHashesResponse; /** * Stores timing information for pushing the specified artifact. */ pushTiming: outputs.cloudbuild.v1.TimeSpanResponse; /** * URI of the uploaded artifact. */ uri: string; } /** * An npm package uploaded to Artifact Registry using the NpmPackage directive. */ interface UploadedNpmPackageResponse { /** * Hash types and values of the npm package. */ fileHashes: outputs.cloudbuild.v1.FileHashesResponse; /** * Stores timing information for pushing the specified artifact. */ pushTiming: outputs.cloudbuild.v1.TimeSpanResponse; /** * URI of the uploaded npm package. */ uri: string; } /** * Artifact uploaded using the PythonPackage directive. */ interface UploadedPythonPackageResponse { /** * Hash types and values of the Python Artifact. */ fileHashes: outputs.cloudbuild.v1.FileHashesResponse; /** * Stores timing information for pushing the specified artifact. */ pushTiming: outputs.cloudbuild.v1.TimeSpanResponse; /** * URI of the uploaded artifact. */ uri: string; } /** * Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution. */ interface VolumeResponse { /** * Name of the volume to mount. Volume names must be unique per build step and must be valid names for Docker volumes. Each named volume must be used by at least two build steps. */ name: string; /** * Path at which to mount the volume. Paths must be absolute and cannot conflict with other volume paths on the same build step or with certain reserved volume paths. */ path: string; } /** * A non-fatal problem encountered during the execution of the build. */ interface WarningResponse { /** * The priority for this warning. */ priority: string; /** * Explanation of the warning generated. */ text: string; } /** * WebhookConfig describes the configuration of a trigger that creates a build whenever a webhook is sent to a trigger's webhook URL. */ interface WebhookConfigResponse { /** * Resource name for the secret required as a URL parameter. */ secret: string; /** * Potential issues with the underlying Pub/Sub subscription configuration. Only populated on get requests. */ state: string; } /** * Defines the configuration to be used for creating workers in the pool. */ interface WorkerConfigResponse { /** * Size of the disk attached to the worker, in GB. See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). Specify a value of up to 2000. If `0` is specified, Cloud Build will use a standard disk size. */ diskSizeGb: string; /** * Machine type of a worker, such as `e2-medium`. See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). If left blank, Cloud Build will use a sensible default. */ machineType: string; } } namespace v1alpha1 { /** * Network describes the GCP network used to create workers in. */ interface NetworkResponse { /** * Network on which the workers are created. "default" network is used if empty. */ network: string; /** * Project id containing the defined network and subnetwork. For a peered VPC, this will be the same as the project_id in which the workers are created. For a shared VPC, this will be the project sharing the network with the project_id project in which workers will be created. For custom workers with no VPC, this will be the same as project_id. */ project: string; /** * Subnetwork on which the workers are created. "default" subnetwork is used if empty. */ subnetwork: string; } /** * WorkerConfig defines the configuration to be used for a creating workers in the pool. */ interface WorkerConfigResponse { /** * Size of the disk attached to the worker, in GB. See https://cloud.google.com/compute/docs/disks/ If `0` is specified, Cloud Build will use a standard disk size. `disk_size` is overridden if you specify a different disk size in `build_options`. In this case, a VM with a disk size specified in the `build_options` will be created on demand at build time. For more information see https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#buildoptions */ diskSizeGb: string; /** * Machine Type of the worker, such as n1-standard-1. See https://cloud.google.com/compute/docs/machine-types. If left blank, Cloud Build will use a standard unspecified machine to create the worker pool. `machine_type` is overridden if you specify a different machine type in `build_options`. In this case, the VM specified in the `build_options` will be created on demand at build time. For more information see https://cloud.google.com/cloud-build/docs/speeding-up-builds#using_custom_virtual_machine_sizes */ machineType: string; /** * The network definition used to create the worker. If this section is left empty, the workers will be created in WorkerPool.project_id on the default network. */ network: outputs.cloudbuild.v1alpha1.NetworkResponse; /** * The tag applied to the worker, and the same tag used by the firewall rule. It is used to identify the Cloud Build workers among other VMs. The default value for tag is `worker`. */ tag: string; } } namespace v1alpha2 { /** * Network describes the network configuration for a `WorkerPool`. */ interface NetworkConfigResponse { /** * Immutable. The network definition that the workers are peered to. If this section is left empty, the workers will be peered to WorkerPool.project_id on the default network. Must be in the format `projects/{project}/global/networks/{network}`, where {project} is a project number, such as `12345`, and {network} is the name of a VPC network in the project. */ peeredNetwork: string; } /** * WorkerConfig defines the configuration to be used for a creating workers in the pool. */ interface WorkerConfigResponse { /** * Size of the disk attached to the worker, in GB. See https://cloud.google.com/compute/docs/disks/ If `0` is specified, Cloud Build will use a standard disk size. */ diskSizeGb: string; /** * Machine Type of the worker, such as n1-standard-1. See https://cloud.google.com/compute/docs/machine-types. If left blank, Cloud Build will use a standard unspecified machine to create the worker pool. */ machineType: string; } } namespace v1beta1 { /** * Network describes the network configuration for a `WorkerPool`. */ interface NetworkConfigResponse { /** * Immutable. The network definition that the workers are peered to. If this section is left empty, the workers will be peered to `WorkerPool.project_id` on the service producer network. Must be in the format `projects/{project}/global/networks/{network}`, where `{project}` is a project number, such as `12345`, and `{network}` is the name of a VPC network in the project. See [Understanding network configuration options](https://cloud.google.com/cloud-build/docs/custom-workers/set-up-custom-worker-pool-environment#understanding_the_network_configuration_options) */ peeredNetwork: string; } /** * Defines the configuration to be used for creating workers in the pool. */ interface WorkerConfigResponse { /** * Size of the disk attached to the worker, in GB. See [Worker pool config file](https://cloud.google.com/cloud-build/docs/custom-workers/worker-pool-config-file). Specify a value of up to 1000. If `0` is specified, Cloud Build will use a standard disk size. */ diskSizeGb: string; /** * Machine type of a worker, such as `n1-standard-1`. See [Worker pool config file](https://cloud.google.com/cloud-build/docs/custom-workers/worker-pool-config-file). If left blank, Cloud Build will use `n1-standard-1`. */ machineType: string; /** * If true, workers are created without any public address, which prevents network egress to public IPs. */ noExternalIp: boolean; } } namespace v2 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudbuild.v2.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudbuild.v2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Configuration for connections to github.com. */ interface GitHubConfigResponse { /** * GitHub App installation id. */ appInstallationId: string; /** * OAuth credential of the account that authorized the Cloud Build GitHub App. It is recommended to use a robot account instead of a human user account. The OAuth token must be tied to the Cloud Build GitHub App. */ authorizerCredential: outputs.cloudbuild.v2.OAuthCredentialResponse; } /** * Configuration for connections to an instance of GitHub Enterprise. */ interface GoogleDevtoolsCloudbuildV2GitHubEnterpriseConfigResponse { /** * API Key used for authentication of webhook events. */ apiKey: string; /** * Id of the GitHub App created from the manifest. */ appId: string; /** * ID of the installation of the GitHub App. */ appInstallationId: string; /** * The URL-friendly name of the GitHub App. */ appSlug: string; /** * The URI of the GitHub Enterprise host this connection is for. */ hostUri: string; /** * SecretManager resource containing the private key of the GitHub App, formatted as `projects/*/secrets/*/versions/*`. */ privateKeySecretVersion: string; /** * GitHub Enterprise version installed at the host_uri. */ serverVersion: string; /** * Configuration for using Service Directory to privately connect to a GitHub Enterprise server. This should only be set if the GitHub Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the GitHub Enterprise server will be made over the public internet. */ serviceDirectoryConfig: outputs.cloudbuild.v2.GoogleDevtoolsCloudbuildV2ServiceDirectoryConfigResponse; /** * SSL certificate to use for requests to GitHub Enterprise. */ sslCa: string; /** * SecretManager resource containing the webhook secret of the GitHub App, formatted as `projects/*/secrets/*/versions/*`. */ webhookSecretSecretVersion: string; } /** * Configuration for connections to gitlab.com or an instance of GitLab Enterprise. */ interface GoogleDevtoolsCloudbuildV2GitLabConfigResponse { /** * A GitLab personal access token with the `api` scope access. */ authorizerCredential: outputs.cloudbuild.v2.UserCredentialResponse; /** * The URI of the GitLab Enterprise host this connection is for. If not specified, the default value is https://gitlab.com. */ hostUri: string; /** * A GitLab personal access token with the minimum `read_api` scope access. */ readAuthorizerCredential: outputs.cloudbuild.v2.UserCredentialResponse; /** * Version of the GitLab Enterprise server running on the `host_uri`. */ serverVersion: string; /** * Configuration for using Service Directory to privately connect to a GitLab Enterprise server. This should only be set if the GitLab Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the GitLab Enterprise server will be made over the public internet. */ serviceDirectoryConfig: outputs.cloudbuild.v2.GoogleDevtoolsCloudbuildV2ServiceDirectoryConfigResponse; /** * SSL certificate to use for requests to GitLab Enterprise. */ sslCa: string; /** * Immutable. SecretManager resource containing the webhook secret of a GitLab Enterprise project, formatted as `projects/*/secrets/*/versions/*`. */ webhookSecretSecretVersion: string; } /** * ServiceDirectoryConfig represents Service Directory configuration for a connection. */ interface GoogleDevtoolsCloudbuildV2ServiceDirectoryConfigResponse { /** * The Service Directory service name. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. */ service: string; } /** * Describes stage and necessary actions to be taken by the user to complete the installation. Used for GitHub and GitHub Enterprise based connections. */ interface InstallationStateResponse { /** * Link to follow for next action. Empty string if the installation is already complete. */ actionUri: string; /** * Message of what the user should do next to continue the installation. Empty string if the installation is already complete. */ message: string; /** * Current step of the installation process. */ stage: string; } /** * Represents an OAuth token of the account that authorized the Connection, and associated metadata. */ interface OAuthCredentialResponse { /** * A SecretManager resource containing the OAuth token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`. */ oauthTokenSecretVersion: string; /** * The username associated to this token. */ username: string; } /** * Represents a personal access token that authorized the Connection, and associated metadata. */ interface UserCredentialResponse { /** * A SecretManager resource containing the user token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`. */ userTokenSecretVersion: string; /** * The username associated to this token. */ username: string; } } } export declare namespace cloudchannel { namespace v1 { /** * Association links that an entitlement has to other entitlements. */ interface GoogleCloudChannelV1AssociationInfoResponse { /** * The name of the base entitlement, for which this entitlement is an add-on. */ baseEntitlement: string; } /** * Cloud Identity information for the Cloud Channel Customer. */ interface GoogleCloudChannelV1CloudIdentityInfoResponse { /** * URI of Customer's Admin console dashboard. */ adminConsoleUri: string; /** * The alternate email. */ alternateEmail: string; /** * CustomerType indicates verification type needed for using services. */ customerType: string; /** * Edu information about the customer. */ eduData: outputs.cloudchannel.v1.GoogleCloudChannelV1EduDataResponse; /** * Whether the domain is verified. This field is not returned for a Customer's cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK's Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers. */ isDomainVerified: boolean; /** * Language code. */ languageCode: string; /** * Phone number associated with the Cloud Identity. */ phoneNumber: string; /** * The primary domain name. */ primaryDomain: string; } /** * Commitment settings for commitment-based offers. */ interface GoogleCloudChannelV1CommitmentSettingsResponse { /** * Commitment end timestamp. */ endTime: string; /** * Optional. Renewal settings applicable for a commitment-based Offer. */ renewalSettings: outputs.cloudchannel.v1.GoogleCloudChannelV1RenewalSettingsResponse; /** * Commitment start timestamp. */ startTime: string; } /** * Specifies the override to conditionally apply. */ interface GoogleCloudChannelV1ConditionalOverrideResponse { /** * Information about the applied override's adjustment. */ adjustment: outputs.cloudchannel.v1.GoogleCloudChannelV1RepricingAdjustmentResponse; /** * The RebillingBasis to use for the applied override. Shows the relative cost based on your repricing costs. */ rebillingBasis: string; /** * Specifies the condition which, if met, will apply the override. */ repricingCondition: outputs.cloudchannel.v1.GoogleCloudChannelV1RepricingConditionResponse; } /** * Contact information for a customer account. */ interface GoogleCloudChannelV1ContactInfoResponse { /** * The customer account contact's display name, formatted as a combination of the customer's first and last name. */ displayName: string; /** * The customer account's contact email. Required for entitlements that create admin.google.com accounts, and serves as the customer's username for those accounts. Use this email to invite Team customers. */ email: string; /** * The customer account contact's first name. Optional for Team customers. */ firstName: string; /** * The customer account contact's last name. Optional for Team customers. */ lastName: string; /** * The customer account's contact phone number. */ phone: string; /** * Optional. The customer account contact's job title. */ title: string; } /** * Required Edu Attributes */ interface GoogleCloudChannelV1EduDataResponse { /** * Size of the institute. */ instituteSize: string; /** * Designated institute type of customer. */ instituteType: string; /** * Web address for the edu customer's institution. */ website: string; } /** * Definition for extended entitlement parameters. */ interface GoogleCloudChannelV1ParameterResponse { /** * Specifies whether this parameter is allowed to be changed. For example, for a Google Workspace Business Starter entitlement in commitment plan, num_units is editable when entitlement is active. */ editable: boolean; /** * Name of the parameter. */ name: string; /** * Value of the parameter. */ value: outputs.cloudchannel.v1.GoogleCloudChannelV1ValueResponse; } /** * An adjustment that applies a flat markup or markdown to an entire bill. */ interface GoogleCloudChannelV1PercentageAdjustmentResponse { /** * The percentage of the bill to adjust. For example: Mark down by 1% => "-1.00" Mark up by 1% => "1.00" Pass-Through => "0.00" */ percentage: outputs.cloudchannel.v1.GoogleTypeDecimalResponse; } /** * Represents period in days/months/years. */ interface GoogleCloudChannelV1PeriodResponse { /** * Total duration of Period Type defined. */ duration: number; /** * Period Type. */ periodType: string; } /** * Service provisioned for an entitlement. */ interface GoogleCloudChannelV1ProvisionedServiceResponse { /** * The product pertaining to the provisioning resource as specified in the Offer. */ productId: string; /** * Provisioning ID of the entitlement. For Google Workspace, this is the underlying Subscription ID. For Google Cloud, this is the Billing Account ID of the billing subaccount. */ provisioningId: string; /** * The SKU pertaining to the provisioning resource as specified in the Offer. */ skuId: string; } /** * Renewal settings for renewable Offers. */ interface GoogleCloudChannelV1RenewalSettingsResponse { /** * If false, the plan will be completed at the end date. */ enableRenewal: boolean; /** * Describes how frequently the reseller will be billed, such as once per month. */ paymentCycle: outputs.cloudchannel.v1.GoogleCloudChannelV1PeriodResponse; /** * Describes how a reseller will be billed. */ paymentPlan: string; /** * If true and enable_renewal = true, the unit (for example seats or licenses) will be set to the number of active units at renewal time. */ resizeUnitCount: boolean; } /** * A type that represents the various adjustments you can apply to a bill. */ interface GoogleCloudChannelV1RepricingAdjustmentResponse { /** * Flat markup or markdown on an entire bill. */ percentageAdjustment: outputs.cloudchannel.v1.GoogleCloudChannelV1PercentageAdjustmentResponse; } /** * Represents the various repricing conditions you can use for a conditional override. */ interface GoogleCloudChannelV1RepricingConditionResponse { /** * SKU Group condition for override. */ skuGroupCondition: outputs.cloudchannel.v1.GoogleCloudChannelV1SkuGroupConditionResponse; } /** * Applies the repricing configuration at the channel partner level. The channel partner value is derived from the resource name. Takes an empty json object. Deprecated: This is no longer supported. Use RepricingConfig.EntitlementGranularity instead. */ interface GoogleCloudChannelV1RepricingConfigChannelPartnerGranularityResponse { } /** * Applies the repricing configuration at the entitlement level. */ interface GoogleCloudChannelV1RepricingConfigEntitlementGranularityResponse { /** * Resource name of the entitlement. Format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} */ entitlement: string; } /** * Configuration for repricing a Google bill over a period of time. */ interface GoogleCloudChannelV1RepricingConfigResponse { /** * Information about the adjustment. */ adjustment: outputs.cloudchannel.v1.GoogleCloudChannelV1RepricingAdjustmentResponse; /** * Applies the repricing configuration at the channel partner level. Only ChannelPartnerRepricingConfig supports this value. Deprecated: This is no longer supported. Use RepricingConfig.entitlement_granularity instead. * * @deprecated Applies the repricing configuration at the channel partner level. Only ChannelPartnerRepricingConfig supports this value. Deprecated: This is no longer supported. Use RepricingConfig.entitlement_granularity instead. */ channelPartnerGranularity: outputs.cloudchannel.v1.GoogleCloudChannelV1RepricingConfigChannelPartnerGranularityResponse; /** * The conditional overrides to apply for this configuration. If you list multiple overrides, only the first valid override is used. If you don't list any overrides, the API uses the normal adjustment and rebilling basis. */ conditionalOverrides: outputs.cloudchannel.v1.GoogleCloudChannelV1ConditionalOverrideResponse[]; /** * The YearMonth when these adjustments activate. The Day field needs to be "0" since we only accept YearMonth repricing boundaries. */ effectiveInvoiceMonth: outputs.cloudchannel.v1.GoogleTypeDateResponse; /** * Applies the repricing configuration at the entitlement level. Note: If a ChannelPartnerRepricingConfig using RepricingConfig.EntitlementGranularity becomes effective, then no existing or future RepricingConfig.ChannelPartnerGranularity will apply to the RepricingConfig.EntitlementGranularity.entitlement. This is the recommended value for both CustomerRepricingConfig and ChannelPartnerRepricingConfig. */ entitlementGranularity: outputs.cloudchannel.v1.GoogleCloudChannelV1RepricingConfigEntitlementGranularityResponse; /** * The RebillingBasis to use for this bill. Specifies the relative cost based on repricing costs you will apply. */ rebillingBasis: string; } /** * A condition that applies the override if a line item SKU is found in the SKU group. */ interface GoogleCloudChannelV1SkuGroupConditionResponse { /** * Specifies a SKU group (https://cloud.google.com/skus/sku-groups). Resource name of SKU group. Format: accounts/{account}/skuGroups/{sku_group}. Example: "accounts/C01234/skuGroups/3d50fd57-3157-4577-a5a9-a219b8490041". */ skuGroup: string; } /** * Settings for trial offers. */ interface GoogleCloudChannelV1TrialSettingsResponse { /** * Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example [Epoch converter](https://www.epochconverter.com). */ endTime: string; /** * Determines if the entitlement is in a trial or not: * `true` - The entitlement is in trial. * `false` - The entitlement is not in trial. */ trial: boolean; } /** * Data type and value of a parameter. */ interface GoogleCloudChannelV1ValueResponse { /** * Represents a boolean value. */ boolValue: boolean; /** * Represents a double value. */ doubleValue: number; /** * Represents an int64 value. */ int64Value: string; /** * Represents an 'Any' proto value. */ protoValue: { [key: string]: string; }; /** * Represents a string value. */ stringValue: string; } /** * Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp */ interface GoogleTypeDateResponse { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day: number; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month: number; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year: number; } /** * A representation of a decimal value, such as 2.5. Clients may convert values into language-native decimal formats, such as Java's BigDecimal or Python's decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.org/3/library/decimal.html */ interface GoogleTypeDecimalResponse { /** * The decimal value, as a string. The string representation consists of an optional sign, `+` (`U+002B`) or `-` (`U+002D`), followed by a sequence of zero or more decimal digits ("the integer"), optionally followed by a fraction, optionally followed by an exponent. An empty string **should** be interpreted as `0`. The fraction consists of a decimal point followed by zero or more decimal digits. The string must contain at least one digit in either the integer or the fraction. The number formed by the sign, the integer and the fraction is referred to as the significand. The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`) followed by one or more decimal digits. Services **should** normalize decimal values before storing them by: - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). - Replacing a zero-length integer value with `0` (`.5` -> `0.5`). - Coercing the exponent character to upper-case, with explicit sign (`2.5e8` -> `2.5E+8`). - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`). Services **may** perform additional normalization based on its own needs and the internal decimal implementation selected, such as shifting the decimal point and exponent value together (example: `2.5E-1` <-> `0.25`). Additionally, services **may** preserve trailing zeroes in the fraction to indicate increased precision, but are not required to do so. Note that only the `.` character is supported to divide the integer and the fraction; `,` **should not** be supported regardless of locale. Additionally, thousand separators **should not** be supported. If a service does support them, values **must** be normalized. The ENBF grammar is: DecimalString = '' | [Sign] Significand [Exponent]; Sign = '+' | '-'; Significand = Digits '.' | [Digits] '.' Digits; Exponent = ('e' | 'E') [Sign] Digits; Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; Services **should** clearly document the range of supported values, the maximum supported precision (total number of digits), and, if applicable, the scale (number of digits after the decimal point), as well as how it behaves when receiving out-of-bounds values. Services **may** choose to accept values passed as input even when the value has a higher precision or scale than the service supports, and **should** round the value to fit the supported scale. Alternatively, the service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if precision would be lost. Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if the service receives a value outside of the supported range. */ value: string; } /** * Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 */ interface GoogleTypePostalAddressResponse { /** * Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. "Austin, TX"), it is important that the line order is clear. The order of address lines should be "envelope order" for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. "ja" for large-to-small ordering and "ja-Latn" or "en" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas). */ addressLines: string[]; /** * Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated. */ administrativeArea: string; /** * Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: "zh-Hant", "ja", "ja-Latn", "en". */ languageCode: string; /** * Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines. */ locality: string; /** * Optional. The name of the organization at the address. */ organization: string; /** * Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.). */ postalCode: string; /** * Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain "care of" information. */ recipients: string[]; /** * CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for Switzerland. */ regionCode: string; /** * The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions. */ revision: number; /** * Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). */ sortingCode: string; /** * Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts. */ sublocality: string; } } } export declare namespace clouddeploy { namespace v1 { /** * An advanceChildRollout Job. */ interface AdvanceChildRolloutJobResponse { } /** * The `AdvanceRollout` automation rule will automatically advance a successful Rollout to the next phase. */ interface AdvanceRolloutRuleResponse { /** * Information around the state of the Automation rule. */ condition: outputs.clouddeploy.v1.AutomationRuleConditionResponse; /** * Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. */ sourcePhases: string[]; /** * Optional. How long to wait after a rollout is finished. */ wait: string; } /** * Information specifying an Anthos Cluster. */ interface AnthosClusterResponse { /** * Membership of the GKE Hub-registered cluster to which to apply the Skaffold configuration. Format is `projects/{project}/locations/{location}/memberships/{membership_name}`. */ membership: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.clouddeploy.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * AutomationResourceSelector contains the information to select the resources to which an Automation is going to be applied. */ interface AutomationResourceSelectorResponse { /** * Contains attributes about a target. */ targets: outputs.clouddeploy.v1.TargetAttributeResponse[]; } /** * AutomationRolloutMetadata contains Automation-related actions that were performed on a rollout. */ interface AutomationRolloutMetadataResponse { /** * The IDs of the AutomationRuns initiated by an advance rollout rule. */ advanceAutomationRuns: string[]; /** * The ID of the AutomationRun initiated by a promote release rule. */ promoteAutomationRun: string; /** * The IDs of the AutomationRuns initiated by a repair rollout rule. */ repairAutomationRuns: string[]; } /** * `AutomationRuleCondition` contains conditions relevant to an `Automation` rule. */ interface AutomationRuleConditionResponse { /** * Optional. Details around targets enumerated in the rule. */ targetsPresentCondition: outputs.clouddeploy.v1.TargetsPresentConditionResponse; } /** * `AutomationRule` defines the automation activities. */ interface AutomationRuleResponse { /** * Optional. The `AdvanceRolloutRule` will automatically advance a successful Rollout. */ advanceRolloutRule: outputs.clouddeploy.v1.AdvanceRolloutRuleResponse; /** * Optional. `PromoteReleaseRule` will automatically promote a release from the current target to a specified target. */ promoteReleaseRule: outputs.clouddeploy.v1.PromoteReleaseRuleResponse; /** * Optional. The `RepairRolloutRule` will automatically repair a failed rollout. */ repairRolloutRule: outputs.clouddeploy.v1.RepairRolloutRuleResponse; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.clouddeploy.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Description of an a image to use during Skaffold rendering. */ interface BuildArtifactResponse { /** * Image name in Skaffold configuration. */ image: string; /** * Image tag to use. This will generally be the full path to an image, such as "gcr.io/my-project/busybox:1.2.3" or "gcr.io/my-project/busybox@sha256:abc123". */ tag: string; } /** * CanaryDeployment represents the canary deployment configuration */ interface CanaryDeploymentResponse { /** * The percentage based deployments that will occur as a part of a `Rollout`. List is expected in ascending order and each integer n is 0 <= n < 100. */ percentages: number[]; /** * Optional. Configuration for the postdeploy job of the last phase. If this is not configured, there will be no postdeploy job for this phase. */ postdeploy: outputs.clouddeploy.v1.PostdeployResponse; /** * Optional. Configuration for the predeploy job of the first phase. If this is not configured, there will be no predeploy job for this phase. */ predeploy: outputs.clouddeploy.v1.PredeployResponse; /** * Whether to run verify tests after each percentage deployment. */ verify: boolean; } /** * Canary represents the canary deployment strategy. */ interface CanaryResponse { /** * Configures the progressive based deployment for a Target. */ canaryDeployment: outputs.clouddeploy.v1.CanaryDeploymentResponse; /** * Configures the progressive based deployment for a Target, but allows customizing at the phase level where a phase represents each of the percentage deployments. */ customCanaryDeployment: outputs.clouddeploy.v1.CustomCanaryDeploymentResponse; /** * Optional. Runtime specific configurations for the deployment strategy. The runtime configuration is used to determine how Cloud Deploy will split traffic to enable a progressive deployment. */ runtimeConfig: outputs.clouddeploy.v1.RuntimeConfigResponse; } /** * ChildRollouts job composition */ interface ChildRolloutJobsResponse { /** * List of AdvanceChildRolloutJobs */ advanceRolloutJobs: outputs.clouddeploy.v1.JobResponse[]; /** * List of CreateChildRolloutJobs */ createRolloutJobs: outputs.clouddeploy.v1.JobResponse[]; } /** * CloudRunConfig contains the Cloud Run runtime configuration. */ interface CloudRunConfigResponse { /** * Whether Cloud Deploy should update the traffic stanza in a Cloud Run Service on the user's behalf to facilitate traffic splitting. This is required to be true for CanaryDeployments, but optional for CustomCanaryDeployments. */ automaticTrafficControl: boolean; } /** * Information specifying where to deploy a Cloud Run Service. */ interface CloudRunLocationResponse { /** * The location for the Cloud Run Service. Format must be `projects/{project}/locations/{location}`. */ location: string; } /** * CloudRunMetadata contains information from a Cloud Run deployment. */ interface CloudRunMetadataResponse { /** * The name of the Cloud Run job that is associated with a `Rollout`. Format is `projects/{project}/locations/{location}/jobs/{job_name}`. */ job: string; /** * The Cloud Run Revision id associated with a `Rollout`. */ revision: string; /** * The name of the Cloud Run Service that is associated with a `Rollout`. Format is `projects/{project}/locations/{location}/services/{service}`. */ service: string; /** * The Cloud Run Service urls that are associated with a `Rollout`. */ serviceUrls: string[]; } /** * A createChildRollout Job. */ interface CreateChildRolloutJobResponse { } /** * CustomCanaryDeployment represents the custom canary deployment configuration. */ interface CustomCanaryDeploymentResponse { /** * Configuration for each phase in the canary deployment in the order executed. */ phaseConfigs: outputs.clouddeploy.v1.PhaseConfigResponse[]; } /** * Execution using the default Cloud Build pool. */ interface DefaultPoolResponse { /** * Optional. Cloud Storage location where execution outputs should be stored. This can either be a bucket ("gs://my-bucket") or a path within a bucket ("gs://my-bucket/my-dir"). If unspecified, a default bucket located in the same region will be used. */ artifactStorage: string; /** * Optional. Google service account to use for execution. If unspecified, the project execution service account (-compute@developer.gserviceaccount.com) will be used. */ serviceAccount: string; } /** * A `DeliveryPipeline` resource in the Cloud Deploy API. A `DeliveryPipeline` defines a pipeline through which a Skaffold configuration can progress. */ interface DeliveryPipelineResponse { /** * User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. */ annotations: { [key: string]: string; }; /** * Information around the state of the Delivery Pipeline. */ condition: outputs.clouddeploy.v1.PipelineConditionResponse; /** * Time at which the pipeline was created. */ createTime: string; /** * Description of the `DeliveryPipeline`. Max length is 255 characters. */ description: string; /** * This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. */ etag: string; /** * Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 128 bytes. */ labels: { [key: string]: string; }; /** * Optional. Name of the `DeliveryPipeline`. Format is `projects/{project}/locations/{location}/deliveryPipelines/a-z{0,62}`. */ name: string; /** * SerialPipeline defines a sequential set of stages for a `DeliveryPipeline`. */ serialPipeline: outputs.clouddeploy.v1.SerialPipelineResponse; /** * When suspended, no new releases or rollouts can be created, but in-progress ones will complete. */ suspended: boolean; /** * Unique identifier of the `DeliveryPipeline`. */ uid: string; /** * Most recent time at which the pipeline was updated. */ updateTime: string; } /** * A deploy Job. */ interface DeployJobResponse { } /** * DeployParameters contains deploy parameters information. */ interface DeployParametersResponse { /** * Optional. Deploy parameters are applied to targets with match labels. If unspecified, deploy parameters are applied to all targets (including child targets of a multi-target). */ matchTargetLabels: { [key: string]: string; }; /** * Values are deploy parameters in key-value pairs. */ values: { [key: string]: string; }; } /** * Deployment job composition. */ interface DeploymentJobsResponse { /** * The deploy Job. This is the deploy job in the phase. */ deployJob: outputs.clouddeploy.v1.JobResponse; /** * The postdeploy Job, which is the last job on the phase. */ postdeployJob: outputs.clouddeploy.v1.JobResponse; /** * The predeploy Job, which is the first job on the phase. */ predeployJob: outputs.clouddeploy.v1.JobResponse; /** * The verify Job. Runs after a deploy if the deploy succeeds. */ verifyJob: outputs.clouddeploy.v1.JobResponse; } /** * Configuration of the environment to use when calling Skaffold. */ interface ExecutionConfigResponse { /** * Optional. Cloud Storage location in which to store execution outputs. This can either be a bucket ("gs://my-bucket") or a path within a bucket ("gs://my-bucket/my-dir"). If unspecified, a default bucket located in the same region will be used. */ artifactStorage: string; /** * Optional. Use default Cloud Build pool. */ defaultPool: outputs.clouddeploy.v1.DefaultPoolResponse; /** * Optional. Execution timeout for a Cloud Build Execution. This must be between 10m and 24h in seconds format. If unspecified, a default timeout of 1h is used. */ executionTimeout: string; /** * Optional. Use private Cloud Build pool. */ privatePool: outputs.clouddeploy.v1.PrivatePoolResponse; /** * Optional. Google service account to use for execution. If unspecified, the project execution service account (-compute@developer.gserviceaccount.com) is used. */ serviceAccount: string; /** * Usages when this configuration should be applied. */ usages: string[]; /** * Optional. The resource name of the `WorkerPool`, with the format `projects/{project}/locations/{location}/workerPools/{worker_pool}`. If this optional field is unspecified, the default Cloud Build pool will be used. */ workerPool: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Information about the Kubernetes Gateway API service mesh configuration. */ interface GatewayServiceMeshResponse { /** * Name of the Kubernetes Deployment whose traffic is managed by the specified HTTPRoute and Service. */ deployment: string; /** * Name of the Gateway API HTTPRoute. */ httpRoute: string; /** * Optional. The time to wait for route updates to propagate. The maximum configurable time is 3 hours, in seconds format. If unspecified, there is no wait time. */ routeUpdateWaitTime: string; /** * Name of the Kubernetes Service. */ service: string; } /** * Information specifying a GKE Cluster. */ interface GkeClusterResponse { /** * Information specifying a GKE Cluster. Format is `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`. */ cluster: string; /** * Optional. If true, `cluster` is accessed using the private IP address of the control plane endpoint. Otherwise, the default IP address of the control plane endpoint is used. The default IP address is the private IP address for clusters with private control-plane endpoints and the public IP address otherwise. Only specify this option when `cluster` is a [private GKE cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept). */ internalIp: boolean; } /** * Job represents an operation for a `Rollout`. */ interface JobResponse { /** * An advanceChildRollout Job. */ advanceChildRolloutJob: outputs.clouddeploy.v1.AdvanceChildRolloutJobResponse; /** * A createChildRollout Job. */ createChildRolloutJob: outputs.clouddeploy.v1.CreateChildRolloutJobResponse; /** * A deploy Job. */ deployJob: outputs.clouddeploy.v1.DeployJobResponse; /** * The name of the `JobRun` responsible for the most recent invocation of this Job. */ jobRun: string; /** * A postdeploy Job. */ postdeployJob: outputs.clouddeploy.v1.PostdeployJobResponse; /** * A predeploy Job. */ predeployJob: outputs.clouddeploy.v1.PredeployJobResponse; /** * Additional information on why the Job was skipped, if available. */ skipMessage: string; /** * The current state of the Job. */ state: string; /** * A verify Job. */ verifyJob: outputs.clouddeploy.v1.VerifyJobResponse; } /** * KubernetesConfig contains the Kubernetes runtime configuration. */ interface KubernetesConfigResponse { /** * Kubernetes Gateway API service mesh configuration. */ gatewayServiceMesh: outputs.clouddeploy.v1.GatewayServiceMeshResponse; /** * Kubernetes Service networking configuration. */ serviceNetworking: outputs.clouddeploy.v1.ServiceNetworkingResponse; } /** * Metadata includes information associated with a `Rollout`. */ interface MetadataResponse { /** * AutomationRolloutMetadata contains the information about the interactions between Automation service and this rollout. */ automation: outputs.clouddeploy.v1.AutomationRolloutMetadataResponse; /** * The name of the Cloud Run Service that is associated with a `Rollout`. */ cloudRun: outputs.clouddeploy.v1.CloudRunMetadataResponse; } /** * Information specifying a multiTarget. */ interface MultiTargetResponse { /** * The target_ids of this multiTarget. */ targetIds: string[]; } /** * PhaseConfig represents the configuration for a phase in the custom canary deployment. */ interface PhaseConfigResponse { /** * Percentage deployment for the phase. */ percentage: number; /** * The ID to assign to the `Rollout` phase. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. */ phaseId: string; /** * Optional. Configuration for the postdeploy job of this phase. If this is not configured, there will be no postdeploy job for this phase. */ postdeploy: outputs.clouddeploy.v1.PostdeployResponse; /** * Optional. Configuration for the predeploy job of this phase. If this is not configured, there will be no predeploy job for this phase. */ predeploy: outputs.clouddeploy.v1.PredeployResponse; /** * Skaffold profiles to use when rendering the manifest for this phase. These are in addition to the profiles list specified in the `DeliveryPipeline` stage. */ profiles: string[]; /** * Whether to run verify tests after the deployment. */ verify: boolean; } /** * Phase represents a collection of jobs that are logically grouped together for a `Rollout`. */ interface PhaseResponse { /** * ChildRollout job composition. */ childRolloutJobs: outputs.clouddeploy.v1.ChildRolloutJobsResponse; /** * Deployment job composition. */ deploymentJobs: outputs.clouddeploy.v1.DeploymentJobsResponse; /** * Additional information on why the Phase was skipped, if available. */ skipMessage: string; /** * Current state of the Phase. */ state: string; } /** * PipelineCondition contains all conditions relevant to a Delivery Pipeline. */ interface PipelineConditionResponse { /** * Details around the Pipeline's overall status. */ pipelineReadyCondition: outputs.clouddeploy.v1.PipelineReadyConditionResponse; /** * Details around targets enumerated in the pipeline. */ targetsPresentCondition: outputs.clouddeploy.v1.TargetsPresentConditionResponse; /** * Details on the whether the targets enumerated in the pipeline are of the same type. */ targetsTypeCondition: outputs.clouddeploy.v1.TargetsTypeConditionResponse; } /** * PipelineReadyCondition contains information around the status of the Pipeline. */ interface PipelineReadyConditionResponse { /** * True if the Pipeline is in a valid state. Otherwise at least one condition in `PipelineCondition` is in an invalid state. Iterate over those conditions and see which condition(s) has status = false to find out what is wrong with the Pipeline. */ status: boolean; /** * Last time the condition was updated. */ updateTime: string; } /** * A postdeploy Job. */ interface PostdeployJobResponse { /** * The custom actions that the postdeploy Job executes. */ actions: string[]; } /** * Postdeploy contains the postdeploy job configuration information. */ interface PostdeployResponse { /** * Optional. A sequence of Skaffold custom actions to invoke during execution of the postdeploy job. */ actions: string[]; } /** * A predeploy Job. */ interface PredeployJobResponse { /** * The custom actions that the predeploy Job executes. */ actions: string[]; } /** * Predeploy contains the predeploy job configuration information. */ interface PredeployResponse { /** * Optional. A sequence of Skaffold custom actions to invoke during execution of the predeploy job. */ actions: string[]; } /** * Execution using a private Cloud Build pool. */ interface PrivatePoolResponse { /** * Optional. Cloud Storage location where execution outputs should be stored. This can either be a bucket ("gs://my-bucket") or a path within a bucket ("gs://my-bucket/my-dir"). If unspecified, a default bucket located in the same region will be used. */ artifactStorage: string; /** * Optional. Google service account to use for execution. If unspecified, the project execution service account (-compute@developer.gserviceaccount.com) will be used. */ serviceAccount: string; /** * Resource name of the Cloud Build worker pool to use. The format is `projects/{project}/locations/{location}/workerPools/{pool}`. */ workerPool: string; } /** * `PromoteRelease` rule will automatically promote a release from the current target to a specified target. */ interface PromoteReleaseRuleResponse { /** * Information around the state of the Automation rule. */ condition: outputs.clouddeploy.v1.AutomationRuleConditionResponse; /** * Optional. The starting phase of the rollout created by this operation. Default to the first phase. */ destinationPhase: string; /** * Optional. The ID of the stage in the pipeline to which this `Release` is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine if the target is one of the stages in the promotion sequence defined in the pipeline. * "@next", the next target in the promotion sequence. */ destinationTargetId: string; /** * Optional. How long the release need to be paused until being promoted to the next target. */ wait: string; } /** * ReleaseCondition contains all conditions relevant to a Release. */ interface ReleaseConditionResponse { /** * Details around the Releases's overall status. */ releaseReadyCondition: outputs.clouddeploy.v1.ReleaseReadyConditionResponse; /** * Details around the support state of the release's skaffold version. */ skaffoldSupportedCondition: outputs.clouddeploy.v1.SkaffoldSupportedConditionResponse; } /** * ReleaseReadyCondition contains information around the status of the Release. If a release is not ready, you cannot create a rollout with the release. */ interface ReleaseReadyConditionResponse { /** * True if the Release is in a valid state. Otherwise at least one condition in `ReleaseCondition` is in an invalid state. Iterate over those conditions and see which condition(s) has status = false to find out what is wrong with the Release. */ status: boolean; } /** * Configuration of the repair action. */ interface RepairModeResponse { /** * Optional. Retries a failed job. */ retry: outputs.clouddeploy.v1.RetryResponse; /** * Optional. Rolls back a `Rollout`. */ rollback: outputs.clouddeploy.v1.RollbackResponse; } /** * The `RepairRolloutRule` automation rule will automatically repair a failed `Rollout`. */ interface RepairRolloutRuleResponse { /** * Information around the state of the 'Automation' rule. */ condition: outputs.clouddeploy.v1.AutomationRuleConditionResponse; /** * Optional. Jobs to repair. Proceeds only after job name matched any one in the list, or for all jobs if unspecified or empty. The phase that includes the job must match the phase ID specified in `source_phase`. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. */ jobs: string[]; /** * Defines the types of automatic repair actions for failed jobs. */ repairModes: outputs.clouddeploy.v1.RepairModeResponse[]; /** * Optional. Phases within which jobs are subject to automatic repair actions on failure. Proceeds only after phase name matched any one in the list, or for all phases if unspecified. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. */ sourcePhases: string[]; } /** * Retries the failed job. */ interface RetryResponse { /** * Total number of retries. Retry will skipped if set to 0; The minimum value is 1, and the maximum value is 10. */ attempts: string; /** * Optional. The pattern of how wait time will be increased. Default is linear. Backoff mode will be ignored if `wait` is 0. */ backoffMode: string; /** * Optional. How long to wait for the first retry. Default is 0, and the maximum value is 14d. */ wait: string; } /** * Rolls back a `Rollout`. */ interface RollbackResponse { /** * Optional. The starting phase ID for the `Rollout`. If unspecified, the `Rollout` will start in the stable phase. */ destinationPhase: string; } /** * RuntimeConfig contains the runtime specific configurations for a deployment strategy. */ interface RuntimeConfigResponse { /** * Cloud Run runtime configuration. */ cloudRun: outputs.clouddeploy.v1.CloudRunConfigResponse; /** * Kubernetes runtime configuration. */ kubernetes: outputs.clouddeploy.v1.KubernetesConfigResponse; } /** * SerialPipeline defines a sequential set of stages for a `DeliveryPipeline`. */ interface SerialPipelineResponse { /** * Each stage specifies configuration for a `Target`. The ordering of this list defines the promotion flow. */ stages: outputs.clouddeploy.v1.StageResponse[]; } /** * Information about the Kubernetes Service networking configuration. */ interface ServiceNetworkingResponse { /** * Name of the Kubernetes Deployment whose traffic is managed by the specified Service. */ deployment: string; /** * Optional. Whether to disable Pod overprovisioning. If Pod overprovisioning is disabled then Cloud Deploy will limit the number of total Pods used for the deployment strategy to the number of Pods the Deployment has on the cluster. */ disablePodOverprovisioning: boolean; /** * Name of the Kubernetes Service. */ service: string; } /** * SkaffoldSupportedCondition contains information about when support for the release's version of skaffold ends. */ interface SkaffoldSupportedConditionResponse { /** * The time at which this release's version of skaffold will enter maintenance mode. */ maintenanceModeTime: string; /** * The skaffold support state for this release's version of skaffold. */ skaffoldSupportState: string; /** * True if the version of skaffold used by this release is supported. */ status: boolean; /** * The time at which this release's version of skaffold will no longer be supported. */ supportExpirationTime: string; } /** * Stage specifies a location to which to deploy. */ interface StageResponse { /** * Optional. The deploy parameters to use for the target in this stage. */ deployParameters: outputs.clouddeploy.v1.DeployParametersResponse[]; /** * Skaffold profiles to use when rendering the manifest for this stage's `Target`. */ profiles: string[]; /** * Optional. The strategy to use for a `Rollout` to this stage. */ strategy: outputs.clouddeploy.v1.StrategyResponse; /** * The target_id to which this stage points. This field refers exclusively to the last segment of a target name. For example, this field would just be `my-target` (rather than `projects/project/locations/location/targets/my-target`). The location of the `Target` is inferred to be the same as the location of the `DeliveryPipeline` that contains this `Stage`. */ targetId: string; } /** * Standard represents the standard deployment strategy. */ interface StandardResponse { /** * Optional. Configuration for the postdeploy job. If this is not configured, postdeploy job will not be present. */ postdeploy: outputs.clouddeploy.v1.PostdeployResponse; /** * Optional. Configuration for the predeploy job. If this is not configured, predeploy job will not be present. */ predeploy: outputs.clouddeploy.v1.PredeployResponse; /** * Whether to verify a deployment. */ verify: boolean; } /** * Strategy contains deployment strategy information. */ interface StrategyResponse { /** * Canary deployment strategy provides progressive percentage based deployments to a Target. */ canary: outputs.clouddeploy.v1.CanaryResponse; /** * Standard deployment strategy executes a single deploy and allows verifying the deployment. */ standard: outputs.clouddeploy.v1.StandardResponse; } /** * Contains criteria for selecting Targets. Attributes provided must match the target resource in order for policy restrictions to apply. E.g. if id "prod" and labels "foo: bar" are given the target resource must match both that id and have that label in order to be selected. */ interface TargetAttributeResponse { /** * Target labels. */ labels: { [key: string]: string; }; } /** * A `Target` resource in the Cloud Deploy API. A `Target` defines a location to which a Skaffold configuration can be deployed. */ interface TargetResponse { /** * Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. See https://google.aip.dev/128#annotations for more details such as format and size limitations. */ annotations: { [key: string]: string; }; /** * Optional. Information specifying an Anthos Cluster. */ anthosCluster: outputs.clouddeploy.v1.AnthosClusterResponse; /** * Time at which the `Target` was created. */ createTime: string; /** * Optional. The deploy parameters to use for this target. */ deployParameters: { [key: string]: string; }; /** * Optional. Description of the `Target`. Max length is 255 characters. */ description: string; /** * Optional. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. */ etag: string; /** * Configurations for all execution that relates to this `Target`. Each `ExecutionEnvironmentUsage` value may only be used in a single configuration; using the same value multiple times is an error. When one or more configurations are specified, they must include the `RENDER` and `DEPLOY` `ExecutionEnvironmentUsage` values. When no configurations are specified, execution will use the default specified in `DefaultPool`. */ executionConfigs: outputs.clouddeploy.v1.ExecutionConfigResponse[]; /** * Optional. Information specifying a GKE Cluster. */ gke: outputs.clouddeploy.v1.GkeClusterResponse; /** * Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 128 bytes. */ labels: { [key: string]: string; }; /** * Optional. Information specifying a multiTarget. */ multiTarget: outputs.clouddeploy.v1.MultiTargetResponse; /** * Optional. Name of the `Target`. Format is `projects/{project}/locations/{location}/targets/a-z{0,62}`. */ name: string; /** * Optional. Whether or not the `Target` requires approval. */ requireApproval: boolean; /** * Optional. Information specifying a Cloud Run deployment target. */ run: outputs.clouddeploy.v1.CloudRunLocationResponse; /** * Resource id of the `Target`. */ targetId: string; /** * Unique identifier of the `Target`. */ uid: string; /** * Most recent time at which the `Target` was updated. */ updateTime: string; } /** * TargetsPresentCondition contains information on any Targets defined in the Delivery Pipeline that do not actually exist. */ interface TargetsPresentConditionResponse { /** * The list of Target names that do not exist. For example, `projects/{project_id}/locations/{location_name}/targets/{target_name}`. */ missingTargets: string[]; /** * True if there aren't any missing Targets. */ status: boolean; /** * Last time the condition was updated. */ updateTime: string; } /** * TargetsTypeCondition contains information on whether the Targets defined in the Delivery Pipeline are of the same type. */ interface TargetsTypeConditionResponse { /** * Human readable error message. */ errorDetails: string; /** * True if the targets are all a comparable type. For example this is true if all targets are GKE clusters. This is false if some targets are Cloud Run targets and others are GKE clusters. */ status: boolean; } /** * A verify Job. */ interface VerifyJobResponse { } } } export declare namespace cloudfunctions { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudfunctions.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudfunctions.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Describes EventTrigger, used to request events be sent from another service. */ interface EventTriggerResponse { /** * The type of event to observe. For example: `providers/cloud.storage/eventTypes/object.change` and `providers/cloud.pubsub/eventTypes/topic.publish`. Event types match pattern `providers/*/eventTypes/*.*`. The pattern contains: 1. namespace: For example, `cloud.storage` and `google.firebase.analytics`. 2. resource type: The type of resource on which event occurs. For example, the Google Cloud Storage API includes the type `object`. 3. action: The action that generates the event. For example, action for a Google Cloud Storage Object is 'change'. These parts are lower case. */ eventType: string; /** * Specifies policy for failed executions. */ failurePolicy: outputs.cloudfunctions.v1.FailurePolicyResponse; /** * The resource(s) from which to observe events, for example, `projects/_/buckets/myBucket`. Not all syntactically correct values are accepted by all services. For example: 1. The authorization model must support it. Google Cloud Functions only allows EventTriggers to be deployed that observe resources in the same project as the `CloudFunction`. 2. The resource type must match the pattern expected for an `event_type`. For example, an `EventTrigger` that has an `event_type` of "google.pubsub.topic.publish" should have a resource that matches Google Cloud Pub/Sub topics. Additionally, some services may support short names when creating an `EventTrigger`. These will always be returned in the normalized "long" format. See each *service's* documentation for supported formats. */ resource: string; /** * The hostname of the service that should be observed. If no string is provided, the default service implementing the API will be used. For example, `storage.googleapis.com` is the default for all event types in the `google.storage` namespace. */ service: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Describes the policy in case of function's execution failure. If empty, then defaults to ignoring failures (i.e. not retrying them). */ interface FailurePolicyResponse { /** * If specified, then the function will be retried in case of a failure. */ retry: outputs.cloudfunctions.v1.RetryResponse; } /** * Describes HttpsTrigger, could be used to connect web hooks to function. */ interface HttpsTriggerResponse { /** * The security level for the function. */ securityLevel: string; /** * The deployed url for the function. */ url: string; } /** * Describes the retry policy in case of function's execution failure. A function execution will be retried on any failure. A failed execution will be retried up to 7 days with an exponential backoff (capped at 10 seconds). Retried execution is charged as any other execution. */ interface RetryResponse { } /** * Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable. */ interface SecretEnvVarResponse { /** * Name of the environment variable. */ key: string; /** * Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. */ project: string; /** * Name of the secret in secret manager (not the full resource name). */ secret: string; /** * Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start. */ version: string; } /** * Configuration for a single version. */ interface SecretVersionResponse { /** * Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mount_path as '/etc/secrets' and path as `/secret_foo` would mount the secret value file at `/etc/secrets/secret_foo`. */ path: string; /** * Version of the secret (version number or the string 'latest'). It is preferable to use `latest` version with secret volumes as secret value changes are reflected immediately. */ version: string; } /** * Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container. Secret value is not a part of the configuration. Every filesystem read operation performs a lookup in secret manager to retrieve the secret value. */ interface SecretVolumeResponse { /** * The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount paths: /etc/secrets Restricted mount paths: /cloudsql, /dev/log, /pod, /proc, /var/log */ mountPath: string; /** * Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. */ project: string; /** * Name of the secret in secret manager (not the full resource name). */ secret: string; /** * List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point. */ versions: outputs.cloudfunctions.v1.SecretVersionResponse[]; } /** * Describes SourceRepository, used to represent parameters related to source repository where a function is hosted. */ interface SourceRepositoryResponse { /** * The URL pointing to the hosted repository where the function were defined at the time of deployment. It always points to a specific commit in the format described above. */ deployedUrl: string; /** * The URL pointing to the hosted repository where the function is defined. There are supported Cloud Source Repository URLs in the following formats: To refer to a specific commit: `https://source.developers.google.com/projects/*/repos/*/revisions/*/paths/*` To refer to a moveable alias (branch): `https://source.developers.google.com/projects/*/repos/*/moveable-aliases/*/paths/*` In particular, to refer to HEAD use `master` moveable alias. To refer to a specific fixed alias (tag): `https://source.developers.google.com/projects/*/repos/*/fixed-aliases/*/paths/*` You may omit `paths/*` if you want to use the main directory. */ url: string; } } namespace v2 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudfunctions.v2.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudfunctions.v2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Describes the Build step of the function that builds a container from the given source. */ interface BuildConfigResponse { /** * The Cloud Build name of the latest successful deployment of the function. */ build: string; /** * Docker Registry to use for this deployment. This configuration is only applicable to 1st Gen functions, 2nd Gen functions can only use Artifact Registry. If `docker_repository` field is specified, this field will be automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently defaults to `CONTAINER_REGISTRY`. This field may be overridden by the backend for eligible deployments. */ dockerRegistry: string; /** * User managed repository created in Artifact Registry optionally with a customer managed encryption key. This is the repository to which the function docker image will be pushed after it is built by Cloud Build. If unspecified, GCF will create and use a repository named 'gcf-artifacts' for every deployed region. It must match the pattern `projects/{project}/locations/{location}/repositories/{repository}`. Cross-project repositories are not supported. Cross-location repositories are not supported. Repository format must be 'DOCKER'. */ dockerRepository: string; /** * The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified. For backward compatibility, if function with given name is not found, then the system will try to use function named "function". For Node.js this is name of a function exported by the module specified in `source_location`. */ entryPoint: string; /** * User-provided build-time environment variables for the function */ environmentVariables: { [key: string]: string; }; /** * The runtime in which to run the function. Required when deploying a new function, optional when updating an existing function. For a complete list of possible choices, see the [`gcloud` command reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime). */ runtime: string; /** * The location of the function source code. */ source: outputs.cloudfunctions.v2.SourceResponse; /** * A permanent fixed identifier for source. */ sourceProvenance: outputs.cloudfunctions.v2.SourceProvenanceResponse; /** * An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments. */ sourceToken: string; /** * Name of the Cloud Build Custom Worker Pool that should be used to build the function. The format of this field is `projects/{project}/locations/{region}/workerPools/{workerPool}` where {project} and {region} are the project id and region respectively where the worker pool is defined and {workerPool} is the short name of the worker pool. If the project id is not the same as the function, then the Cloud Functions Service Agent (service-@gcf-admin-robot.iam.gserviceaccount.com) must be granted the role Cloud Build Custom Workers Builder (roles/cloudbuild.customworkers.builder) in the project. */ workerPool: string; } /** * Filters events based on exact matches on the CloudEvents attributes. */ interface EventFilterResponse { /** * The name of a CloudEvents attribute. */ attribute: string; /** * Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The only allowed value is `match-path-pattern`. */ operator: string; /** * The value for the attribute. */ value: string; } /** * Describes EventTrigger, used to request events to be sent from another service. */ interface EventTriggerResponse { /** * Optional. The name of the channel associated with the trigger in `projects/{project}/locations/{location}/channels/{channel}` format. You must provide a channel to receive events from Eventarc SaaS partners. */ channel: string; /** * Criteria used to filter events. */ eventFilters: outputs.cloudfunctions.v2.EventFilterResponse[]; /** * The type of event to observe. For example: `google.cloud.audit.log.v1.written` or `google.cloud.pubsub.topic.v1.messagePublished`. */ eventType: string; /** * Optional. The name of a Pub/Sub topic in the same project that will be used as the transport topic for the event delivery. Format: `projects/{project}/topics/{topic}`. This is only valid for events of type `google.cloud.pubsub.topic.v1.messagePublished`. The topic provided here will not be deleted at function deletion. */ pubsubTopic: string; /** * Optional. If unset, then defaults to ignoring failures (i.e. not retrying them). */ retryPolicy: string; /** * Optional. The email of the trigger's service account. The service account must have permission to invoke Cloud Run services, the permission is `run.routes.invoke`. If empty, defaults to the Compute Engine default service account: `{project_number}-compute@developer.gserviceaccount.com`. */ serviceAccountEmail: string; /** * The resource name of the Eventarc trigger. The format of this field is `projects/{project}/locations/{region}/triggers/{trigger}`. */ trigger: string; /** * The region that the trigger will be in. The trigger will only receive events originating in this region. It can be the same region as the function, a different region or multi-region, or the global region. If not provided, defaults to the same region as the function. */ triggerRegion: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Informational messages about the state of the Cloud Function or Operation. */ interface GoogleCloudFunctionsV2StateMessageResponse { /** * The message. */ message: string; /** * Severity of the state message. */ severity: string; /** * One-word CamelCase type of the state message. */ type: string; } /** * Location of the source in a Google Cloud Source Repository. */ interface RepoSourceResponse { /** * Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ branchName: string; /** * Explicit commit SHA to build. */ commitSha: string; /** * Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution. eg. helloworld (no leading slash allowed) */ dir: string; /** * ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed. */ project: string; /** * Name of the Cloud Source Repository. */ repoName: string; /** * Regex matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ tagName: string; } /** * Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable. */ interface SecretEnvVarResponse { /** * Name of the environment variable. */ key: string; /** * Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function. */ project: string; /** * Name of the secret in secret manager (not the full resource name). */ secret: string; /** * Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start. */ version: string; } /** * Configuration for a single version. */ interface SecretVersionResponse { /** * Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mount_path as '/etc/secrets' and path as `secret_foo` would mount the secret value file at `/etc/secrets/secret_foo`. */ path: string; /** * Version of the secret (version number or the string 'latest'). It is preferable to use `latest` version with secret volumes as secret value changes are reflected immediately. */ version: string; } /** * Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container. */ interface SecretVolumeResponse { /** * The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount path: /etc/secrets */ mountPath: string; /** * Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function. */ project: string; /** * Name of the secret in secret manager (not the full resource name). */ secret: string; /** * List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point. */ versions: outputs.cloudfunctions.v2.SecretVersionResponse[]; } /** * Describes the Service being deployed. Currently Supported : Cloud Run (fully managed). */ interface ServiceConfigResponse { /** * Whether 100% of traffic is routed to the latest revision. On CreateFunction and UpdateFunction, when set to true, the revision being deployed will serve 100% of traffic, ignoring any traffic split settings, if any. On GetFunction, true will be returned if the latest revision is serving 100% of traffic. */ allTrafficOnLatestRevision: boolean; /** * [Preview] The number of CPUs used in a single container instance. Default value is calculated from available memory. Supports the same values as Cloud Run, see https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements Example: "1" indicates 1 vCPU */ availableCpu: string; /** * The amount of memory available for a function. Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is supplied the value is interpreted as bytes. See https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go a full description. */ availableMemory: string; /** * Environment variables that shall be available during function execution. */ environmentVariables: { [key: string]: string; }; /** * The ingress settings for the function, controlling what traffic can reach it. */ ingressSettings: string; /** * The limit on the maximum number of function instances that may coexist at a given time. In some cases, such as rapid traffic surges, Cloud Functions may, for a short period of time, create more instances than the specified max instances limit. If your function cannot tolerate this temporary behavior, you may want to factor in a safety margin and set a lower max instances value than your function can tolerate. See the [Max Instances](https://cloud.google.com/functions/docs/max-instances) Guide for more details. */ maxInstanceCount: number; /** * [Preview] Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1. */ maxInstanceRequestConcurrency: number; /** * The limit on the minimum number of function instances that may coexist at a given time. Function instances are kept in idle state for a short period after they finished executing the request to reduce cold start time for subsequent requests. Setting a minimum instance count will ensure that the given number of instances are kept running in idle state always. This can help with cold start times when jump in incoming request count occurs after the idle instance would have been stopped in the default case. */ minInstanceCount: number; /** * The name of service revision. */ revision: string; /** * Secret environment variables configuration. */ secretEnvironmentVariables: outputs.cloudfunctions.v2.SecretEnvVarResponse[]; /** * Secret volumes configuration. */ secretVolumes: outputs.cloudfunctions.v2.SecretVolumeResponse[]; /** * Security level configure whether the function only accepts https. This configuration is only applicable to 1st Gen functions with Http trigger. By default https is optional for 1st Gen functions; 2nd Gen functions are https ONLY. */ securityLevel: string; /** * Name of the service associated with a Function. The format of this field is `projects/{project}/locations/{region}/services/{service}` */ service: string; /** * The email of the service's service account. If empty, defaults to `{project_number}-compute@developer.gserviceaccount.com`. */ serviceAccountEmail: string; /** * The function execution timeout. Execution is considered failed and can be terminated if the function is not completed at the end of the timeout period. Defaults to 60 seconds. */ timeoutSeconds: number; /** * URI of the Service deployed. */ uri: string; /** * The Serverless VPC Access connector that this cloud function can connect to. The format of this field is `projects/*/locations/*/connectors/*`. */ vpcConnector: string; /** * The egress settings for the connector, controlling what traffic is diverted through it. */ vpcConnectorEgressSettings: string; } /** * Provenance of the source. Ways to find the original source, or verify that some source was used for this build. */ interface SourceProvenanceResponse { /** * A copy of the build's `source.git_uri`, if exists, with any commits resolved. */ gitUri: string; /** * A copy of the build's `source.repo_source`, if exists, with any revisions resolved. */ resolvedRepoSource: outputs.cloudfunctions.v2.RepoSourceResponse; /** * A copy of the build's `source.storage_source`, if exists, with any generations resolved. */ resolvedStorageSource: outputs.cloudfunctions.v2.StorageSourceResponse; } /** * The location of the function source code. */ interface SourceResponse { /** * If provided, get the source from GitHub repository. This option is valid only for GCF 1st Gen function. Example: https://github.com///blob// */ gitUri: string; /** * If provided, get the source from this location in a Cloud Source Repository. */ repoSource: outputs.cloudfunctions.v2.RepoSourceResponse; /** * If provided, get the source from this location in Google Cloud Storage. */ storageSource: outputs.cloudfunctions.v2.StorageSourceResponse; } /** * Location of the source in an archive file in Google Cloud Storage. */ interface StorageSourceResponse { /** * Google Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). */ bucket: string; /** * Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used. */ generation: string; /** * Google Cloud Storage object containing the source. This object must be a gzipped archive file (`.tar.gz`) containing source to build. */ object: string; } } namespace v2alpha { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudfunctions.v2alpha.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudfunctions.v2alpha.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Describes the Build step of the function that builds a container from the given source. */ interface BuildConfigResponse { /** * The Cloud Build name of the latest successful deployment of the function. */ build: string; /** * Docker Registry to use for this deployment. This configuration is only applicable to 1st Gen functions, 2nd Gen functions can only use Artifact Registry. If `docker_repository` field is specified, this field will be automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently defaults to `CONTAINER_REGISTRY`. This field may be overridden by the backend for eligible deployments. */ dockerRegistry: string; /** * User managed repository created in Artifact Registry optionally with a customer managed encryption key. This is the repository to which the function docker image will be pushed after it is built by Cloud Build. If unspecified, GCF will create and use a repository named 'gcf-artifacts' for every deployed region. It must match the pattern `projects/{project}/locations/{location}/repositories/{repository}`. Cross-project repositories are not supported. Cross-location repositories are not supported. Repository format must be 'DOCKER'. */ dockerRepository: string; /** * The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified. For backward compatibility, if function with given name is not found, then the system will try to use function named "function". For Node.js this is name of a function exported by the module specified in `source_location`. */ entryPoint: string; /** * User-provided build-time environment variables for the function */ environmentVariables: { [key: string]: string; }; /** * The runtime in which to run the function. Required when deploying a new function, optional when updating an existing function. For a complete list of possible choices, see the [`gcloud` command reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime). */ runtime: string; /** * The location of the function source code. */ source: outputs.cloudfunctions.v2alpha.SourceResponse; /** * A permanent fixed identifier for source. */ sourceProvenance: outputs.cloudfunctions.v2alpha.SourceProvenanceResponse; /** * An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments. */ sourceToken: string; /** * Name of the Cloud Build Custom Worker Pool that should be used to build the function. The format of this field is `projects/{project}/locations/{region}/workerPools/{workerPool}` where {project} and {region} are the project id and region respectively where the worker pool is defined and {workerPool} is the short name of the worker pool. If the project id is not the same as the function, then the Cloud Functions Service Agent (service-@gcf-admin-robot.iam.gserviceaccount.com) must be granted the role Cloud Build Custom Workers Builder (roles/cloudbuild.customworkers.builder) in the project. */ workerPool: string; } /** * Filters events based on exact matches on the CloudEvents attributes. */ interface EventFilterResponse { /** * The name of a CloudEvents attribute. */ attribute: string; /** * Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The only allowed value is `match-path-pattern`. */ operator: string; /** * The value for the attribute. */ value: string; } /** * Describes EventTrigger, used to request events to be sent from another service. */ interface EventTriggerResponse { /** * Optional. The name of the channel associated with the trigger in `projects/{project}/locations/{location}/channels/{channel}` format. You must provide a channel to receive events from Eventarc SaaS partners. */ channel: string; /** * Criteria used to filter events. */ eventFilters: outputs.cloudfunctions.v2alpha.EventFilterResponse[]; /** * The type of event to observe. For example: `google.cloud.audit.log.v1.written` or `google.cloud.pubsub.topic.v1.messagePublished`. */ eventType: string; /** * Optional. The name of a Pub/Sub topic in the same project that will be used as the transport topic for the event delivery. Format: `projects/{project}/topics/{topic}`. This is only valid for events of type `google.cloud.pubsub.topic.v1.messagePublished`. The topic provided here will not be deleted at function deletion. */ pubsubTopic: string; /** * Optional. If unset, then defaults to ignoring failures (i.e. not retrying them). */ retryPolicy: string; /** * Optional. The email of the trigger's service account. The service account must have permission to invoke Cloud Run services, the permission is `run.routes.invoke`. If empty, defaults to the Compute Engine default service account: `{project_number}-compute@developer.gserviceaccount.com`. */ serviceAccountEmail: string; /** * The resource name of the Eventarc trigger. The format of this field is `projects/{project}/locations/{region}/triggers/{trigger}`. */ trigger: string; /** * The region that the trigger will be in. The trigger will only receive events originating in this region. It can be the same region as the function, a different region or multi-region, or the global region. If not provided, defaults to the same region as the function. */ triggerRegion: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Informational messages about the state of the Cloud Function or Operation. */ interface GoogleCloudFunctionsV2alphaStateMessageResponse { /** * The message. */ message: string; /** * Severity of the state message. */ severity: string; /** * One-word CamelCase type of the state message. */ type: string; } /** * Location of the source in a Google Cloud Source Repository. */ interface RepoSourceResponse { /** * Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ branchName: string; /** * Explicit commit SHA to build. */ commitSha: string; /** * Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution. eg. helloworld (no leading slash allowed) */ dir: string; /** * ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed. */ project: string; /** * Name of the Cloud Source Repository. */ repoName: string; /** * Regex matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ tagName: string; } /** * Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable. */ interface SecretEnvVarResponse { /** * Name of the environment variable. */ key: string; /** * Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function. */ project: string; /** * Name of the secret in secret manager (not the full resource name). */ secret: string; /** * Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start. */ version: string; } /** * Configuration for a single version. */ interface SecretVersionResponse { /** * Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mount_path as '/etc/secrets' and path as `secret_foo` would mount the secret value file at `/etc/secrets/secret_foo`. */ path: string; /** * Version of the secret (version number or the string 'latest'). It is preferable to use `latest` version with secret volumes as secret value changes are reflected immediately. */ version: string; } /** * Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container. */ interface SecretVolumeResponse { /** * The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount path: /etc/secrets */ mountPath: string; /** * Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function. */ project: string; /** * Name of the secret in secret manager (not the full resource name). */ secret: string; /** * List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point. */ versions: outputs.cloudfunctions.v2alpha.SecretVersionResponse[]; } /** * Describes the Service being deployed. Currently Supported : Cloud Run (fully managed). */ interface ServiceConfigResponse { /** * Whether 100% of traffic is routed to the latest revision. On CreateFunction and UpdateFunction, when set to true, the revision being deployed will serve 100% of traffic, ignoring any traffic split settings, if any. On GetFunction, true will be returned if the latest revision is serving 100% of traffic. */ allTrafficOnLatestRevision: boolean; /** * [Preview] The number of CPUs used in a single container instance. Default value is calculated from available memory. Supports the same values as Cloud Run, see https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements Example: "1" indicates 1 vCPU */ availableCpu: string; /** * The amount of memory available for a function. Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is supplied the value is interpreted as bytes. See https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go a full description. */ availableMemory: string; /** * Environment variables that shall be available during function execution. */ environmentVariables: { [key: string]: string; }; /** * The ingress settings for the function, controlling what traffic can reach it. */ ingressSettings: string; /** * The limit on the maximum number of function instances that may coexist at a given time. In some cases, such as rapid traffic surges, Cloud Functions may, for a short period of time, create more instances than the specified max instances limit. If your function cannot tolerate this temporary behavior, you may want to factor in a safety margin and set a lower max instances value than your function can tolerate. See the [Max Instances](https://cloud.google.com/functions/docs/max-instances) Guide for more details. */ maxInstanceCount: number; /** * [Preview] Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1. */ maxInstanceRequestConcurrency: number; /** * The limit on the minimum number of function instances that may coexist at a given time. Function instances are kept in idle state for a short period after they finished executing the request to reduce cold start time for subsequent requests. Setting a minimum instance count will ensure that the given number of instances are kept running in idle state always. This can help with cold start times when jump in incoming request count occurs after the idle instance would have been stopped in the default case. */ minInstanceCount: number; /** * The name of service revision. */ revision: string; /** * Secret environment variables configuration. */ secretEnvironmentVariables: outputs.cloudfunctions.v2alpha.SecretEnvVarResponse[]; /** * Secret volumes configuration. */ secretVolumes: outputs.cloudfunctions.v2alpha.SecretVolumeResponse[]; /** * Security level configure whether the function only accepts https. This configuration is only applicable to 1st Gen functions with Http trigger. By default https is optional for 1st Gen functions; 2nd Gen functions are https ONLY. */ securityLevel: string; /** * Name of the service associated with a Function. The format of this field is `projects/{project}/locations/{region}/services/{service}` */ service: string; /** * The email of the service's service account. If empty, defaults to `{project_number}-compute@developer.gserviceaccount.com`. */ serviceAccountEmail: string; /** * The function execution timeout. Execution is considered failed and can be terminated if the function is not completed at the end of the timeout period. Defaults to 60 seconds. */ timeoutSeconds: number; /** * URI of the Service deployed. */ uri: string; /** * The Serverless VPC Access connector that this cloud function can connect to. The format of this field is `projects/*/locations/*/connectors/*`. */ vpcConnector: string; /** * The egress settings for the connector, controlling what traffic is diverted through it. */ vpcConnectorEgressSettings: string; } /** * Provenance of the source. Ways to find the original source, or verify that some source was used for this build. */ interface SourceProvenanceResponse { /** * A copy of the build's `source.git_uri`, if exists, with any commits resolved. */ gitUri: string; /** * A copy of the build's `source.repo_source`, if exists, with any revisions resolved. */ resolvedRepoSource: outputs.cloudfunctions.v2alpha.RepoSourceResponse; /** * A copy of the build's `source.storage_source`, if exists, with any generations resolved. */ resolvedStorageSource: outputs.cloudfunctions.v2alpha.StorageSourceResponse; } /** * The location of the function source code. */ interface SourceResponse { /** * If provided, get the source from GitHub repository. This option is valid only for GCF 1st Gen function. Example: https://github.com///blob// */ gitUri: string; /** * If provided, get the source from this location in a Cloud Source Repository. */ repoSource: outputs.cloudfunctions.v2alpha.RepoSourceResponse; /** * If provided, get the source from this location in Google Cloud Storage. */ storageSource: outputs.cloudfunctions.v2alpha.StorageSourceResponse; } /** * Location of the source in an archive file in Google Cloud Storage. */ interface StorageSourceResponse { /** * Google Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). */ bucket: string; /** * Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used. */ generation: string; /** * Google Cloud Storage object containing the source. This object must be a gzipped archive file (`.tar.gz`) containing source to build. */ object: string; } } namespace v2beta { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudfunctions.v2beta.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudfunctions.v2beta.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Describes the Build step of the function that builds a container from the given source. */ interface BuildConfigResponse { /** * The Cloud Build name of the latest successful deployment of the function. */ build: string; /** * Docker Registry to use for this deployment. This configuration is only applicable to 1st Gen functions, 2nd Gen functions can only use Artifact Registry. If `docker_repository` field is specified, this field will be automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently defaults to `CONTAINER_REGISTRY`. This field may be overridden by the backend for eligible deployments. */ dockerRegistry: string; /** * User managed repository created in Artifact Registry optionally with a customer managed encryption key. This is the repository to which the function docker image will be pushed after it is built by Cloud Build. If unspecified, GCF will create and use a repository named 'gcf-artifacts' for every deployed region. It must match the pattern `projects/{project}/locations/{location}/repositories/{repository}`. Cross-project repositories are not supported. Cross-location repositories are not supported. Repository format must be 'DOCKER'. */ dockerRepository: string; /** * The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified. For backward compatibility, if function with given name is not found, then the system will try to use function named "function". For Node.js this is name of a function exported by the module specified in `source_location`. */ entryPoint: string; /** * User-provided build-time environment variables for the function */ environmentVariables: { [key: string]: string; }; /** * The runtime in which to run the function. Required when deploying a new function, optional when updating an existing function. For a complete list of possible choices, see the [`gcloud` command reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime). */ runtime: string; /** * The location of the function source code. */ source: outputs.cloudfunctions.v2beta.SourceResponse; /** * A permanent fixed identifier for source. */ sourceProvenance: outputs.cloudfunctions.v2beta.SourceProvenanceResponse; /** * An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments. */ sourceToken: string; /** * Name of the Cloud Build Custom Worker Pool that should be used to build the function. The format of this field is `projects/{project}/locations/{region}/workerPools/{workerPool}` where {project} and {region} are the project id and region respectively where the worker pool is defined and {workerPool} is the short name of the worker pool. If the project id is not the same as the function, then the Cloud Functions Service Agent (service-@gcf-admin-robot.iam.gserviceaccount.com) must be granted the role Cloud Build Custom Workers Builder (roles/cloudbuild.customworkers.builder) in the project. */ workerPool: string; } /** * Filters events based on exact matches on the CloudEvents attributes. */ interface EventFilterResponse { /** * The name of a CloudEvents attribute. */ attribute: string; /** * Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The only allowed value is `match-path-pattern`. */ operator: string; /** * The value for the attribute. */ value: string; } /** * Describes EventTrigger, used to request events to be sent from another service. */ interface EventTriggerResponse { /** * Optional. The name of the channel associated with the trigger in `projects/{project}/locations/{location}/channels/{channel}` format. You must provide a channel to receive events from Eventarc SaaS partners. */ channel: string; /** * Criteria used to filter events. */ eventFilters: outputs.cloudfunctions.v2beta.EventFilterResponse[]; /** * The type of event to observe. For example: `google.cloud.audit.log.v1.written` or `google.cloud.pubsub.topic.v1.messagePublished`. */ eventType: string; /** * Optional. The name of a Pub/Sub topic in the same project that will be used as the transport topic for the event delivery. Format: `projects/{project}/topics/{topic}`. This is only valid for events of type `google.cloud.pubsub.topic.v1.messagePublished`. The topic provided here will not be deleted at function deletion. */ pubsubTopic: string; /** * Optional. If unset, then defaults to ignoring failures (i.e. not retrying them). */ retryPolicy: string; /** * Optional. The email of the trigger's service account. The service account must have permission to invoke Cloud Run services, the permission is `run.routes.invoke`. If empty, defaults to the Compute Engine default service account: `{project_number}-compute@developer.gserviceaccount.com`. */ serviceAccountEmail: string; /** * The resource name of the Eventarc trigger. The format of this field is `projects/{project}/locations/{region}/triggers/{trigger}`. */ trigger: string; /** * The region that the trigger will be in. The trigger will only receive events originating in this region. It can be the same region as the function, a different region or multi-region, or the global region. If not provided, defaults to the same region as the function. */ triggerRegion: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Informational messages about the state of the Cloud Function or Operation. */ interface GoogleCloudFunctionsV2betaStateMessageResponse { /** * The message. */ message: string; /** * Severity of the state message. */ severity: string; /** * One-word CamelCase type of the state message. */ type: string; } /** * Location of the source in a Google Cloud Source Repository. */ interface RepoSourceResponse { /** * Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ branchName: string; /** * Explicit commit SHA to build. */ commitSha: string; /** * Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution. eg. helloworld (no leading slash allowed) */ dir: string; /** * ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed. */ project: string; /** * Name of the Cloud Source Repository. */ repoName: string; /** * Regex matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax */ tagName: string; } /** * Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable. */ interface SecretEnvVarResponse { /** * Name of the environment variable. */ key: string; /** * Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function. */ project: string; /** * Name of the secret in secret manager (not the full resource name). */ secret: string; /** * Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start. */ version: string; } /** * Configuration for a single version. */ interface SecretVersionResponse { /** * Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mount_path as '/etc/secrets' and path as `secret_foo` would mount the secret value file at `/etc/secrets/secret_foo`. */ path: string; /** * Version of the secret (version number or the string 'latest'). It is preferable to use `latest` version with secret volumes as secret value changes are reflected immediately. */ version: string; } /** * Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container. */ interface SecretVolumeResponse { /** * The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount path: /etc/secrets */ mountPath: string; /** * Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function. */ project: string; /** * Name of the secret in secret manager (not the full resource name). */ secret: string; /** * List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point. */ versions: outputs.cloudfunctions.v2beta.SecretVersionResponse[]; } /** * Describes the Service being deployed. Currently Supported : Cloud Run (fully managed). */ interface ServiceConfigResponse { /** * Whether 100% of traffic is routed to the latest revision. On CreateFunction and UpdateFunction, when set to true, the revision being deployed will serve 100% of traffic, ignoring any traffic split settings, if any. On GetFunction, true will be returned if the latest revision is serving 100% of traffic. */ allTrafficOnLatestRevision: boolean; /** * [Preview] The number of CPUs used in a single container instance. Default value is calculated from available memory. Supports the same values as Cloud Run, see https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements Example: "1" indicates 1 vCPU */ availableCpu: string; /** * The amount of memory available for a function. Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is supplied the value is interpreted as bytes. See https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go a full description. */ availableMemory: string; /** * Environment variables that shall be available during function execution. */ environmentVariables: { [key: string]: string; }; /** * The ingress settings for the function, controlling what traffic can reach it. */ ingressSettings: string; /** * The limit on the maximum number of function instances that may coexist at a given time. In some cases, such as rapid traffic surges, Cloud Functions may, for a short period of time, create more instances than the specified max instances limit. If your function cannot tolerate this temporary behavior, you may want to factor in a safety margin and set a lower max instances value than your function can tolerate. See the [Max Instances](https://cloud.google.com/functions/docs/max-instances) Guide for more details. */ maxInstanceCount: number; /** * [Preview] Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1. */ maxInstanceRequestConcurrency: number; /** * The limit on the minimum number of function instances that may coexist at a given time. Function instances are kept in idle state for a short period after they finished executing the request to reduce cold start time for subsequent requests. Setting a minimum instance count will ensure that the given number of instances are kept running in idle state always. This can help with cold start times when jump in incoming request count occurs after the idle instance would have been stopped in the default case. */ minInstanceCount: number; /** * The name of service revision. */ revision: string; /** * Secret environment variables configuration. */ secretEnvironmentVariables: outputs.cloudfunctions.v2beta.SecretEnvVarResponse[]; /** * Secret volumes configuration. */ secretVolumes: outputs.cloudfunctions.v2beta.SecretVolumeResponse[]; /** * Security level configure whether the function only accepts https. This configuration is only applicable to 1st Gen functions with Http trigger. By default https is optional for 1st Gen functions; 2nd Gen functions are https ONLY. */ securityLevel: string; /** * Name of the service associated with a Function. The format of this field is `projects/{project}/locations/{region}/services/{service}` */ service: string; /** * The email of the service's service account. If empty, defaults to `{project_number}-compute@developer.gserviceaccount.com`. */ serviceAccountEmail: string; /** * The function execution timeout. Execution is considered failed and can be terminated if the function is not completed at the end of the timeout period. Defaults to 60 seconds. */ timeoutSeconds: number; /** * URI of the Service deployed. */ uri: string; /** * The Serverless VPC Access connector that this cloud function can connect to. The format of this field is `projects/*/locations/*/connectors/*`. */ vpcConnector: string; /** * The egress settings for the connector, controlling what traffic is diverted through it. */ vpcConnectorEgressSettings: string; } /** * Provenance of the source. Ways to find the original source, or verify that some source was used for this build. */ interface SourceProvenanceResponse { /** * A copy of the build's `source.git_uri`, if exists, with any commits resolved. */ gitUri: string; /** * A copy of the build's `source.repo_source`, if exists, with any revisions resolved. */ resolvedRepoSource: outputs.cloudfunctions.v2beta.RepoSourceResponse; /** * A copy of the build's `source.storage_source`, if exists, with any generations resolved. */ resolvedStorageSource: outputs.cloudfunctions.v2beta.StorageSourceResponse; } /** * The location of the function source code. */ interface SourceResponse { /** * If provided, get the source from GitHub repository. This option is valid only for GCF 1st Gen function. Example: https://github.com///blob// */ gitUri: string; /** * If provided, get the source from this location in a Cloud Source Repository. */ repoSource: outputs.cloudfunctions.v2beta.RepoSourceResponse; /** * If provided, get the source from this location in Google Cloud Storage. */ storageSource: outputs.cloudfunctions.v2beta.StorageSourceResponse; } /** * Location of the source in an archive file in Google Cloud Storage. */ interface StorageSourceResponse { /** * Google Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). */ bucket: string; /** * Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used. */ generation: string; /** * Google Cloud Storage object containing the source. This object must be a gzipped archive file (`.tar.gz`) containing source to build. */ object: string; } } } export declare namespace cloudidentity { namespace v1 { /** * Dynamic group metadata like queries and status. */ interface DynamicGroupMetadataResponse { /** * Memberships will be the union of all queries. Only one entry with USER resource is currently supported. Customers can create up to 100 dynamic groups. */ queries: outputs.cloudidentity.v1.DynamicGroupQueryResponse[]; /** * Status of the dynamic group. */ status: outputs.cloudidentity.v1.DynamicGroupStatusResponse; } /** * Defines a query on a resource. */ interface DynamicGroupQueryResponse { /** * Query that determines the memberships of the dynamic group. Examples: All users with at least one `organizations.department` of engineering. `user.organizations.exists(org, org.department=='engineering')` All users with at least one location that has `area` of `foo` and `building_id` of `bar`. `user.locations.exists(loc, loc.area=='foo' && loc.building_id=='bar')` All users with any variation of the name John Doe (case-insensitive queries add `equalsIgnoreCase()` to the value being queried). `user.name.value.equalsIgnoreCase('jOhn DoE')` */ query: string; /** * Resource type for the Dynamic Group Query */ resourceType: string; } /** * The current status of a dynamic group along with timestamp. */ interface DynamicGroupStatusResponse { /** * Status of the dynamic group. */ status: string; /** * The latest time at which the dynamic group is guaranteed to be in the given status. If status is `UP_TO_DATE`, the latest time at which the dynamic group was confirmed to be up-to-date. If status is `UPDATING_MEMBERSHIPS`, the time at which dynamic group was created. */ statusTime: string; } /** * A unique identifier for an entity in the Cloud Identity Groups API. An entity can represent either a group with an optional `namespace` or a user without a `namespace`. The combination of `id` and `namespace` must be unique; however, the same `id` can be used with different `namespace`s. */ interface EntityKeyResponse { /** * The namespace in which the entity exists. If not specified, the `EntityKey` represents a Google-managed entity such as a Google user or a Google Group. If specified, the `EntityKey` represents an external-identity-mapped group. The namespace must correspond to an identity source created in Admin Console and must be in the form of `identitysources/{identity_source}`. */ namespace: string; } /** * The `MembershipRole` expiry details. */ interface ExpiryDetailResponse { /** * The time at which the `MembershipRole` will expire. */ expireTime: string; } /** * Resource representing the Android specific attributes of a Device. */ interface GoogleAppsCloudidentityDevicesV1AndroidAttributesResponse { /** * Whether the device passes Android CTS compliance. */ ctsProfileMatch: boolean; /** * Whether applications from unknown sources can be installed on device. */ enabledUnknownSources: boolean; /** * Whether any potentially harmful apps were detected on the device. */ hasPotentiallyHarmfulApps: boolean; /** * Whether this account is on an owner/primary profile. For phones, only true for owner profiles. Android 4+ devices can have secondary or restricted user profiles. */ ownerProfileAccount: boolean; /** * Ownership privileges on device. */ ownershipPrivilege: string; /** * Whether device supports Android work profiles. If false, this service will not block access to corp data even if an administrator turns on the "Enforce Work Profile" policy. */ supportsWorkProfile: boolean; /** * Whether Android verified boot status is GREEN. */ verifiedBoot: boolean; /** * Whether Google Play Protect Verify Apps is enabled. */ verifyAppsEnabled: boolean; } /** * A membership role within the Cloud Identity Groups API. A `MembershipRole` defines the privileges granted to a `Membership`. */ interface MembershipRoleResponse { /** * The expiry details of the `MembershipRole`. Expiry details are only supported for `MEMBER` `MembershipRoles`. May be set if `name` is `MEMBER`. Must not be set if `name` is any other value. */ expiryDetail: outputs.cloudidentity.v1.ExpiryDetailResponse; /** * The name of the `MembershipRole`. Must be one of `OWNER`, `MANAGER`, `MEMBER`. */ name: string; /** * Evaluations of restrictions applied to parent group on this membership. */ restrictionEvaluations: outputs.cloudidentity.v1.RestrictionEvaluationsResponse; } /** * The evaluated state of this restriction. */ interface MembershipRoleRestrictionEvaluationResponse { /** * The current state of the restriction */ state: string; } /** * Evaluations of restrictions applied to parent group on this membership. */ interface RestrictionEvaluationsResponse { /** * Evaluation of the member restriction applied to this membership. Empty if the user lacks permission to view the restriction evaluation. */ memberRestrictionEvaluation: outputs.cloudidentity.v1.MembershipRoleRestrictionEvaluationResponse; } /** * SAML IDP (identity provider) configuration. */ interface SamlIdpConfigResponse { /** * The **Change Password URL** of the identity provider. Users will be sent to this URL when changing their passwords at `myaccount.google.com`. This takes precedence over the change password URL configured at customer-level. Must use `HTTPS`. */ changePasswordUri: string; /** * The SAML **Entity ID** of the identity provider. */ entityId: string; /** * The **Logout Redirect URL** (sign-out page URL) of the identity provider. When a user clicks the sign-out link on a Google page, they will be redirected to this URL. This is a pure redirect with no attached SAML `LogoutRequest` i.e. SAML single logout is not supported. Must use `HTTPS`. */ logoutRedirectUri: string; /** * The `SingleSignOnService` endpoint location (sign-in page URL) of the identity provider. This is the URL where the `AuthnRequest` will be sent. Must use `HTTPS`. Assumed to accept the `HTTP-Redirect` binding. */ singleSignOnServiceUri: string; } /** * SAML SP (service provider) configuration. */ interface SamlSpConfigResponse { /** * The SAML **Assertion Consumer Service (ACS) URL** to be used for the IDP-initiated login. Assumed to accept response messages via the `HTTP-POST` binding. */ assertionConsumerServiceUri: string; /** * The SAML **Entity ID** for this service provider. */ entityId: string; } /** * Details that are applicable when `sso_mode` == `SAML_SSO`. */ interface SamlSsoInfoResponse { /** * Name of the `InboundSamlSsoProfile` to use. Must be of the form `inboundSamlSsoProfiles/{inbound_saml_sso_profile}`. */ inboundSamlSsoProfile: string; } /** * Controls sign-in behavior. */ interface SignInBehaviorResponse { /** * When to redirect sign-ins to the IdP. */ redirectCondition: string; } } namespace v1beta1 { /** * Resource representing the Android specific attributes of a Device. */ interface AndroidAttributesResponse { /** * Whether the device passes Android CTS compliance. */ ctsProfileMatch: boolean; /** * Whether applications from unknown sources can be installed on device. */ enabledUnknownSources: boolean; /** * Whether any potentially harmful apps were detected on the device. */ hasPotentiallyHarmfulApps: boolean; /** * Whether this account is on an owner/primary profile. For phones, only true for owner profiles. Android 4+ devices can have secondary or restricted user profiles. */ ownerProfileAccount: boolean; /** * Ownership privileges on device. */ ownershipPrivilege: string; /** * Whether device supports Android work profiles. If false, this service will not block access to corp data even if an administrator turns on the "Enforce Work Profile" policy. */ supportsWorkProfile: boolean; /** * Whether Android verified boot status is GREEN. */ verifiedBoot: boolean; /** * Whether Google Play Protect Verify Apps is enabled. */ verifyAppsEnabled: boolean; } /** * Stores information about a certificate. */ interface CertificateAttributesResponse { /** * The X.509 extension for CertificateTemplate. */ certificateTemplate: outputs.cloudidentity.v1beta1.CertificateTemplateResponse; /** * The encoded certificate fingerprint. */ fingerprint: string; /** * The name of the issuer of this certificate. */ issuer: string; /** * Serial number of the certificate, Example: "123456789". */ serialNumber: string; /** * The subject name of this certificate. */ subject: string; /** * The certificate thumbprint. */ thumbprint: string; /** * Validation state of this certificate. */ validationState: string; /** * Certificate not valid at or after this timestamp. */ validityExpirationTime: string; /** * Certificate not valid before this timestamp. */ validityStartTime: string; } /** * CertificateTemplate (v3 Extension in X.509). */ interface CertificateTemplateResponse { /** * The Major version of the template. Example: 100. */ majorVersion: number; /** * The minor version of the template. Example: 12. */ minorVersion: number; } /** * Dynamic group metadata like queries and status. */ interface DynamicGroupMetadataResponse { /** * Memberships will be the union of all queries. Only one entry with USER resource is currently supported. Customers can create up to 100 dynamic groups. */ queries: outputs.cloudidentity.v1beta1.DynamicGroupQueryResponse[]; /** * Status of the dynamic group. */ status: outputs.cloudidentity.v1beta1.DynamicGroupStatusResponse; } /** * Defines a query on a resource. */ interface DynamicGroupQueryResponse { /** * Query that determines the memberships of the dynamic group. Examples: All users with at least one `organizations.department` of engineering. `user.organizations.exists(org, org.department=='engineering')` All users with at least one location that has `area` of `foo` and `building_id` of `bar`. `user.locations.exists(loc, loc.area=='foo' && loc.building_id=='bar')` All users with any variation of the name John Doe (case-insensitive queries add `equalsIgnoreCase()` to the value being queried). `user.name.value.equalsIgnoreCase('jOhn DoE')` */ query: string; resourceType: string; } /** * The current status of a dynamic group along with timestamp. */ interface DynamicGroupStatusResponse { /** * Status of the dynamic group. */ status: string; /** * The latest time at which the dynamic group is guaranteed to be in the given status. If status is `UP_TO_DATE`, the latest time at which the dynamic group was confirmed to be up-to-date. If status is `UPDATING_MEMBERSHIPS`, the time at which dynamic group was created. */ statusTime: string; } /** * Resource representing the Endpoint Verification-specific attributes of a Device. https://cloud.google.com/endpoint-verification/docs/overview */ interface EndpointVerificationSpecificAttributesResponse { /** * Details of certificates. */ certificateAttributes: outputs.cloudidentity.v1beta1.CertificateAttributesResponse[]; } /** * A unique identifier for an entity in the Cloud Identity Groups API. An entity can represent either a group with an optional `namespace` or a user without a `namespace`. The combination of `id` and `namespace` must be unique; however, the same `id` can be used with different `namespace`s. */ interface EntityKeyResponse { /** * The namespace in which the entity exists. If not specified, the `EntityKey` represents a Google-managed entity such as a Google user or a Google Group. If specified, the `EntityKey` represents an external-identity-mapped group. The namespace must correspond to an identity source created in Admin Console and must be in the form of `identitysources/{identity_source_id}`. */ namespace: string; } /** * The `MembershipRole` expiry details. */ interface ExpiryDetailResponse { /** * The time at which the `MembershipRole` will expire. */ expireTime: string; } /** * A membership role within the Cloud Identity Groups API. A `MembershipRole` defines the privileges granted to a `Membership`. */ interface MembershipRoleResponse { /** * The expiry details of the `MembershipRole`. Expiry details are only supported for `MEMBER` `MembershipRoles`. May be set if `name` is `MEMBER`. Must not be set if `name` is any other value. */ expiryDetail: outputs.cloudidentity.v1beta1.ExpiryDetailResponse; /** * The name of the `MembershipRole`. Must be one of `OWNER`, `MANAGER`, `MEMBER`. */ name: string; /** * Evaluations of restrictions applied to parent group on this membership. */ restrictionEvaluations: outputs.cloudidentity.v1beta1.RestrictionEvaluationsResponse; } /** * The evaluated state of this restriction. */ interface MembershipRoleRestrictionEvaluationResponse { /** * The current state of the restriction */ state: string; } /** * POSIX Group definition to represent a group in a POSIX compliant system. */ interface PosixGroupResponse { /** * GID of the POSIX group. */ gid: string; /** * Name of the POSIX group. */ name: string; /** * System identifier for which group name and gid apply to. If not specified it will default to empty value. */ systemId: string; } /** * Evaluations of restrictions applied to parent group on this membership. */ interface RestrictionEvaluationsResponse { /** * Evaluation of the member restriction applied to this membership. Empty if the user lacks permission to view the restriction evaluation. */ memberRestrictionEvaluation: outputs.cloudidentity.v1beta1.MembershipRoleRestrictionEvaluationResponse; } /** * SAML IDP (identity provider) configuration. */ interface SamlIdpConfigResponse { /** * The **Change Password URL** of the identity provider. Users will be sent to this URL when changing their passwords at `myaccount.google.com`. This takes precedence over the change password URL configured at customer-level. Must use `HTTPS`. */ changePasswordUri: string; /** * The SAML **Entity ID** of the identity provider. */ entityId: string; /** * The **Logout Redirect URL** (sign-out page URL) of the identity provider. When a user clicks the sign-out link on a Google page, they will be redirected to this URL. This is a pure redirect with no attached SAML `LogoutRequest` i.e. SAML single logout is not supported. Must use `HTTPS`. */ logoutRedirectUri: string; /** * The `SingleSignOnService` endpoint location (sign-in page URL) of the identity provider. This is the URL where the `AuthnRequest` will be sent. Must use `HTTPS`. Assumed to accept the `HTTP-Redirect` binding. */ singleSignOnServiceUri: string; } /** * SAML SP (service provider) configuration. */ interface SamlSpConfigResponse { /** * The SAML **Assertion Consumer Service (ACS) URL** to be used for the IDP-initiated login. Assumed to accept response messages via the `HTTP-POST` binding. */ assertionConsumerServiceUri: string; /** * The SAML **Entity ID** for this service provider. */ entityId: string; } /** * Details that are applicable when `sso_mode` == `SAML_SSO`. */ interface SamlSsoInfoResponse { /** * Name of the `InboundSamlSsoProfile` to use. Must be of the form `inboundSamlSsoProfiles/{inbound_saml_sso_profile}`. */ inboundSamlSsoProfile: string; } /** * Controls sign-in behavior. */ interface SignInBehaviorResponse { /** * When to redirect sign-ins to the IdP. */ redirectCondition: string; } } } export declare namespace cloudiot { namespace v1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudiot.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * The device configuration. Eventually delivered to devices. */ interface DeviceConfigResponse { /** * The device configuration data. */ binaryData: string; /** * [Output only] The time at which this configuration version was updated in Cloud IoT Core. This timestamp is set by the server. */ cloudUpdateTime: string; /** * [Output only] The time at which Cloud IoT Core received the acknowledgment from the device, indicating that the device has received this configuration version. If this field is not present, the device has not yet acknowledged that it received this version. Note that when the config was sent to the device, many config versions may have been available in Cloud IoT Core while the device was disconnected, and on connection, only the latest version is sent to the device. Some versions may never be sent to the device, and therefore are never acknowledged. This timestamp is set by Cloud IoT Core. */ deviceAckTime: string; /** * [Output only] The version of this update. The version number is assigned by the server, and is always greater than 0 after device creation. The version must be 0 on the `CreateDevice` request if a `config` is specified; the response of `CreateDevice` will always have a value of 1. */ version: string; } /** * A server-stored device credential used for authentication. */ interface DeviceCredentialResponse { /** * [Optional] The time at which this credential becomes invalid. This credential will be ignored for new client authentication requests after this timestamp; however, it will not be automatically deleted. */ expirationTime: string; /** * A public key used to verify the signature of JSON Web Tokens (JWTs). When adding a new device credential, either via device creation or via modifications, this public key credential may be required to be signed by one of the registry level certificates. More specifically, if the registry contains at least one certificate, any new device credential must be signed by one of the registry certificates. As a result, when the registry contains certificates, only X.509 certificates are accepted as device credentials. However, if the registry does not contain a certificate, self-signed certificates and public keys will be accepted. New device credentials must be different from every registry-level certificate. */ publicKey: outputs.cloudiot.v1.PublicKeyCredentialResponse; } /** * The device state, as reported by the device. */ interface DeviceStateResponse { /** * The device state data. */ binaryData: string; /** * [Output only] The time at which this state version was updated in Cloud IoT Core. */ updateTime: string; } /** * The configuration for forwarding telemetry events. */ interface EventNotificationConfigResponse { /** * A Cloud Pub/Sub topic name. For example, `projects/myProject/topics/deviceEvents`. */ pubsubTopicName: string; /** * If the subfolder name matches this string exactly, this configuration will be used. The string must not include the leading '/' character. If empty, all strings are matched. This field is used only for telemetry events; subfolders are not supported for state changes. */ subfolderMatches: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Gateway-related configuration and state. */ interface GatewayConfigResponse { /** * Indicates how to authorize and/or authenticate devices to access the gateway. */ gatewayAuthMethod: string; /** * Indicates whether the device is a gateway. */ gatewayType: string; /** * [Output only] The ID of the gateway the device accessed most recently. */ lastAccessedGatewayId: string; /** * [Output only] The most recent time at which the device accessed the gateway specified in `last_accessed_gateway`. */ lastAccessedGatewayTime: string; } /** * The configuration of the HTTP bridge for a device registry. */ interface HttpConfigResponse { /** * If enabled, allows devices to use DeviceService via the HTTP protocol. Otherwise, any requests to DeviceService will fail for this registry. */ httpEnabledState: string; } /** * The configuration of MQTT for a device registry. */ interface MqttConfigResponse { /** * If enabled, allows connections using the MQTT protocol. Otherwise, MQTT connections to this registry will fail. */ mqttEnabledState: string; } /** * A public key certificate format and data. */ interface PublicKeyCertificateResponse { /** * The certificate data. */ certificate: string; /** * The certificate format. */ format: string; /** * [Output only] The certificate details. Used only for X.509 certificates. */ x509Details: outputs.cloudiot.v1.X509CertificateDetailsResponse; } /** * A public key format and data. */ interface PublicKeyCredentialResponse { /** * The format of the key. */ format: string; /** * The key data. */ key: string; } /** * A server-stored registry credential used to validate device credentials. */ interface RegistryCredentialResponse { /** * A public key certificate used to verify the device credentials. */ publicKeyCertificate: outputs.cloudiot.v1.PublicKeyCertificateResponse; } /** * The configuration for notification of new states received from the device. */ interface StateNotificationConfigResponse { /** * A Cloud Pub/Sub topic name. For example, `projects/myProject/topics/deviceEvents`. */ pubsubTopicName: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Details of an X.509 certificate. For informational purposes only. */ interface X509CertificateDetailsResponse { /** * The time the certificate becomes invalid. */ expiryTime: string; /** * The entity that signed the certificate. */ issuer: string; /** * The type of public key in the certificate. */ publicKeyType: string; /** * The algorithm used to sign the certificate. */ signatureAlgorithm: string; /** * The time the certificate becomes valid. */ startTime: string; /** * The entity the certificate and public key belong to. */ subject: string; } } } export declare namespace cloudkms { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudkms.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudkms.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Certificate chains needed to verify the attestation. Certificates in chains are PEM-encoded and are ordered based on https://tools.ietf.org/html/rfc5246#section-7.4.2. */ interface CertificateChainsResponse { /** * Cavium certificate chain corresponding to the attestation. */ caviumCerts: string[]; /** * Google card certificate chain corresponding to the attestation. */ googleCardCerts: string[]; /** * Google partition certificate chain corresponding to the attestation. */ googlePartitionCerts: string[]; } /** * A Certificate represents an X.509 certificate used to authenticate HTTPS connections to EKM replicas. */ interface CertificateResponse { /** * The issuer distinguished name in RFC 2253 format. Only present if parsed is true. */ issuer: string; /** * The certificate is not valid after this time. Only present if parsed is true. */ notAfterTime: string; /** * The certificate is not valid before this time. Only present if parsed is true. */ notBeforeTime: string; /** * True if the certificate was parsed successfully. */ parsed: boolean; /** * The raw certificate bytes in DER format. */ rawDer: string; /** * The certificate serial number as a hex string. Only present if parsed is true. */ serialNumber: string; /** * The SHA-256 certificate fingerprint as a hex string. Only present if parsed is true. */ sha256Fingerprint: string; /** * The subject distinguished name in RFC 2253 format. Only present if parsed is true. */ subject: string; /** * The subject Alternative DNS names. Only present if parsed is true. */ subjectAlternativeDnsNames: string[]; } /** * A CryptoKeyVersion represents an individual cryptographic key, and the associated key material. An ENABLED version can be used for cryptographic operations. For security reasons, the raw cryptographic key material represented by a CryptoKeyVersion can never be viewed or exported. It can only be used to encrypt, decrypt, or sign data when an authorized user or application invokes Cloud KMS. */ interface CryptoKeyVersionResponse { /** * The CryptoKeyVersionAlgorithm that this CryptoKeyVersion supports. */ algorithm: string; /** * Statement that was generated and signed by the HSM at key creation time. Use this statement to verify attributes of the key as stored on the HSM, independently of Google. Only provided for key versions with protection_level HSM. */ attestation: outputs.cloudkms.v1.KeyOperationAttestationResponse; /** * The time at which this CryptoKeyVersion was created. */ createTime: string; /** * The time this CryptoKeyVersion's key material was destroyed. Only present if state is DESTROYED. */ destroyEventTime: string; /** * The time this CryptoKeyVersion's key material is scheduled for destruction. Only present if state is DESTROY_SCHEDULED. */ destroyTime: string; /** * The root cause of the most recent external destruction failure. Only present if state is EXTERNAL_DESTRUCTION_FAILED. */ externalDestructionFailureReason: string; /** * ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels. */ externalProtectionLevelOptions: outputs.cloudkms.v1.ExternalProtectionLevelOptionsResponse; /** * The time this CryptoKeyVersion's key material was generated. */ generateTime: string; /** * The root cause of the most recent generation failure. Only present if state is GENERATION_FAILED. */ generationFailureReason: string; /** * The root cause of the most recent import failure. Only present if state is IMPORT_FAILED. */ importFailureReason: string; /** * The name of the ImportJob used in the most recent import of this CryptoKeyVersion. Only present if the underlying key material was imported. */ importJob: string; /** * The time at which this CryptoKeyVersion's key material was most recently imported. */ importTime: string; /** * The resource name for this CryptoKeyVersion in the format `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. */ name: string; /** * The ProtectionLevel describing how crypto operations are performed with this CryptoKeyVersion. */ protectionLevel: string; /** * Whether or not this key version is eligible for reimport, by being specified as a target in ImportCryptoKeyVersionRequest.crypto_key_version. */ reimportEligible: boolean; /** * The current state of the CryptoKeyVersion. */ state: string; } /** * A CryptoKeyVersionTemplate specifies the properties to use when creating a new CryptoKeyVersion, either manually with CreateCryptoKeyVersion or automatically as a result of auto-rotation. */ interface CryptoKeyVersionTemplateResponse { /** * Algorithm to use when creating a CryptoKeyVersion based on this template. For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both this field is omitted and CryptoKey.purpose is ENCRYPT_DECRYPT. */ algorithm: string; /** * ProtectionLevel to use when creating a CryptoKeyVersion based on this template. Immutable. Defaults to SOFTWARE. */ protectionLevel: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels. */ interface ExternalProtectionLevelOptionsResponse { /** * The path to the external key material on the EKM when using EkmConnection e.g., "v0/my/key". Set this field instead of external_key_uri when using an EkmConnection. */ ekmConnectionKeyPath: string; /** * The URI for an external resource that this CryptoKeyVersion represents. */ externalKeyUri: string; } /** * Contains an HSM-generated attestation about a key operation. For more information, see [Verifying attestations] (https://cloud.google.com/kms/docs/attest-key). */ interface KeyOperationAttestationResponse { /** * The certificate chains needed to validate the attestation */ certChains: outputs.cloudkms.v1.CertificateChainsResponse; /** * The attestation data provided by the HSM when the key operation was performed. */ content: string; /** * The format of the attestation data. */ format: string; } /** * A ServiceResolver represents an EKM replica that can be reached within an EkmConnection. */ interface ServiceResolverResponse { /** * Optional. The filter applied to the endpoints of the resolved service. If no filter is specified, all endpoints will be considered. An endpoint will be chosen arbitrarily from the filtered list for each request. For endpoint filter syntax and examples, see https://cloud.google.com/service-directory/docs/reference/rpc/google.cloud.servicedirectory.v1#resolveservicerequest. */ endpointFilter: string; /** * The hostname of the EKM replica used at TLS and HTTP layers. */ hostname: string; /** * A list of leaf server certificates used to authenticate HTTPS connections to the EKM replica. Currently, a maximum of 10 Certificate is supported. */ serverCertificates: outputs.cloudkms.v1.CertificateResponse[]; /** * The resource name of the Service Directory service pointing to an EKM replica, in the format `projects/*/locations/*/namespaces/*/services/*`. */ serviceDirectoryService: string; } /** * The public key component of the wrapping key. For details of the type of key this public key corresponds to, see the ImportMethod. */ interface WrappingPublicKeyResponse { /** * The public key, encoded in PEM format. For more information, see the [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and [Textual Encoding of Subject Public Key Info] (https://tools.ietf.org/html/rfc7468#section-13). */ pem: string; } } } export declare namespace cloudresourcemanager { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudresourcemanager.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudresourcemanager.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A container to reference an id for any resource type. A `resource` in Google Cloud Platform is a generic term for something you (a developer) may want to interact with through one of our API's. Some examples are an App Engine app, a Compute Engine instance, a Cloud SQL database, and so on. */ interface ResourceIdResponse { /** * The resource type this id is for. At present, the valid types are: "organization", "folder", and "project". */ type: string; } } namespace v1beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudresourcemanager.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudresourcemanager.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A container to reference an id for any resource type. A `resource` in Google Cloud Platform is a generic term for something you (a developer) may want to interact with through one of our API's. Some examples are an App Engine app, a Compute Engine instance, a Cloud SQL database, and so on. */ interface ResourceIdResponse { /** * Required field representing the resource type this id is for. At present, the valid types are "project", "folder", and "organization". */ type: string; } } namespace v2 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudresourcemanager.v2.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudresourcemanager.v2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } namespace v2beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudresourcemanager.v2beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudresourcemanager.v2beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } namespace v3 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.cloudresourcemanager.v3.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudresourcemanager.v3.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace cloudscheduler { namespace v1 { /** * App Engine target. The job will be pushed to a job handler by means of an HTTP request via an http_method such as HTTP POST, HTTP GET, etc. The job is acknowledged by means of an HTTP response code in the range [200 - 299]. Error 503 is considered an App Engine system error instead of an application error. Requests returning error 503 will be retried regardless of retry configuration and not counted against retry counts. Any other response code, or a failure to receive a response before the deadline, constitutes a failed attempt. */ interface AppEngineHttpTargetResponse { /** * App Engine Routing setting for the job. */ appEngineRouting: outputs.cloudscheduler.v1.AppEngineRoutingResponse; /** * Body. HTTP request body. A request body is allowed only if the HTTP method is POST or PUT. It will result in invalid argument error to set a body on a job with an incompatible HttpMethod. */ body: string; /** * HTTP request headers. This map contains the header field names and values. Headers can be set when the job is created. Cloud Scheduler sets some headers to default values: * `User-Agent`: By default, this header is `"AppEngine-Google; (+http://code.google.com/appengine)"`. This header can be modified, but Cloud Scheduler will append `"AppEngine-Google; (+http://code.google.com/appengine)"` to the modified `User-Agent`. * `X-CloudScheduler`: This header will be set to true. * `X-CloudScheduler-JobName`: This header will contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the unix-cron format, this header will contain the job schedule time in RFC3339 UTC "Zulu" format. If the job has a body and the following headers are not set by the user, Cloud Scheduler sets default values: * `Content-Type`: This will be set to `"application/octet-stream"`. You can override this default by explicitly setting `Content-Type` to a particular media type when creating the job. For example, you can set `Content-Type` to `"application/json"`. The headers below are output only. They cannot be set or overridden: * `Content-Length`: This is computed by Cloud Scheduler. * `X-Google-*`: For Google internal use only. * `X-AppEngine-*`: For Google internal use only. In addition, some App Engine headers, which contain job-specific information, are also be sent to the job handler. */ headers: { [key: string]: string; }; /** * The HTTP method to use for the request. PATCH and OPTIONS are not permitted. */ httpMethod: string; /** * The relative URI. The relative URL must begin with "/" and must be a valid HTTP relative URL. It can contain a path, query string arguments, and `#` fragments. If the relative URL is empty, then the root path "/" will be used. No spaces are allowed, and the maximum length allowed is 2083 characters. */ relativeUri: string; } /** * App Engine Routing. For more information about services, versions, and instances see [An Overview of App Engine](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine), [Microservices Architecture on Google App Engine](https://cloud.google.com/appengine/docs/python/microservices-on-app-engine), [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed), and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed). */ interface AppEngineRoutingResponse { /** * The host that the job is sent to. For more information about how App Engine requests are routed, see [here](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed). The host is constructed as: * `host = [application_domain_name]` `| [service] + '.' + [application_domain_name]` `| [version] + '.' + [application_domain_name]` `| [version_dot_service]+ '.' + [application_domain_name]` `| [instance] + '.' + [application_domain_name]` `| [instance_dot_service] + '.' + [application_domain_name]` `| [instance_dot_version] + '.' + [application_domain_name]` `| [instance_dot_version_dot_service] + '.' + [application_domain_name]` * `application_domain_name` = The domain name of the app, for example .appspot.com, which is associated with the job's project ID. * `service =` service * `version =` version * `version_dot_service =` version `+ '.' +` service * `instance =` instance * `instance_dot_service =` instance `+ '.' +` service * `instance_dot_version =` instance `+ '.' +` version * `instance_dot_version_dot_service =` instance `+ '.' +` version `+ '.' +` service If service is empty, then the job will be sent to the service which is the default service when the job is attempted. If version is empty, then the job will be sent to the version which is the default version when the job is attempted. If instance is empty, then the job will be sent to an instance which is available when the job is attempted. If service, version, or instance is invalid, then the job will be sent to the default version of the default service when the job is attempted. */ host: string; /** * App instance. By default, the job is sent to an instance which is available when the job is attempted. Requests can only be sent to a specific instance if [manual scaling is used in App Engine Standard](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine?#scaling_types_and_instance_classes). App Engine Flex does not support instances. For more information, see [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed) and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed). */ instance: string; /** * App service. By default, the job is sent to the service which is the default service when the job is attempted. */ service: string; /** * App version. By default, the job is sent to the version which is the default version when the job is attempted. */ version: string; } /** * Http target. The job will be pushed to the job handler by means of an HTTP request via an http_method such as HTTP POST, HTTP GET, etc. The job is acknowledged by means of an HTTP response code in the range [200 - 299]. A failure to receive a response constitutes a failed execution. For a redirected request, the response returned by the redirected request is considered. */ interface HttpTargetResponse { /** * HTTP request body. A request body is allowed only if the HTTP method is POST, PUT, or PATCH. It is an error to set body on a job with an incompatible HttpMethod. */ body: string; /** * HTTP request headers. This map contains the header field names and values. The user can specify HTTP request headers to send with the job's HTTP request. Repeated headers are not supported, but a header value can contain commas. The following headers represent a subset of the headers that accompany the job's HTTP request. Some HTTP request headers are ignored or replaced. A partial list of headers that are ignored or replaced is below: * Host: This will be computed by Cloud Scheduler and derived from uri. * `Content-Length`: This will be computed by Cloud Scheduler. * `User-Agent`: This will be set to `"Google-Cloud-Scheduler"`. * `X-Google-*`: Google internal use only. * `X-AppEngine-*`: Google internal use only. * `X-CloudScheduler`: This header will be set to true. * `X-CloudScheduler-JobName`: This header will contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the unix-cron format, this header will contain the job schedule time in RFC3339 UTC "Zulu" format. If the job has a body and the following headers are not set by the user, Cloud Scheduler sets default values: * `Content-Type`: This will be set to `"application/octet-stream"`. You can override this default by explicitly setting `Content-Type` to a particular media type when creating the job. For example, you can set `Content-Type` to `"application/json"`. The total size of headers must be less than 80KB. */ headers: { [key: string]: string; }; /** * Which HTTP method to use for the request. */ httpMethod: string; /** * If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ oauthToken: outputs.cloudscheduler.v1.OAuthTokenResponse; /** * If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ oidcToken: outputs.cloudscheduler.v1.OidcTokenResponse; /** * The full URI path that the request will be sent to. This string must begin with either "http://" or "https://". Some examples of valid values for uri are: `http://acme.com` and `https://acme.com/sales:8080`. Cloud Scheduler will encode some characters for safety and compatibility. The maximum allowed URL length is 2083 characters after encoding. */ uri: string; } /** * Contains information needed for generating an [OAuth token](https://developers.google.com/identity/protocols/OAuth2). This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ interface OAuthTokenResponse { /** * OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used. */ scope: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OAuth token. The service account must be within the same project as the job. The caller must have iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect). This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ interface OidcTokenResponse { /** * Audience to be used when generating OIDC token. If not specified, the URI specified in target will be used. */ audience: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OIDC token. The service account must be within the same project as the job. The caller must have iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * Pub/Sub target. The job will be delivered by publishing a message to the given Pub/Sub topic. */ interface PubsubTargetResponse { /** * Attributes for PubsubMessage. Pubsub message must contain either non-empty data, or at least one attribute. */ attributes: { [key: string]: string; }; /** * The message payload for PubsubMessage. Pubsub message must contain either non-empty data, or at least one attribute. */ data: string; /** * The name of the Cloud Pub/Sub topic to which messages will be published when a job is delivered. The topic name must be in the same format as required by Pub/Sub's [PublishRequest.name](https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#publishrequest), for example `projects/PROJECT_ID/topics/TOPIC_ID`. The topic must be in the same project as the Cloud Scheduler job. */ topicName: string; } /** * Settings that determine the retry behavior. By default, if a job does not complete successfully (meaning that an acknowledgement is not received from the handler, then it will be retried with exponential backoff according to the settings in RetryConfig. */ interface RetryConfigResponse { /** * The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour. */ maxBackoffDuration: string; /** * The time between retries will double `max_doublings` times. A job's retry interval starts at min_backoff_duration, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff_duration up to retry_count times. For example, if min_backoff_duration is 10s, max_backoff_duration is 300s, and `max_doublings` is 3, then the job will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the job will retry at intervals of max_backoff_duration until the job has been attempted retry_count times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... The default value of this field is 5. */ maxDoublings: number; /** * The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with retry_count, the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited. */ maxRetryDuration: string; /** * The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds. */ minBackoffDuration: string; /** * The number of attempts that the system will make to run a job using the exponential backoff procedure described by max_doublings. The default value of retry_count is zero. If retry_count is 0, a job attempt will not be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. Setting retry_count to 0 does not prevent failed jobs from running according to schedule after the failure. If retry_count is set to a non-zero number then Cloud Scheduler will retry failed attempts, using exponential backoff, retry_count times, or until the next scheduled execution time, whichever comes first. Values greater than 5 and negative values are not allowed. */ retryCount: number; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } namespace v1beta1 { /** * App Engine target. The job will be pushed to a job handler by means of an HTTP request via an http_method such as HTTP POST, HTTP GET, etc. The job is acknowledged by means of an HTTP response code in the range [200 - 299]. Error 503 is considered an App Engine system error instead of an application error. Requests returning error 503 will be retried regardless of retry configuration and not counted against retry counts. Any other response code, or a failure to receive a response before the deadline, constitutes a failed attempt. */ interface AppEngineHttpTargetResponse { /** * App Engine Routing setting for the job. */ appEngineRouting: outputs.cloudscheduler.v1beta1.AppEngineRoutingResponse; /** * Body. HTTP request body. A request body is allowed only if the HTTP method is POST or PUT. It will result in invalid argument error to set a body on a job with an incompatible HttpMethod. */ body: string; /** * HTTP request headers. This map contains the header field names and values. Headers can be set when the job is created. Cloud Scheduler sets some headers to default values: * `User-Agent`: By default, this header is `"AppEngine-Google; (+http://code.google.com/appengine)"`. This header can be modified, but Cloud Scheduler will append `"AppEngine-Google; (+http://code.google.com/appengine)"` to the modified `User-Agent`. * `X-CloudScheduler`: This header will be set to true. * `X-CloudScheduler-JobName`: This header will contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the unix-cron format, this header will contain the job schedule time in RFC3339 UTC "Zulu" format. If the job has a body and the following headers are not set by the user, Cloud Scheduler sets default values: * `Content-Type`: This will be set to `"application/octet-stream"`. You can override this default by explicitly setting `Content-Type` to a particular media type when creating the job. For example, you can set `Content-Type` to `"application/json"`. The headers below are output only. They cannot be set or overridden: * `Content-Length`: This is computed by Cloud Scheduler. * `X-Google-*`: For Google internal use only. * `X-AppEngine-*`: For Google internal use only. In addition, some App Engine headers, which contain job-specific information, are also be sent to the job handler. */ headers: { [key: string]: string; }; /** * The HTTP method to use for the request. PATCH and OPTIONS are not permitted. */ httpMethod: string; /** * The relative URI. The relative URL must begin with "/" and must be a valid HTTP relative URL. It can contain a path, query string arguments, and `#` fragments. If the relative URL is empty, then the root path "/" will be used. No spaces are allowed, and the maximum length allowed is 2083 characters. */ relativeUri: string; } /** * App Engine Routing. For more information about services, versions, and instances see [An Overview of App Engine](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine), [Microservices Architecture on Google App Engine](https://cloud.google.com/appengine/docs/python/microservices-on-app-engine), [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed), and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed). */ interface AppEngineRoutingResponse { /** * The host that the job is sent to. For more information about how App Engine requests are routed, see [here](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed). The host is constructed as: * `host = [application_domain_name]` `| [service] + '.' + [application_domain_name]` `| [version] + '.' + [application_domain_name]` `| [version_dot_service]+ '.' + [application_domain_name]` `| [instance] + '.' + [application_domain_name]` `| [instance_dot_service] + '.' + [application_domain_name]` `| [instance_dot_version] + '.' + [application_domain_name]` `| [instance_dot_version_dot_service] + '.' + [application_domain_name]` * `application_domain_name` = The domain name of the app, for example .appspot.com, which is associated with the job's project ID. * `service =` service * `version =` version * `version_dot_service =` version `+ '.' +` service * `instance =` instance * `instance_dot_service =` instance `+ '.' +` service * `instance_dot_version =` instance `+ '.' +` version * `instance_dot_version_dot_service =` instance `+ '.' +` version `+ '.' +` service If service is empty, then the job will be sent to the service which is the default service when the job is attempted. If version is empty, then the job will be sent to the version which is the default version when the job is attempted. If instance is empty, then the job will be sent to an instance which is available when the job is attempted. If service, version, or instance is invalid, then the job will be sent to the default version of the default service when the job is attempted. */ host: string; /** * App instance. By default, the job is sent to an instance which is available when the job is attempted. Requests can only be sent to a specific instance if [manual scaling is used in App Engine Standard](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine?#scaling_types_and_instance_classes). App Engine Flex does not support instances. For more information, see [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed) and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed). */ instance: string; /** * App service. By default, the job is sent to the service which is the default service when the job is attempted. */ service: string; /** * App version. By default, the job is sent to the version which is the default version when the job is attempted. */ version: string; } /** * Http target. The job will be pushed to the job handler by means of an HTTP request via an http_method such as HTTP POST, HTTP GET, etc. The job is acknowledged by means of an HTTP response code in the range [200 - 299]. A failure to receive a response constitutes a failed execution. For a redirected request, the response returned by the redirected request is considered. */ interface HttpTargetResponse { /** * HTTP request body. A request body is allowed only if the HTTP method is POST, PUT, or PATCH. It is an error to set body on a job with an incompatible HttpMethod. */ body: string; /** * HTTP request headers. This map contains the header field names and values. The user can specify HTTP request headers to send with the job's HTTP request. Repeated headers are not supported, but a header value can contain commas. The following headers represent a subset of the headers that accompany the job's HTTP request. Some HTTP request headers are ignored or replaced. A partial list of headers that are ignored or replaced is below: * Host: This will be computed by Cloud Scheduler and derived from uri. * `Content-Length`: This will be computed by Cloud Scheduler. * `User-Agent`: This will be set to `"Google-Cloud-Scheduler"`. * `X-Google-*`: Google internal use only. * `X-AppEngine-*`: Google internal use only. * `X-CloudScheduler`: This header will be set to true. * `X-CloudScheduler-JobName`: This header will contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the unix-cron format, this header will contain the job schedule time in RFC3339 UTC "Zulu" format. If the job has a body and the following headers are not set by the user, Cloud Scheduler sets default values: * `Content-Type`: This will be set to `"application/octet-stream"`. You can override this default by explicitly setting `Content-Type` to a particular media type when creating the job. For example, you can set `Content-Type` to `"application/json"`. The total size of headers must be less than 80KB. */ headers: { [key: string]: string; }; /** * Which HTTP method to use for the request. */ httpMethod: string; /** * If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ oauthToken: outputs.cloudscheduler.v1beta1.OAuthTokenResponse; /** * If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ oidcToken: outputs.cloudscheduler.v1beta1.OidcTokenResponse; /** * The full URI path that the request will be sent to. This string must begin with either "http://" or "https://". Some examples of valid values for uri are: `http://acme.com` and `https://acme.com/sales:8080`. Cloud Scheduler will encode some characters for safety and compatibility. The maximum allowed URL length is 2083 characters after encoding. */ uri: string; } /** * Contains information needed for generating an [OAuth token](https://developers.google.com/identity/protocols/OAuth2). This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ interface OAuthTokenResponse { /** * OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used. */ scope: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OAuth token. The service account must be within the same project as the job. The caller must have iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect). This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ interface OidcTokenResponse { /** * Audience to be used when generating OIDC token. If not specified, the URI specified in target will be used. */ audience: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OIDC token. The service account must be within the same project as the job. The caller must have iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * Pub/Sub target. The job will be delivered by publishing a message to the given Pub/Sub topic. */ interface PubsubTargetResponse { /** * Attributes for PubsubMessage. Pubsub message must contain either non-empty data, or at least one attribute. */ attributes: { [key: string]: string; }; /** * The message payload for PubsubMessage. Pubsub message must contain either non-empty data, or at least one attribute. */ data: string; /** * The name of the Cloud Pub/Sub topic to which messages will be published when a job is delivered. The topic name must be in the same format as required by Pub/Sub's [PublishRequest.name](https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#publishrequest), for example `projects/PROJECT_ID/topics/TOPIC_ID`. The topic must be in the same project as the Cloud Scheduler job. */ topicName: string; } /** * Settings that determine the retry behavior. By default, if a job does not complete successfully (meaning that an acknowledgement is not received from the handler, then it will be retried with exponential backoff according to the settings in RetryConfig. */ interface RetryConfigResponse { /** * The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour. */ maxBackoffDuration: string; /** * The time between retries will double `max_doublings` times. A job's retry interval starts at min_backoff_duration, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff_duration up to retry_count times. For example, if min_backoff_duration is 10s, max_backoff_duration is 300s, and `max_doublings` is 3, then the job will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the job will retry at intervals of max_backoff_duration until the job has been attempted retry_count times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... The default value of this field is 5. */ maxDoublings: number; /** * The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with retry_count, the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited. */ maxRetryDuration: string; /** * The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds. */ minBackoffDuration: string; /** * The number of attempts that the system will make to run a job using the exponential backoff procedure described by max_doublings. The default value of retry_count is zero. If retry_count is 0, a job attempt will not be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. Setting retry_count to 0 does not prevent failed jobs from running according to schedule after the failure. If retry_count is set to a non-zero number then Cloud Scheduler will retry failed attempts, using exponential backoff, retry_count times, or until the next scheduled execution time, whichever comes first. Values greater than 5 and negative values are not allowed. */ retryCount: number; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } } export declare namespace cloudsearch { namespace v1 { interface CompositeFilterResponse { /** * The logic operator of the sub filter. */ logicOperator: string; /** * Sub filters. */ subFilters: outputs.cloudsearch.v1.FilterResponse[]; } /** * Restriction on Datasource. */ interface DataSourceRestrictionResponse { /** * Filter options restricting the results. If multiple filters are present, they are grouped by object type before joining. Filters with the same object type are joined conjunctively, then the resulting expressions are joined disjunctively. The maximum number of elements is 20. NOTE: Suggest API supports only few filters at the moment: "objecttype", "type" and "mimetype". For now, schema specific filters cannot be used to filter suggestions. */ filterOptions: outputs.cloudsearch.v1.FilterOptionsResponse[]; /** * The source of restriction. */ source: outputs.cloudsearch.v1.SourceResponse; } /** * Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999. */ interface DateResponse { /** * Day of month. Must be from 1 to 31 and valid for the year and month. */ day: number; /** * Month of date. Must be from 1 to 12. */ month: number; /** * Year of date. Must be from 1 to 9999. */ year: number; } /** * Specifies operators to return facet results for. There will be one FacetResult for every source_name/object_type/operator_name combination. */ interface FacetOptionsResponse { /** * If set, describes integer faceting options for the given integer property. The corresponding integer property in the schema should be marked isFacetable. The number of buckets returned would be minimum of this and num_facet_buckets. */ integerFacetingOptions: outputs.cloudsearch.v1.IntegerFacetingOptionsResponse; /** * Maximum number of facet buckets that should be returned for this facet. Defaults to 10. Maximum value is 100. */ numFacetBuckets: number; /** * If object_type is set, only those objects of that type will be used to compute facets. If empty, then all objects will be used to compute facets. */ objectType: string; /** * The name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions */ operatorName: string; /** * Source name to facet on. Format: datasources/{source_id} If empty, all data sources will be used. */ sourceName: string; } /** * Filter options to be applied on query. */ interface FilterOptionsResponse { /** * Generic filter to restrict the search, such as `lang:en`, `site:xyz`. */ filter: outputs.cloudsearch.v1.FilterResponse; /** * If object_type is set, only objects of that type are returned. This should correspond to the name of the object that was registered within the definition of schema. The maximum length is 256 characters. */ objectType: string; } /** * A generic way of expressing filters in a query, which supports two approaches: **1. Setting a ValueFilter.** The name must match an operator_name defined in the schema for your data source. **2. Setting a CompositeFilter.** The filters are evaluated using the logical operator. The top-level operators can only be either an AND or a NOT. AND can appear only at the top-most level. OR can appear only under a top-level AND. */ interface FilterResponse { compositeFilter: outputs.cloudsearch.v1.CompositeFilterResponse; valueFilter: outputs.cloudsearch.v1.ValueFilterResponse; } interface GSuitePrincipalResponse { /** * This principal represents all users of the Google Workspace domain of the customer. */ gsuiteDomain: boolean; /** * This principal references a Google Workspace group name. */ gsuiteGroupEmail: string; /** * This principal references a Google Workspace user account. */ gsuiteUserEmail: string; } /** * Used to specify integer faceting options. */ interface IntegerFacetingOptionsResponse { /** * Buckets for given integer values should be in strictly ascending order. For example, if values supplied are (1,5,10,100), the following facet buckets will be formed {<1, [1,5), [5-10), [10-100), >=100}. */ integerBuckets: string[]; } /** * Default options to interpret user query. */ interface QueryInterpretationConfigResponse { /** * Set this flag to disable supplemental results retrieval, setting a flag here will not retrieve supplemental results for queries associated with a given search application. If this flag is set to True, it will take precedence over the option set at Query level. For the default value of False, query level flag will set the correct interpretation for supplemental results. */ forceDisableSupplementalResults: boolean; /** * Enable this flag to turn off all internal optimizations like natural language (NL) interpretation of queries, supplemental results retrieval, and usage of synonyms including custom ones. If this flag is set to True, it will take precedence over the option set at Query level. For the default value of False, query level flag will set the correct interpretation for verbatim mode. */ forceVerbatimMode: boolean; } /** * Scoring configurations for a source while processing a Search or Suggest request. */ interface ScoringConfigResponse { /** * Whether to use freshness as a ranking signal. By default, freshness is used as a ranking signal. Note that this setting is not available in the Admin UI. */ disableFreshness: boolean; /** * Whether to personalize the results. By default, personal signals will be used to boost results. */ disablePersonalization: boolean; } interface SortOptionsResponse { /** * The name of the operator corresponding to the field to sort on. The corresponding property must be marked as sortable. */ operatorName: string; /** * Ascending is the default sort order */ sortOrder: string; } /** * Configurations for a source while processing a Search or Suggest request. */ interface SourceConfigResponse { /** * The crowding configuration for the source. */ crowdingConfig: outputs.cloudsearch.v1.SourceCrowdingConfigResponse; /** * The scoring configuration for the source. */ scoringConfig: outputs.cloudsearch.v1.SourceScoringConfigResponse; /** * The source for which this configuration is to be used. */ source: outputs.cloudsearch.v1.SourceResponse; } /** * Set search results crowding limits. Crowding is a situation in which multiple results from the same source or host "crowd out" other results, diminishing the quality of search for users. To foster better search quality and source diversity in search results, you can set a condition to reduce repetitive results by source. */ interface SourceCrowdingConfigResponse { /** * Maximum number of results allowed from a datasource in a result page as long as results from other sources are not exhausted. Value specified must not be negative. A default value is used if this value is equal to 0. To disable crowding, set the value greater than 100. */ numResults: number; /** * Maximum number of suggestions allowed from a source. No limits will be set on results if this value is less than or equal to 0. */ numSuggestions: number; } /** * Defines sources for the suggest/search APIs. */ interface SourceResponse { /** * Source name for content indexed by the Indexing API. */ name: string; /** * Predefined content source for Google Apps. */ predefinedSource: string; } /** * Set the scoring configuration. This allows modifying the ranking of results for a source. */ interface SourceScoringConfigResponse { /** * Importance of the source. */ sourceImportance: string; } interface ValueFilterResponse { /** * The `operator_name` applied to the query, such as *price_greater_than*. The filter can work against both types of filters defined in the schema for your data source: 1. `operator_name`, where the query filters results by the property that matches the value. 2. `greater_than_operator_name` or `less_than_operator_name` in your schema. The query filters the results for the property values that are greater than or less than the supplied value in the query. */ operatorName: string; /** * The value to be compared with. */ value: outputs.cloudsearch.v1.ValueResponse; } /** * Definition of a single value with generic type. */ interface ValueResponse { booleanValue: boolean; dateValue: outputs.cloudsearch.v1.DateResponse; doubleValue: number; integerValue: string; stringValue: string; timestampValue: string; } } } export declare namespace cloudsupport { namespace v2 { /** * An object containing information about the effective user and authenticated principal responsible for an action. */ interface ActorResponse { /** * The name to display for the actor. If not provided, it is inferred from credentials supplied during case creation. When an email is provided, a display name must also be provided. This will be obfuscated if the user is a Google Support agent. */ displayName: string; /** * The email address of the actor. If not provided, it is inferred from credentials supplied during case creation. If the authenticated principal does not have an email address, one must be provided. When a name is provided, an email must also be provided. This will be obfuscated if the user is a Google Support agent. */ email: string; /** * Whether the actor is a Google support actor. */ googleSupport: boolean; } /** * A classification object with a product type and value. */ interface CaseClassificationResponse { /** * A display name for the classification. The display name is not static and can change. To uniquely and consistently identify classifications, use the `CaseClassification.id` field. */ displayName: string; } } namespace v2beta { /** * An object containing information about the effective user and authenticated principal responsible for an action. */ interface ActorResponse { /** * The name to display for the actor. If not provided, it is inferred from credentials supplied during case creation. When an email is provided, a display name must also be provided. This will be obfuscated if the user is a Google Support agent. */ displayName: string; /** * The email address of the actor. If not provided, it is inferred from credentials supplied during case creation. If the authenticated principal does not have an email address, one must be provided. When a name is provided, an email must also be provided. This will be obfuscated if the user is a Google Support agent. */ email: string; /** * Whether the actor is a Google support actor. */ googleSupport: boolean; } /** * A classification object with a product type and value. */ interface CaseClassificationResponse { /** * A display name for the classification. The display name is not static and can change. To uniquely and consistently identify classifications, use the `CaseClassification.id` field. */ displayName: string; } } } export declare namespace cloudtasks { namespace v2 { /** * App Engine HTTP request. The message defines the HTTP request that is sent to an App Engine app when the task is dispatched. Using AppEngineHttpRequest requires [`appengine.applications.get`](https://cloud.google.com/appengine/docs/admin-api/access-control) Google IAM permission for the project and the following scope: `https://www.googleapis.com/auth/cloud-platform` The task will be delivered to the App Engine app which belongs to the same project as the queue. For more information, see [How Requests are Routed](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed) and how routing is affected by [dispatch files](https://cloud.google.com/appengine/docs/python/config/dispatchref). Traffic is encrypted during transport and never leaves Google datacenters. Because this traffic is carried over a communication mechanism internal to Google, you cannot explicitly set the protocol (for example, HTTP or HTTPS). The request to the handler, however, will appear to have used the HTTP protocol. The AppEngineRouting used to construct the URL that the task is delivered to can be set at the queue-level or task-level: * If app_engine_routing_override is set on the queue, this value is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing. The `url` that the task will be sent to is: * `url =` host `+` relative_uri Tasks can be dispatched to secure app handlers, unsecure app handlers, and URIs restricted with [`login: admin`](https://cloud.google.com/appengine/docs/standard/python/config/appref). Because tasks are not run as any user, they cannot be dispatched to URIs restricted with [`login: required`](https://cloud.google.com/appengine/docs/standard/python/config/appref) Task dispatches also do not follow redirects. The task attempt has succeeded if the app's request handler returns an HTTP response code in the range [`200` - `299`]. The task attempt has failed if the app's handler returns a non-2xx response code or Cloud Tasks does not receive response before the deadline. Failed tasks will be retried according to the retry configuration. `503` (Service Unavailable) is considered an App Engine system error instead of an application error and will cause Cloud Tasks' traffic congestion control to temporarily throttle the queue's dispatches. Unlike other types of task targets, a `429` (Too Many Requests) response from an app handler does not cause traffic congestion control to throttle the queue. */ interface AppEngineHttpRequestResponse { /** * Task-level setting for App Engine routing. * If app_engine_routing_override is set on the queue, this value is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing. */ appEngineRouting: outputs.cloudtasks.v2.AppEngineRoutingResponse; /** * HTTP request body. A request body is allowed only if the HTTP method is POST or PUT. It is an error to set a body on a task with an incompatible HttpMethod. */ body: string; /** * HTTP request headers. This map contains the header field names and values. Headers can be set when the task is created. Repeated headers are not supported but a header value can contain commas. Cloud Tasks sets some headers to default values: * `User-Agent`: By default, this header is `"AppEngine-Google; (+http://code.google.com/appengine)"`. This header can be modified, but Cloud Tasks will append `"AppEngine-Google; (+http://code.google.com/appengine)"` to the modified `User-Agent`. If the task has a body, Cloud Tasks sets the following headers: * `Content-Type`: By default, the `Content-Type` header is set to `"application/octet-stream"`. The default can be overridden by explicitly setting `Content-Type` to a particular media type when the task is created. For example, `Content-Type` can be set to `"application/json"`. * `Content-Length`: This is computed by Cloud Tasks. This value is output only. It cannot be changed. The headers below cannot be set or overridden: * `Host` * `X-Google-*` * `X-AppEngine-*` In addition, Cloud Tasks sets some headers when the task is dispatched, such as headers containing information about the task; see [request headers](https://cloud.google.com/tasks/docs/creating-appengine-handlers#reading_request_headers). These headers are set only when the task is dispatched, so they are not visible when the task is returned in a Cloud Tasks response. Although there is no specific limit for the maximum number of headers or the size, there is a limit on the maximum size of the Task. For more information, see the CreateTask documentation. */ headers: { [key: string]: string; }; /** * The HTTP method to use for the request. The default is POST. The app's request handler for the task's target URL must be able to handle HTTP requests with this http_method, otherwise the task attempt fails with error code 405 (Method Not Allowed). See [Writing a push task request handler](https://cloud.google.com/appengine/docs/java/taskqueue/push/creating-handlers#writing_a_push_task_request_handler) and the App Engine documentation for your runtime on [How Requests are Handled](https://cloud.google.com/appengine/docs/standard/python3/how-requests-are-handled). */ httpMethod: string; /** * The relative URI. The relative URI must begin with "/" and must be a valid HTTP relative URI. It can contain a path and query string arguments. If the relative URI is empty, then the root path "/" will be used. No spaces are allowed, and the maximum length allowed is 2083 characters. */ relativeUri: string; } /** * App Engine Routing. Defines routing characteristics specific to App Engine - service, version, and instance. For more information about services, versions, and instances see [An Overview of App Engine](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine), [Microservices Architecture on Google App Engine](https://cloud.google.com/appengine/docs/python/microservices-on-app-engine), [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed), and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed). Using AppEngineRouting requires [`appengine.applications.get`](https://cloud.google.com/appengine/docs/admin-api/access-control) Google IAM permission for the project and the following scope: `https://www.googleapis.com/auth/cloud-platform` */ interface AppEngineRoutingResponse { /** * The host that the task is sent to. The host is constructed from the domain name of the app associated with the queue's project ID (for example .appspot.com), and the service, version, and instance. Tasks which were created using the App Engine SDK might have a custom domain name. For more information, see [How Requests are Routed](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed). */ host: string; /** * App instance. By default, the task is sent to an instance which is available when the task is attempted. Requests can only be sent to a specific instance if [manual scaling is used in App Engine Standard](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine?hl=en_US#scaling_types_and_instance_classes). App Engine Flex does not support instances. For more information, see [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed) and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed). */ instance: string; /** * App service. By default, the task is sent to the service which is the default service when the task is attempted. For some queues or tasks which were created using the App Engine Task Queue API, host is not parsable into service, version, and instance. For example, some tasks which were created using the App Engine SDK use a custom domain name; custom domains are not parsed by Cloud Tasks. If host is not parsable, then service, version, and instance are the empty string. */ service: string; /** * App version. By default, the task is sent to the version which is the default version when the task is attempted. For some queues or tasks which were created using the App Engine Task Queue API, host is not parsable into service, version, and instance. For example, some tasks which were created using the App Engine SDK use a custom domain name; custom domains are not parsed by Cloud Tasks. If host is not parsable, then service, version, and instance are the empty string. */ version: string; } /** * The status of a task attempt. */ interface AttemptResponse { /** * The time that this attempt was dispatched. `dispatch_time` will be truncated to the nearest microsecond. */ dispatchTime: string; /** * The response from the worker for this attempt. If `response_time` is unset, then the task has not been attempted or is currently running and the `response_status` field is meaningless. */ responseStatus: outputs.cloudtasks.v2.StatusResponse; /** * The time that this attempt response was received. `response_time` will be truncated to the nearest microsecond. */ responseTime: string; /** * The time that this attempt was scheduled. `schedule_time` will be truncated to the nearest microsecond. */ scheduleTime: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudtasks.v2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Wraps the Header object. */ interface HeaderOverrideResponse { /** * header embodying a key and a value. */ header: outputs.cloudtasks.v2.HeaderResponse; } /** * Defines a header message. A header can have a key and a value. */ interface HeaderResponse { /** * The Key of the header. */ key: string; /** * The Value of the header. */ value: string; } /** * HTTP request. The task will be pushed to the worker as an HTTP request. If the worker or the redirected worker acknowledges the task by returning a successful HTTP response code ([`200` - `299`]), the task will be removed from the queue. If any other HTTP response code is returned or no response is received, the task will be retried according to the following: * User-specified throttling: retry configuration, rate limits, and the queue's state. * System throttling: To prevent the worker from overloading, Cloud Tasks may temporarily reduce the queue's effective rate. User-specified settings will not be changed. System throttling happens because: * Cloud Tasks backs off on all errors. Normally the backoff specified in rate limits will be used. But if the worker returns `429` (Too Many Requests), `503` (Service Unavailable), or the rate of errors is high, Cloud Tasks will use a higher backoff rate. The retry specified in the `Retry-After` HTTP response header is considered. * To prevent traffic spikes and to smooth sudden increases in traffic, dispatches ramp up slowly when the queue is newly created or idle and if large numbers of tasks suddenly become available to dispatch (due to spikes in create task rates, the queue being unpaused, or many tasks that are scheduled at the same time). */ interface HttpRequestResponse { /** * HTTP request body. A request body is allowed only if the HTTP method is POST, PUT, or PATCH. It is an error to set body on a task with an incompatible HttpMethod. */ body: string; /** * HTTP request headers. This map contains the header field names and values. Headers can be set when the task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `"Google-Cloud-Tasks"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `"application/octet-stream"` or `"application/json"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. */ headers: { [key: string]: string; }; /** * The HTTP method to use for the request. The default is POST. */ httpMethod: string; /** * If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ oauthToken: outputs.cloudtasks.v2.OAuthTokenResponse; /** * If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ oidcToken: outputs.cloudtasks.v2.OidcTokenResponse; /** * The full url path that the request will be sent to. This string must begin with either "http://" or "https://". Some examples are: `http://acme.com` and `https://acme.com/sales:8080`. Cloud Tasks will encode some characters for safety and compatibility. The maximum allowed URL length is 2083 characters after encoding. The `Location` header response from a redirect response [`300` - `399`] may be followed. The redirect is not counted as a separate attempt. */ url: string; } /** * HTTP target. When specified as a Queue, all the tasks with [HttpRequest] will be overridden according to the target. */ interface HttpTargetResponse { /** * HTTP target headers. This map contains the header field names and values. Headers will be set when running the CreateTask and/or BufferTask. These headers represent a subset of the headers that will be configured for the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Several predefined headers, prefixed with "X-CloudTasks-", can be used to define properties of the task. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example,`Content-Type` can be set to `"application/octet-stream"` or `"application/json"`. The default value is set to "application/json"`. * User-Agent: This will be set to `"Google-Cloud-Tasks"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. Queue-level headers to override headers of all the tasks in the queue. */ headerOverrides: outputs.cloudtasks.v2.HeaderOverrideResponse[]; /** * The HTTP method to use for the request. When specified, it overrides HttpRequest for the task. Note that if the value is set to HttpMethod the HttpRequest of the task will be ignored at execution time. */ httpMethod: string; /** * If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as the `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ oauthToken: outputs.cloudtasks.v2.OAuthTokenResponse; /** * If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ oidcToken: outputs.cloudtasks.v2.OidcTokenResponse; /** * URI override. When specified, overrides the execution URI for all the tasks in the queue. */ uriOverride: outputs.cloudtasks.v2.UriOverrideResponse; } /** * Contains information needed for generating an [OAuth token](https://developers.google.com/identity/protocols/OAuth2). This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ interface OAuthTokenResponse { /** * OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used. */ scope: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OAuth token. The service account must be within the same project as the queue. The caller must have iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect). This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ interface OidcTokenResponse { /** * Audience to be used when generating OIDC token. If not specified, the URI specified in target will be used. */ audience: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OIDC token. The service account must be within the same project as the queue. The caller must have iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * PathOverride. Path message defines path override for HTTP targets. */ interface PathOverrideResponse { /** * The URI path (e.g., /users/1234). Default is an empty string. */ path: string; } /** * QueryOverride. Query message defines query override for HTTP targets. */ interface QueryOverrideResponse { /** * The query parameters (e.g., qparam1=123&qparam2=456). Default is an empty string. */ queryParams: string; } /** * Rate limits. This message determines the maximum rate that tasks can be dispatched by a queue, regardless of whether the dispatch is a first task attempt or a retry. Note: The debugging command, RunTask, will run a task even if the queue has reached its RateLimits. */ interface RateLimitsResponse { /** * The max burst size. Max burst size limits how fast tasks in queue are processed when many tasks are in the queue and the rate is high. This field allows the queue to have a high rate so processing starts shortly after a task is enqueued, but still limits resource usage when many tasks are enqueued in a short period of time. The [token bucket](https://wikipedia.org/wiki/Token_Bucket) algorithm is used to control the rate of task dispatches. Each queue has a token bucket that holds tokens, up to the maximum specified by `max_burst_size`. Each time a task is dispatched, a token is removed from the bucket. Tasks will be dispatched until the queue's bucket runs out of tokens. The bucket will be continuously refilled with new tokens based on max_dispatches_per_second. Cloud Tasks will pick the value of `max_burst_size` based on the value of max_dispatches_per_second. For queues that were created or updated using `queue.yaml/xml`, `max_burst_size` is equal to [bucket_size](https://cloud.google.com/appengine/docs/standard/python/config/queueref#bucket_size). Since `max_burst_size` is output only, if UpdateQueue is called on a queue created by `queue.yaml/xml`, `max_burst_size` will be reset based on the value of max_dispatches_per_second, regardless of whether max_dispatches_per_second is updated. */ maxBurstSize: number; /** * The maximum number of concurrent tasks that Cloud Tasks allows to be dispatched for this queue. After this threshold has been reached, Cloud Tasks stops dispatching tasks until the number of concurrent requests decreases. If unspecified when the queue is created, Cloud Tasks will pick the default. The maximum allowed value is 5,000. This field has the same meaning as [max_concurrent_requests in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#max_concurrent_requests). */ maxConcurrentDispatches: number; /** * The maximum rate at which tasks are dispatched from this queue. If unspecified when the queue is created, Cloud Tasks will pick the default. * The maximum allowed value is 500. This field has the same meaning as [rate in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#rate). */ maxDispatchesPerSecond: number; } /** * Retry config. These settings determine when a failed task attempt is retried. */ interface RetryConfigResponse { /** * Number of attempts per task. Cloud Tasks will attempt the task `max_attempts` times (that is, if the first attempt fails, then there will be `max_attempts - 1` retries). Must be >= -1. If unspecified when the queue is created, Cloud Tasks will pick the default. -1 indicates unlimited attempts. This field has the same meaning as [task_retry_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxAttempts: number; /** * A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for "seconds"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `max_backoff` will be truncated to the nearest second. This field has the same meaning as [max_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxBackoff: string; /** * The time between retries will double `max_doublings` times. A task's retry interval starts at min_backoff, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff up to max_attempts times. For example, if min_backoff is 10s, max_backoff is 300s, and `max_doublings` is 3, then the a task will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the task will retry at intervals of max_backoff until the task has been attempted max_attempts times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... If unspecified when the queue is created, Cloud Tasks will pick the default. This field has the same meaning as [max_doublings in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxDoublings: number; /** * If positive, `max_retry_duration` specifies the time limit for retrying a failed task, measured from when the task was first attempted. Once `max_retry_duration` time has passed *and* the task has been attempted max_attempts times, no further attempts will be made and the task will be deleted. If zero, then the task age is unlimited. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for "seconds"). For the maximum possible value or the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `max_retry_duration` will be truncated to the nearest second. This field has the same meaning as [task_age_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxRetryDuration: string; /** * A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for "seconds"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `min_backoff` will be truncated to the nearest second. This field has the same meaning as [min_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ minBackoff: string; } /** * Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). */ interface StackdriverLoggingConfigResponse { /** * Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged. */ samplingRatio: number; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * URI Override. When specified, all the HTTP tasks inside the queue will be partially or fully overridden depending on the configured values. */ interface UriOverrideResponse { /** * Host override. When specified, replaces the host part of the task URL. For example, if the task URL is "https://www.google.com," and host value is set to "example.net", the overridden URI will be changed to "https://example.net." Host value cannot be an empty string (INVALID_ARGUMENT). */ host: string; /** * URI path. When specified, replaces the existing path of the task URL. Setting the path value to an empty string clears the URI path segment. */ pathOverride: outputs.cloudtasks.v2.PathOverrideResponse; /** * Port override. When specified, replaces the port part of the task URI. For instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo. Note that the port value must be a positive integer. Setting the port to 0 (Zero) clears the URI port. */ port: string; /** * URI query. When specified, replaces the query part of the task URI. Setting the query value to an empty string clears the URI query segment. */ queryOverride: outputs.cloudtasks.v2.QueryOverrideResponse; /** * Scheme override. When specified, the task URI scheme is replaced by the provided value (HTTP or HTTPS). */ scheme: string; /** * URI Override Enforce Mode When specified, determines the Target UriOverride mode. If not specified, it defaults to ALWAYS. */ uriOverrideEnforceMode: string; } } namespace v2beta2 { /** * App Engine HTTP request. The message defines the HTTP request that is sent to an App Engine app when the task is dispatched. This proto can only be used for tasks in a queue which has app_engine_http_target set. Using AppEngineHttpRequest requires [`appengine.applications.get`](https://cloud.google.com/appengine/docs/admin-api/access-control) Google IAM permission for the project and the following scope: `https://www.googleapis.com/auth/cloud-platform` The task will be delivered to the App Engine app which belongs to the same project as the queue. For more information, see [How Requests are Routed](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed) and how routing is affected by [dispatch files](https://cloud.google.com/appengine/docs/python/config/dispatchref). Traffic is encrypted during transport and never leaves Google datacenters. Because this traffic is carried over a communication mechanism internal to Google, you cannot explicitly set the protocol (for example, HTTP or HTTPS). The request to the handler, however, will appear to have used the HTTP protocol. The AppEngineRouting used to construct the URL that the task is delivered to can be set at the queue-level or task-level: * If set, app_engine_routing_override is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing. The `url` that the task will be sent to is: * `url =` host `+` relative_url Tasks can be dispatched to secure app handlers, unsecure app handlers, and URIs restricted with [`login: admin`](https://cloud.google.com/appengine/docs/standard/python/config/appref). Because tasks are not run as any user, they cannot be dispatched to URIs restricted with [`login: required`](https://cloud.google.com/appengine/docs/standard/python/config/appref) Task dispatches also do not follow redirects. The task attempt has succeeded if the app's request handler returns an HTTP response code in the range [`200` - `299`]. The task attempt has failed if the app's handler returns a non-2xx response code or Cloud Tasks does not receive response before the deadline. Failed tasks will be retried according to the retry configuration. `503` (Service Unavailable) is considered an App Engine system error instead of an application error and will cause Cloud Tasks' traffic congestion control to temporarily throttle the queue's dispatches. Unlike other types of task targets, a `429` (Too Many Requests) response from an app handler does not cause traffic congestion control to throttle the queue. */ interface AppEngineHttpRequestResponse { /** * Task-level setting for App Engine routing. If set, app_engine_routing_override is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing. */ appEngineRouting: outputs.cloudtasks.v2beta2.AppEngineRoutingResponse; /** * HTTP request headers. This map contains the header field names and values. Headers can be set when the task is created. Repeated headers are not supported but a header value can contain commas. Cloud Tasks sets some headers to default values: * `User-Agent`: By default, this header is `"AppEngine-Google; (+http://code.google.com/appengine)"`. This header can be modified, but Cloud Tasks will append `"AppEngine-Google; (+http://code.google.com/appengine)"` to the modified `User-Agent`. If the task has a payload, Cloud Tasks sets the following headers: * `Content-Type`: By default, the `Content-Type` header is set to `"application/octet-stream"`. The default can be overridden by explicitly setting `Content-Type` to a particular media type when the task is created. For example, `Content-Type` can be set to `"application/json"`. * `Content-Length`: This is computed by Cloud Tasks. This value is output only. It cannot be changed. The headers below cannot be set or overridden: * `Host` * `X-Google-*` * `X-AppEngine-*` In addition, Cloud Tasks sets some headers when the task is dispatched, such as headers containing information about the task; see [request headers](https://cloud.google.com/appengine/docs/python/taskqueue/push/creating-handlers#reading_request_headers). These headers are set only when the task is dispatched, so they are not visible when the task is returned in a Cloud Tasks response. Although there is no specific limit for the maximum number of headers or the size, there is a limit on the maximum size of the Task. For more information, see the CreateTask documentation. */ headers: { [key: string]: string; }; /** * The HTTP method to use for the request. The default is POST. The app's request handler for the task's target URL must be able to handle HTTP requests with this http_method, otherwise the task attempt fails with error code 405 (Method Not Allowed). See [Writing a push task request handler](https://cloud.google.com/appengine/docs/java/taskqueue/push/creating-handlers#writing_a_push_task_request_handler) and the App Engine documentation for your runtime on [How Requests are Handled](https://cloud.google.com/appengine/docs/standard/python3/how-requests-are-handled). */ httpMethod: string; /** * Payload. The payload will be sent as the HTTP message body. A message body, and thus a payload, is allowed only if the HTTP method is POST or PUT. It is an error to set a data payload on a task with an incompatible HttpMethod. */ payload: string; /** * The relative URL. The relative URL must begin with "/" and must be a valid HTTP relative URL. It can contain a path and query string arguments. If the relative URL is empty, then the root path "/" will be used. No spaces are allowed, and the maximum length allowed is 2083 characters. */ relativeUrl: string; } /** * App Engine HTTP target. The task will be delivered to the App Engine application hostname specified by its AppEngineHttpTarget and AppEngineHttpRequest. The documentation for AppEngineHttpRequest explains how the task's host URL is constructed. Using AppEngineHttpTarget requires [`appengine.applications.get`](https://cloud.google.com/appengine/docs/admin-api/access-control) Google IAM permission for the project and the following scope: `https://www.googleapis.com/auth/cloud-platform` */ interface AppEngineHttpTargetResponse { /** * Overrides for the task-level app_engine_routing. If set, `app_engine_routing_override` is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing. */ appEngineRoutingOverride: outputs.cloudtasks.v2beta2.AppEngineRoutingResponse; } /** * App Engine Routing. Defines routing characteristics specific to App Engine - service, version, and instance. For more information about services, versions, and instances see [An Overview of App Engine](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine), [Microservices Architecture on Google App Engine](https://cloud.google.com/appengine/docs/python/microservices-on-app-engine), [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed), and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed). */ interface AppEngineRoutingResponse { /** * The host that the task is sent to. For more information, see [How Requests are Routed](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed). The host is constructed as: * `host = [application_domain_name]` `| [service] + '.' + [application_domain_name]` `| [version] + '.' + [application_domain_name]` `| [version_dot_service]+ '.' + [application_domain_name]` `| [instance] + '.' + [application_domain_name]` `| [instance_dot_service] + '.' + [application_domain_name]` `| [instance_dot_version] + '.' + [application_domain_name]` `| [instance_dot_version_dot_service] + '.' + [application_domain_name]` * `application_domain_name` = The domain name of the app, for example .appspot.com, which is associated with the queue's project ID. Some tasks which were created using the App Engine SDK use a custom domain name. * `service =` service * `version =` version * `version_dot_service =` version `+ '.' +` service * `instance =` instance * `instance_dot_service =` instance `+ '.' +` service * `instance_dot_version =` instance `+ '.' +` version * `instance_dot_version_dot_service =` instance `+ '.' +` version `+ '.' +` service If service is empty, then the task will be sent to the service which is the default service when the task is attempted. If version is empty, then the task will be sent to the version which is the default version when the task is attempted. If instance is empty, then the task will be sent to an instance which is available when the task is attempted. If service, version, or instance is invalid, then the task will be sent to the default version of the default service when the task is attempted. */ host: string; /** * App instance. By default, the task is sent to an instance which is available when the task is attempted. Requests can only be sent to a specific instance if [manual scaling is used in App Engine Standard](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine?hl=en_US#scaling_types_and_instance_classes). App Engine Flex does not support instances. For more information, see [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed) and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed). */ instance: string; /** * App service. By default, the task is sent to the service which is the default service when the task is attempted. For some queues or tasks which were created using the App Engine Task Queue API, host is not parsable into service, version, and instance. For example, some tasks which were created using the App Engine SDK use a custom domain name; custom domains are not parsed by Cloud Tasks. If host is not parsable, then service, version, and instance are the empty string. */ service: string; /** * App version. By default, the task is sent to the version which is the default version when the task is attempted. For some queues or tasks which were created using the App Engine Task Queue API, host is not parsable into service, version, and instance. For example, some tasks which were created using the App Engine SDK use a custom domain name; custom domains are not parsed by Cloud Tasks. If host is not parsable, then service, version, and instance are the empty string. */ version: string; } /** * The status of a task attempt. */ interface AttemptStatusResponse { /** * The time that this attempt was dispatched. `dispatch_time` will be truncated to the nearest microsecond. */ dispatchTime: string; /** * The response from the target for this attempt. If the task has not been attempted or the task is currently running then the response status is unset. */ responseStatus: outputs.cloudtasks.v2beta2.StatusResponse; /** * The time that this attempt response was received. `response_time` will be truncated to the nearest microsecond. */ responseTime: string; /** * The time that this attempt was scheduled. `schedule_time` will be truncated to the nearest microsecond. */ scheduleTime: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudtasks.v2beta2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Wraps the Header object. */ interface HeaderOverrideResponse { /** * header embodying a key and a value. */ header: outputs.cloudtasks.v2beta2.HeaderResponse; } /** * Defines a header message. A header can have a key and a value. */ interface HeaderResponse { /** * The key of the header. */ key: string; /** * The value of the header. */ value: string; } /** * HTTP request. The task will be pushed to the worker as an HTTP request. An HTTP request embodies a url, an http method, headers, body and authorization for the http task. */ interface HttpRequestResponse { /** * HTTP request body. A request body is allowed only if the HTTP method is POST, PUT, or PATCH. It is an error to set body on a task with an incompatible HttpMethod. */ body: string; /** * HTTP request headers. This map contains the header field names and values. Headers can be set when running the task is created or task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Any header that is prefixed with "X-CloudTasks-" will be treated as service header. Service headers define properties of the task and are predefined in CloudTask. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `"Google-Cloud-Tasks"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `"application/octet-stream"` or `"application/json"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. */ headers: { [key: string]: string; }; /** * The HTTP method to use for the request. The default is POST. */ httpMethod: string; /** * If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ oauthToken: outputs.cloudtasks.v2beta2.OAuthTokenResponse; /** * If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ oidcToken: outputs.cloudtasks.v2beta2.OidcTokenResponse; /** * The full url path that the request will be sent to. This string must begin with either "http://" or "https://". Some examples are: `http://acme.com` and `https://acme.com/sales:8080`. Cloud Tasks will encode some characters for safety and compatibility. The maximum allowed URL length is 2083 characters after encoding. The `Location` header response from a redirect response [`300` - `399`] may be followed. The redirect is not counted as a separate attempt. */ url: string; } /** * HTTP target. When specified as a Queue, all the tasks with [HttpRequest] will be overridden according to the target. */ interface HttpTargetResponse { /** * HTTP target headers. This map contains the header field names and values. Headers will be set when running the task is created and/or task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Any header that is prefixed with "X-CloudTasks-" will be treated as service header. Service headers define properties of the task and are predefined in CloudTask. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `"Google-CloudTasks"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `"application/octet-stream"` or `"application/json"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. Queue-level headers to override headers of all the tasks in the queue. */ headerOverrides: outputs.cloudtasks.v2beta2.HeaderOverrideResponse[]; /** * The HTTP method to use for the request. When specified, it overrides HttpRequest for the task. Note that if the value is set to HttpMethod the HttpRequest of the task will be ignored at execution time. */ httpMethod: string; /** * If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ oauthToken: outputs.cloudtasks.v2beta2.OAuthTokenResponse; /** * If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ oidcToken: outputs.cloudtasks.v2beta2.OidcTokenResponse; /** * Uri override. When specified, overrides the execution Uri for all the tasks in the queue. */ uriOverride: outputs.cloudtasks.v2beta2.UriOverrideResponse; } /** * Contains information needed for generating an [OAuth token](https://developers.google.com/identity/protocols/OAuth2). This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ interface OAuthTokenResponse { /** * OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used. */ scope: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OAuth token. The service account must be within the same project as the queue. The caller must have iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect). This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ interface OidcTokenResponse { /** * Audience to be used when generating OIDC token. If not specified, the URI specified in target will be used. */ audience: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OIDC token. The service account must be within the same project as the queue. The caller must have iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * PathOverride. Path message defines path override for HTTP targets. */ interface PathOverrideResponse { /** * The URI path (e.g., /users/1234). Default is an empty string. */ path: string; } /** * The pull message contains data that can be used by the caller of LeaseTasks to process the task. This proto can only be used for tasks in a queue which has pull_target set. */ interface PullMessageResponse { /** * A data payload consumed by the worker to execute the task. */ payload: string; /** * The task's tag. Tags allow similar tasks to be processed in a batch. If you label tasks with a tag, your worker can lease tasks with the same tag using filter. For example, if you want to aggregate the events associated with a specific user once a day, you could tag tasks with the user ID. The task's tag can only be set when the task is created. The tag must be less than 500 characters. SDK compatibility: Although the SDK allows tags to be either string or [bytes](https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/taskqueue/TaskOptions.html#tag-byte:A-), only UTF-8 encoded tags can be used in Cloud Tasks. If a tag isn't UTF-8 encoded, the tag will be empty when the task is returned by Cloud Tasks. */ tag: string; } /** * Pull target. */ interface PullTargetResponse { } /** * QueryOverride. Query message defines query override for HTTP targets. */ interface QueryOverrideResponse { /** * The query parameters (e.g., qparam1=123&qparam2=456). Default is an empty string. */ queryParams: string; } /** * Statistics for a queue. */ interface QueueStatsResponse { /** * The number of requests that the queue has dispatched but has not received a reply for yet. */ concurrentDispatchesCount: string; /** * The current maximum number of tasks per second executed by the queue. The maximum value of this variable is controlled by the RateLimits of the Queue. However, this value could be less to avoid overloading the endpoints tasks in the queue are targeting. */ effectiveExecutionRate: number; /** * The number of tasks that the queue has dispatched and received a reply for during the last minute. This variable counts both successful and non-successful executions. */ executedLastMinuteCount: string; /** * An estimation of the nearest time in the future where a task in the queue is scheduled to be executed. */ oldestEstimatedArrivalTime: string; /** * An estimation of the number of tasks in the queue, that is, the tasks in the queue that haven't been executed, the tasks in the queue which the queue has dispatched but has not yet received a reply for, and the failed tasks that the queue is retrying. */ tasksCount: string; } /** * Rate limits. This message determines the maximum rate that tasks can be dispatched by a queue, regardless of whether the dispatch is a first task attempt or a retry. Note: The debugging command, RunTask, will run a task even if the queue has reached its RateLimits. */ interface RateLimitsResponse { /** * The max burst size. Max burst size limits how fast tasks in queue are processed when many tasks are in the queue and the rate is high. This field allows the queue to have a high rate so processing starts shortly after a task is enqueued, but still limits resource usage when many tasks are enqueued in a short period of time. The [token bucket](https://wikipedia.org/wiki/Token_Bucket) algorithm is used to control the rate of task dispatches. Each queue has a token bucket that holds tokens, up to the maximum specified by `max_burst_size`. Each time a task is dispatched, a token is removed from the bucket. Tasks will be dispatched until the queue's bucket runs out of tokens. The bucket will be continuously refilled with new tokens based on max_dispatches_per_second. The default value of `max_burst_size` is picked by Cloud Tasks based on the value of max_dispatches_per_second. The maximum value of `max_burst_size` is 500. For App Engine queues that were created or updated using `queue.yaml/xml`, `max_burst_size` is equal to [bucket_size](https://cloud.google.com/appengine/docs/standard/python/config/queueref#bucket_size). If UpdateQueue is called on a queue without explicitly setting a value for `max_burst_size`, `max_burst_size` value will get updated if UpdateQueue is updating max_dispatches_per_second. */ maxBurstSize: number; /** * The maximum number of concurrent tasks that Cloud Tasks allows to be dispatched for this queue. After this threshold has been reached, Cloud Tasks stops dispatching tasks until the number of concurrent requests decreases. If unspecified when the queue is created, Cloud Tasks will pick the default. The maximum allowed value is 5,000. This field is output only for pull queues and always -1, which indicates no limit. No other queue types can have `max_concurrent_tasks` set to -1. This field has the same meaning as [max_concurrent_requests in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#max_concurrent_requests). */ maxConcurrentTasks: number; /** * The maximum rate at which tasks are dispatched from this queue. If unspecified when the queue is created, Cloud Tasks will pick the default. * For App Engine queues, the maximum allowed value is 500. * This field is output only for pull queues. In addition to the `max_tasks_dispatched_per_second` limit, a maximum of 10 QPS of LeaseTasks requests are allowed per pull queue. This field has the same meaning as [rate in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#rate). */ maxTasksDispatchedPerSecond: number; } /** * Retry config. These settings determine how a failed task attempt is retried. */ interface RetryConfigResponse { /** * The maximum number of attempts for a task. Cloud Tasks will attempt the task `max_attempts` times (that is, if the first attempt fails, then there will be `max_attempts - 1` retries). Must be > 0. */ maxAttempts: number; /** * A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. This field is output only for pull queues. `max_backoff` will be truncated to the nearest second. This field has the same meaning as [max_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxBackoff: string; /** * The time between retries will double `max_doublings` times. A task's retry interval starts at min_backoff, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff up to max_attempts times. For example, if min_backoff is 10s, max_backoff is 300s, and `max_doublings` is 3, then the a task will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the task will retry at intervals of max_backoff until the task has been attempted max_attempts times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... If unspecified when the queue is created, Cloud Tasks will pick the default. This field is output only for pull queues. This field has the same meaning as [max_doublings in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxDoublings: number; /** * If positive, `max_retry_duration` specifies the time limit for retrying a failed task, measured from when the task was first attempted. Once `max_retry_duration` time has passed *and* the task has been attempted max_attempts times, no further attempts will be made and the task will be deleted. If zero, then the task age is unlimited. If unspecified when the queue is created, Cloud Tasks will pick the default. This field is output only for pull queues. `max_retry_duration` will be truncated to the nearest second. This field has the same meaning as [task_age_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxRetryDuration: string; /** * A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. This field is output only for pull queues. `min_backoff` will be truncated to the nearest second. This field has the same meaning as [min_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ minBackoff: string; /** * If true, then the number of attempts is unlimited. */ unlimitedAttempts: boolean; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Status of the task. */ interface TaskStatusResponse { /** * The number of attempts dispatched. This count includes attempts which have been dispatched but haven't received a response. */ attemptDispatchCount: number; /** * The number of attempts which have received a response. This field is not calculated for pull tasks. */ attemptResponseCount: number; /** * The status of the task's first attempt. Only dispatch_time will be set. The other AttemptStatus information is not retained by Cloud Tasks. This field is not calculated for pull tasks. */ firstAttemptStatus: outputs.cloudtasks.v2beta2.AttemptStatusResponse; /** * The status of the task's last attempt. This field is not calculated for pull tasks. */ lastAttemptStatus: outputs.cloudtasks.v2beta2.AttemptStatusResponse; } /** * Uri Override. When specified, all the HTTP tasks inside the queue will be partially or fully overridden depending on the configured values. */ interface UriOverrideResponse { /** * Host override. When specified, replaces the host part of the task URL. For example, if the task URL is "https://www.google.com," and host value is set to "example.net", the overridden URI will be changed to "https://example.net." Host value cannot be an empty string (INVALID_ARGUMENT). */ host: string; /** * URI path. When specified, replaces the existing path of the task URL. Setting the path value to an empty string clears the URI path segment. */ pathOverride: outputs.cloudtasks.v2beta2.PathOverrideResponse; /** * Port override. When specified, replaces the port part of the task URI. For instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo. Note that the port value must be a positive integer. Setting the port to 0 (Zero) clears the URI port. */ port: string; /** * URI Query. When specified, replaces the query part of the task URI. Setting the query value to an empty string clears the URI query segment. */ queryOverride: outputs.cloudtasks.v2beta2.QueryOverrideResponse; /** * Scheme override. When specified, the task URI scheme is replaced by the provided value (HTTP or HTTPS). */ scheme: string; /** * URI Override Enforce Mode When specified, determines the Target UriOverride mode. If not specified, it defaults to ALWAYS. */ uriOverrideEnforceMode: string; } } namespace v2beta3 { /** * App Engine HTTP queue. The task will be delivered to the App Engine application hostname specified by its AppEngineHttpQueue and AppEngineHttpRequest. The documentation for AppEngineHttpRequest explains how the task's host URL is constructed. Using AppEngineHttpQueue requires [`appengine.applications.get`](https://cloud.google.com/appengine/docs/admin-api/access-control) Google IAM permission for the project and the following scope: `https://www.googleapis.com/auth/cloud-platform` */ interface AppEngineHttpQueueResponse { /** * Overrides for the task-level app_engine_routing. If set, `app_engine_routing_override` is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing. */ appEngineRoutingOverride: outputs.cloudtasks.v2beta3.AppEngineRoutingResponse; } /** * App Engine HTTP request. The message defines the HTTP request that is sent to an App Engine app when the task is dispatched. Using AppEngineHttpRequest requires [`appengine.applications.get`](https://cloud.google.com/appengine/docs/admin-api/access-control) Google IAM permission for the project and the following scope: `https://www.googleapis.com/auth/cloud-platform` The task will be delivered to the App Engine app which belongs to the same project as the queue. For more information, see [How Requests are Routed](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed) and how routing is affected by [dispatch files](https://cloud.google.com/appengine/docs/python/config/dispatchref). Traffic is encrypted during transport and never leaves Google datacenters. Because this traffic is carried over a communication mechanism internal to Google, you cannot explicitly set the protocol (for example, HTTP or HTTPS). The request to the handler, however, will appear to have used the HTTP protocol. The AppEngineRouting used to construct the URL that the task is delivered to can be set at the queue-level or task-level: * If set, app_engine_routing_override is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing. The `url` that the task will be sent to is: * `url =` host `+` relative_uri Tasks can be dispatched to secure app handlers, unsecure app handlers, and URIs restricted with [`login: admin`](https://cloud.google.com/appengine/docs/standard/python/config/appref). Because tasks are not run as any user, they cannot be dispatched to URIs restricted with [`login: required`](https://cloud.google.com/appengine/docs/standard/python/config/appref) Task dispatches also do not follow redirects. The task attempt has succeeded if the app's request handler returns an HTTP response code in the range [`200` - `299`]. The task attempt has failed if the app's handler returns a non-2xx response code or Cloud Tasks does not receive response before the deadline. Failed tasks will be retried according to the retry configuration. `503` (Service Unavailable) is considered an App Engine system error instead of an application error and will cause Cloud Tasks' traffic congestion control to temporarily throttle the queue's dispatches. Unlike other types of task targets, a `429` (Too Many Requests) response from an app handler does not cause traffic congestion control to throttle the queue. */ interface AppEngineHttpRequestResponse { /** * Task-level setting for App Engine routing. If set, app_engine_routing_override is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing. */ appEngineRouting: outputs.cloudtasks.v2beta3.AppEngineRoutingResponse; /** * HTTP request body. A request body is allowed only if the HTTP method is POST or PUT. It is an error to set a body on a task with an incompatible HttpMethod. */ body: string; /** * HTTP request headers. This map contains the header field names and values. Headers can be set when the task is created. Repeated headers are not supported but a header value can contain commas. Cloud Tasks sets some headers to default values: * `User-Agent`: By default, this header is `"AppEngine-Google; (+http://code.google.com/appengine)"`. This header can be modified, but Cloud Tasks will append `"AppEngine-Google; (+http://code.google.com/appengine)"` to the modified `User-Agent`. If the task has a body, Cloud Tasks sets the following headers: * `Content-Type`: By default, the `Content-Type` header is set to `"application/octet-stream"`. The default can be overridden by explicitly setting `Content-Type` to a particular media type when the task is created. For example, `Content-Type` can be set to `"application/json"`. * `Content-Length`: This is computed by Cloud Tasks. This value is output only. It cannot be changed. The headers below cannot be set or overridden: * `Host` * `X-Google-*` * `X-AppEngine-*` In addition, Cloud Tasks sets some headers when the task is dispatched, such as headers containing information about the task; see [request headers](https://cloud.google.com/tasks/docs/creating-appengine-handlers#reading_request_headers). These headers are set only when the task is dispatched, so they are not visible when the task is returned in a Cloud Tasks response. Although there is no specific limit for the maximum number of headers or the size, there is a limit on the maximum size of the Task. For more information, see the CreateTask documentation. */ headers: { [key: string]: string; }; /** * The HTTP method to use for the request. The default is POST. The app's request handler for the task's target URL must be able to handle HTTP requests with this http_method, otherwise the task attempt fails with error code 405 (Method Not Allowed). See [Writing a push task request handler](https://cloud.google.com/appengine/docs/java/taskqueue/push/creating-handlers#writing_a_push_task_request_handler) and the App Engine documentation for your runtime on [How Requests are Handled](https://cloud.google.com/appengine/docs/standard/python3/how-requests-are-handled). */ httpMethod: string; /** * The relative URI. The relative URI must begin with "/" and must be a valid HTTP relative URI. It can contain a path and query string arguments. If the relative URI is empty, then the root path "/" will be used. No spaces are allowed, and the maximum length allowed is 2083 characters. */ relativeUri: string; } /** * App Engine Routing. Defines routing characteristics specific to App Engine - service, version, and instance. For more information about services, versions, and instances see [An Overview of App Engine](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine), [Microservices Architecture on Google App Engine](https://cloud.google.com/appengine/docs/python/microservices-on-app-engine), [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed), and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed). */ interface AppEngineRoutingResponse { /** * The host that the task is sent to. The host is constructed from the domain name of the app associated with the queue's project ID (for example .appspot.com), and the service, version, and instance. Tasks which were created using the App Engine SDK might have a custom domain name. For more information, see [How Requests are Routed](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed). */ host: string; /** * App instance. By default, the task is sent to an instance which is available when the task is attempted. Requests can only be sent to a specific instance if [manual scaling is used in App Engine Standard](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine?hl=en_US#scaling_types_and_instance_classes). App Engine Flex does not support instances. For more information, see [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed) and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed). */ instance: string; /** * App service. By default, the task is sent to the service which is the default service when the task is attempted. For some queues or tasks which were created using the App Engine Task Queue API, host is not parsable into service, version, and instance. For example, some tasks which were created using the App Engine SDK use a custom domain name; custom domains are not parsed by Cloud Tasks. If host is not parsable, then service, version, and instance are the empty string. */ service: string; /** * App version. By default, the task is sent to the version which is the default version when the task is attempted. For some queues or tasks which were created using the App Engine Task Queue API, host is not parsable into service, version, and instance. For example, some tasks which were created using the App Engine SDK use a custom domain name; custom domains are not parsed by Cloud Tasks. If host is not parsable, then service, version, and instance are the empty string. */ version: string; } /** * The status of a task attempt. */ interface AttemptResponse { /** * The time that this attempt was dispatched. `dispatch_time` will be truncated to the nearest microsecond. */ dispatchTime: string; /** * The response from the worker for this attempt. If `response_time` is unset, then the task has not been attempted or is currently running and the `response_status` field is meaningless. */ responseStatus: outputs.cloudtasks.v2beta3.StatusResponse; /** * The time that this attempt response was received. `response_time` will be truncated to the nearest microsecond. */ responseTime: string; /** * The time that this attempt was scheduled. `schedule_time` will be truncated to the nearest microsecond. */ scheduleTime: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.cloudtasks.v2beta3.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Wraps the Header object. */ interface HeaderOverrideResponse { /** * header embodying a key and a value. */ header: outputs.cloudtasks.v2beta3.HeaderResponse; } /** * Defines a header message. A header can have a key and a value. */ interface HeaderResponse { /** * The Key of the header. */ key: string; /** * The Value of the header. */ value: string; } /** * HTTP request. The task will be pushed to the worker as an HTTP request. If the worker or the redirected worker acknowledges the task by returning a successful HTTP response code ([`200` - `299`]), the task will be removed from the queue. If any other HTTP response code is returned or no response is received, the task will be retried according to the following: * User-specified throttling: retry configuration, rate limits, and the queue's state. * System throttling: To prevent the worker from overloading, Cloud Tasks may temporarily reduce the queue's effective rate. User-specified settings will not be changed. System throttling happens because: * Cloud Tasks backs off on all errors. Normally the backoff specified in rate limits will be used. But if the worker returns `429` (Too Many Requests), `503` (Service Unavailable), or the rate of errors is high, Cloud Tasks will use a higher backoff rate. The retry specified in the `Retry-After` HTTP response header is considered. * To prevent traffic spikes and to smooth sudden increases in traffic, dispatches ramp up slowly when the queue is newly created or idle and if large numbers of tasks suddenly become available to dispatch (due to spikes in create task rates, the queue being unpaused, or many tasks that are scheduled at the same time). */ interface HttpRequestResponse { /** * HTTP request body. A request body is allowed only if the HTTP method is POST, PUT, or PATCH. It is an error to set body on a task with an incompatible HttpMethod. */ body: string; /** * HTTP request headers. This map contains the header field names and values. Headers can be set when the task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Any header that is prefixed with "X-CloudTasks-" will be treated as service header. Service headers define properties of the task and are predefined in CloudTask. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `"Google-Cloud-Tasks"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `"application/octet-stream"` or `"application/json"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. */ headers: { [key: string]: string; }; /** * The HTTP method to use for the request. The default is POST. */ httpMethod: string; /** * If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ oauthToken: outputs.cloudtasks.v2beta3.OAuthTokenResponse; /** * If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ oidcToken: outputs.cloudtasks.v2beta3.OidcTokenResponse; /** * The full url path that the request will be sent to. This string must begin with either "http://" or "https://". Some examples are: `http://acme.com` and `https://acme.com/sales:8080`. Cloud Tasks will encode some characters for safety and compatibility. The maximum allowed URL length is 2083 characters after encoding. The `Location` header response from a redirect response [`300` - `399`] may be followed. The redirect is not counted as a separate attempt. */ url: string; } /** * HTTP target. When specified as a Queue, all the tasks with [HttpRequest] will be overridden according to the target. */ interface HttpTargetResponse { /** * HTTP target headers. This map contains the header field names and values. Headers will be set when running the CreateTask and/or BufferTask. These headers represent a subset of the headers that will be configured for the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Several predefined headers, prefixed with "X-CloudTasks-", can be used to define properties of the task. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example,`Content-Type` can be set to `"application/octet-stream"` or `"application/json"`. The default value is set to `"application/json"`. * User-Agent: This will be set to `"Google-Cloud-Tasks"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. Queue-level headers to override headers of all the tasks in the queue. */ headerOverrides: outputs.cloudtasks.v2beta3.HeaderOverrideResponse[]; /** * The HTTP method to use for the request. When specified, it overrides HttpRequest for the task. Note that if the value is set to HttpMethod the HttpRequest of the task will be ignored at execution time. */ httpMethod: string; /** * If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as the `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ oauthToken: outputs.cloudtasks.v2beta3.OAuthTokenResponse; /** * If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ oidcToken: outputs.cloudtasks.v2beta3.OidcTokenResponse; /** * URI override. When specified, overrides the execution URI for all the tasks in the queue. */ uriOverride: outputs.cloudtasks.v2beta3.UriOverrideResponse; } /** * Contains information needed for generating an [OAuth token](https://developers.google.com/identity/protocols/OAuth2). This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. */ interface OAuthTokenResponse { /** * OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used. */ scope: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OAuth token. The service account must be within the same project as the queue. The caller must have iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect). This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. */ interface OidcTokenResponse { /** * Audience to be used when generating OIDC token. If not specified, the URI specified in target will be used. */ audience: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OIDC token. The service account must be within the same project as the queue. The caller must have iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * PathOverride. Path message defines path override for HTTP targets. */ interface PathOverrideResponse { /** * The URI path (e.g., /users/1234). Default is an empty string. */ path: string; } /** * Pull Message. This proto can only be used for tasks in a queue which has PULL type. It currently exists for backwards compatibility with the App Engine Task Queue SDK. This message type maybe returned with methods list and get, when the response view is FULL. */ interface PullMessageResponse { /** * A data payload consumed by the worker to execute the task. */ payload: string; /** * The tasks's tag. The tag is less than 500 characters. SDK compatibility: Although the SDK allows tags to be either string or [bytes](https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/taskqueue/TaskOptions.html#tag-byte:A-), only UTF-8 encoded tags can be used in Cloud Tasks. If a tag isn't UTF-8 encoded, the tag will be empty when the task is returned by Cloud Tasks. */ tag: string; } /** * QueryOverride. Query message defines query override for HTTP targets. */ interface QueryOverrideResponse { /** * The query parameters (e.g., qparam1=123&qparam2=456). Default is an empty string. */ queryParams: string; } /** * Statistics for a queue. */ interface QueueStatsResponse { /** * The number of requests that the queue has dispatched but has not received a reply for yet. */ concurrentDispatchesCount: string; /** * The current maximum number of tasks per second executed by the queue. The maximum value of this variable is controlled by the RateLimits of the Queue. However, this value could be less to avoid overloading the endpoints tasks in the queue are targeting. */ effectiveExecutionRate: number; /** * The number of tasks that the queue has dispatched and received a reply for during the last minute. This variable counts both successful and non-successful executions. */ executedLastMinuteCount: string; /** * An estimation of the nearest time in the future where a task in the queue is scheduled to be executed. */ oldestEstimatedArrivalTime: string; /** * An estimation of the number of tasks in the queue, that is, the tasks in the queue that haven't been executed, the tasks in the queue which the queue has dispatched but has not yet received a reply for, and the failed tasks that the queue is retrying. */ tasksCount: string; } /** * Rate limits. This message determines the maximum rate that tasks can be dispatched by a queue, regardless of whether the dispatch is a first task attempt or a retry. Note: The debugging command, RunTask, will run a task even if the queue has reached its RateLimits. */ interface RateLimitsResponse { /** * The max burst size. Max burst size limits how fast tasks in queue are processed when many tasks are in the queue and the rate is high. This field allows the queue to have a high rate so processing starts shortly after a task is enqueued, but still limits resource usage when many tasks are enqueued in a short period of time. The [token bucket](https://wikipedia.org/wiki/Token_Bucket) algorithm is used to control the rate of task dispatches. Each queue has a token bucket that holds tokens, up to the maximum specified by `max_burst_size`. Each time a task is dispatched, a token is removed from the bucket. Tasks will be dispatched until the queue's bucket runs out of tokens. The bucket will be continuously refilled with new tokens based on max_dispatches_per_second. The default value of `max_burst_size` is picked by Cloud Tasks based on the value of max_dispatches_per_second. The maximum value of `max_burst_size` is 500. For App Engine queues that were created or updated using `queue.yaml/xml`, `max_burst_size` is equal to [bucket_size](https://cloud.google.com/appengine/docs/standard/python/config/queueref#bucket_size). If UpdateQueue is called on a queue without explicitly setting a value for `max_burst_size`, `max_burst_size` value will get updated if UpdateQueue is updating max_dispatches_per_second. */ maxBurstSize: number; /** * The maximum number of concurrent tasks that Cloud Tasks allows to be dispatched for this queue. After this threshold has been reached, Cloud Tasks stops dispatching tasks until the number of concurrent requests decreases. If unspecified when the queue is created, Cloud Tasks will pick the default. The maximum allowed value is 5,000. This field has the same meaning as [max_concurrent_requests in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#max_concurrent_requests). */ maxConcurrentDispatches: number; /** * The maximum rate at which tasks are dispatched from this queue. If unspecified when the queue is created, Cloud Tasks will pick the default. * For App Engine queues, the maximum allowed value is 500. This field has the same meaning as [rate in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#rate). */ maxDispatchesPerSecond: number; } /** * Retry config. These settings determine when a failed task attempt is retried. */ interface RetryConfigResponse { /** * Number of attempts per task. Cloud Tasks will attempt the task `max_attempts` times (that is, if the first attempt fails, then there will be `max_attempts - 1` retries). Must be >= -1. If unspecified when the queue is created, Cloud Tasks will pick the default. -1 indicates unlimited attempts. This field has the same meaning as [task_retry_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxAttempts: number; /** * A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for "seconds"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `max_backoff` will be truncated to the nearest second. This field has the same meaning as [max_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxBackoff: string; /** * The time between retries will double `max_doublings` times. A task's retry interval starts at min_backoff, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff up to max_attempts times. For example, if min_backoff is 10s, max_backoff is 300s, and `max_doublings` is 3, then the a task will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the task will retry at intervals of max_backoff until the task has been attempted max_attempts times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... If unspecified when the queue is created, Cloud Tasks will pick the default. This field has the same meaning as [max_doublings in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxDoublings: number; /** * If positive, `max_retry_duration` specifies the time limit for retrying a failed task, measured from when the task was first attempted. Once `max_retry_duration` time has passed *and* the task has been attempted max_attempts times, no further attempts will be made and the task will be deleted. If zero, then the task age is unlimited. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for "seconds"). For the maximum possible value or the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `max_retry_duration` will be truncated to the nearest second. This field has the same meaning as [task_age_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ maxRetryDuration: string; /** * A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for "seconds"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `min_backoff` will be truncated to the nearest second. This field has the same meaning as [min_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters). */ minBackoff: string; } /** * Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). */ interface StackdriverLoggingConfigResponse { /** * Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged. */ samplingRatio: number; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * URI Override. When specified, all the HTTP tasks inside the queue will be partially or fully overridden depending on the configured values. */ interface UriOverrideResponse { /** * Host override. When specified, replaces the host part of the task URL. For example, if the task URL is "https://www.google.com," and host value is set to "example.net", the overridden URI will be changed to "https://example.net." Host value cannot be an empty string (INVALID_ARGUMENT). */ host: string; /** * URI path. When specified, replaces the existing path of the task URL. Setting the path value to an empty string clears the URI path segment. */ pathOverride: outputs.cloudtasks.v2beta3.PathOverrideResponse; /** * Port override. When specified, replaces the port part of the task URI. For instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo. Note that the port value must be a positive integer. Setting the port to 0 (Zero) clears the URI port. */ port: string; /** * URI Query. When specified, replaces the query part of the task URI. Setting the query value to an empty string clears the URI query segment. */ queryOverride: outputs.cloudtasks.v2beta3.QueryOverrideResponse; /** * Scheme override. When specified, the task URI scheme is replaced by the provided value (HTTP or HTTPS). */ scheme: string; /** * URI Override Enforce Mode When specified, determines the Target UriOverride mode. If not specified, it defaults to ALWAYS. */ uriOverrideEnforceMode: string; } } } export declare namespace cloudtrace { namespace v2beta1 { /** * OutputConfig contains a destination for writing trace data. */ interface OutputConfigResponse { /** * The destination for writing trace data. Supported formats include: "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]" */ destination: string; } } } export declare namespace composer { namespace v1 { /** * Allowed IP range with user-provided description. */ interface AllowedIpRangeResponse { /** * Optional. User-provided description. It must contain at most 300 characters. */ description: string; /** * IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32` or `2001:0db8:0000:0042:0000:8a2e:0370:7334`. IP range prefixes should be properly truncated. For example, `1.2.3.4/24` should be truncated to `1.2.3.0/24`. Similarly, for IPv6, `2001:db8::1/32` should be truncated to `2001:db8::/32`. */ value: string; } /** * CIDR block with an optional name. */ interface CidrBlockResponse { /** * CIDR block that must be specified in CIDR notation. */ cidrBlock: string; /** * User-defined name that identifies the CIDR block. */ displayName: string; } /** * The configuration of Cloud SQL instance that is used by the Apache Airflow software. */ interface DatabaseConfigResponse { /** * Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ machineType: string; /** * Optional. The Compute Engine zone where the Airflow database is created. If zone is provided, it must be in the region selected for the environment. If zone is not provided, a zone is automatically selected. The zone can only be set during environment creation. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.*. */ zone: string; } /** * The encryption options for the Cloud Composer environment and its dependencies.Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ interface EncryptionConfigResponse { /** * Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated. If not specified, Google-managed key will be used. */ kmsKeyName: string; } /** * Configuration information for an environment. */ interface EnvironmentConfigResponse { /** * The 'bring your own identity' variant of the URI of the Apache Airflow Web UI hosted within this environment, to be accessed with external identities using workforce identity federation (see [Access environments with workforce identity federation](/composer/docs/composer-2/access-environments-with-workforce-identity-federation)). */ airflowByoidUri: string; /** * The URI of the Apache Airflow Web UI hosted within this environment (see [Airflow web interface](/composer/docs/how-to/accessing/airflow-web-interface)). */ airflowUri: string; /** * The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using "/"-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with the given prefix. */ dagGcsPrefix: string; /** * Optional. The configuration settings for Cloud SQL instance used internally by Apache Airflow software. */ databaseConfig: outputs.composer.v1.DatabaseConfigResponse; /** * Optional. The encryption options for the Cloud Composer environment and its dependencies. Cannot be updated. */ encryptionConfig: outputs.composer.v1.EncryptionConfigResponse; /** * Optional. The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ environmentSize: string; /** * The Kubernetes Engine cluster used to run this environment. */ gkeCluster: string; /** * Optional. The maintenance window is the period when Cloud Composer components may undergo maintenance. It is defined so that maintenance is not executed during peak hours or critical time periods. The system will not be under maintenance for every occurrence of this window, but when maintenance is planned, it will be scheduled during the window. The maintenance window period must encompass at least 12 hours per week. This may be split into multiple chunks, each with a size of at least 4 hours. If this value is omitted, the default value for maintenance window will be applied. The default value is Saturday and Sunday 00-06 GMT. */ maintenanceWindow: outputs.composer.v1.MaintenanceWindowResponse; /** * Optional. The configuration options for GKE cluster master authorized networks. By default master authorized networks feature is: - in case of private environment: enabled with no external networks allowlisted. - in case of public environment: disabled. */ masterAuthorizedNetworksConfig: outputs.composer.v1.MasterAuthorizedNetworksConfigResponse; /** * The configuration used for the Kubernetes Engine cluster. */ nodeConfig: outputs.composer.v1.NodeConfigResponse; /** * The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ nodeCount: number; /** * The configuration used for the Private IP Cloud Composer environment. */ privateEnvironmentConfig: outputs.composer.v1.PrivateEnvironmentConfigResponse; /** * Optional. The Recovery settings configuration of an environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ recoveryConfig: outputs.composer.v1.RecoveryConfigResponse; /** * Optional. Resilience mode of the Cloud Composer Environment. This field is supported for Cloud Composer environments in versions composer-2.2.0-airflow-*.*.* and newer. */ resilienceMode: string; /** * The configuration settings for software inside the environment. */ softwareConfig: outputs.composer.v1.SoftwareConfigResponse; /** * Optional. The configuration settings for the Airflow web server App Engine instance. */ webServerConfig: outputs.composer.v1.WebServerConfigResponse; /** * Optional. The network-level access control policy for the Airflow web server. If unspecified, no network-level access restrictions will be applied. */ webServerNetworkAccessControl: outputs.composer.v1.WebServerNetworkAccessControlResponse; /** * Optional. The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. The GKE cluster runs Airflow scheduler, web server and workers workloads. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ workloadsConfig: outputs.composer.v1.WorkloadsConfigResponse; } /** * Configuration for controlling how IPs are allocated in the GKE cluster running the Apache Airflow software. */ interface IPAllocationPolicyResponse { /** * Optional. The IP address range used to allocate IP addresses to pods in the GKE cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. */ clusterIpv4CidrBlock: string; /** * Optional. The name of the GKE cluster's secondary range used to allocate IP addresses to pods. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. */ clusterSecondaryRangeName: string; /** * Optional. The IP address range of the services IP addresses in this GKE cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. */ servicesIpv4CidrBlock: string; /** * Optional. The name of the services' secondary range used to allocate IP addresses to the GKE cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. */ servicesSecondaryRangeName: string; /** * Optional. Whether or not to enable Alias IPs in the GKE cluster. If `true`, a VPC-native cluster is created. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use VPC-native GKE clusters. */ useIpAliases: boolean; } /** * The configuration settings for Cloud Composer maintenance window. The following example: ``` { "startTime":"2019-08-01T01:00:00Z" "endTime":"2019-08-01T07:00:00Z" "recurrence":"FREQ=WEEKLY;BYDAY=TU,WE" } ``` would define a maintenance window between 01 and 07 hours UTC during each Tuesday and Wednesday. */ interface MaintenanceWindowResponse { /** * Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to `start_time`. */ endTime: string; /** * Maintenance window recurrence. Format is a subset of [RFC-5545](https://tools.ietf.org/html/rfc5545) `RRULE`. The only allowed values for `FREQ` field are `FREQ=DAILY` and `FREQ=WEEKLY;BYDAY=...` Example values: `FREQ=WEEKLY;BYDAY=TU,WE`, `FREQ=DAILY`. */ recurrence: string; /** * Start time of the first recurrence of the maintenance window. */ startTime: string; } /** * Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. */ interface MasterAuthorizedNetworksConfigResponse { /** * Up to 50 external networks that could access Kubernetes master through HTTPS. */ cidrBlocks: outputs.composer.v1.CidrBlockResponse[]; /** * Whether or not master authorized networks feature is enabled. */ enabled: boolean; } /** * Configuration options for networking connections in the Composer 2 environment. */ interface NetworkingConfigResponse { /** * Optional. Indicates the user requested specifc connection type between Tenant and Customer projects. You cannot set networking connection type in public IP environment. */ connectionType: string; } /** * The configuration information for the Kubernetes Engine nodes running the Apache Airflow software. */ interface NodeConfigResponse { /** * Optional. The disk size in GB used for node VMs. Minimum size is 30GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ diskSizeGb: number; /** * Optional. Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent */ enableIpMasqAgent: boolean; /** * Optional. The configuration for controlling how IPs are allocated in the GKE cluster. */ ipAllocationPolicy: outputs.composer.v1.IPAllocationPolicyResponse; /** * Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which to deploy the VMs used to run the Apache Airflow software, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/zones/{zoneId}". This `location` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.machineType` are specified, `nodeConfig.machineType` must belong to this `location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If only one field (`location` or `nodeConfig.machineType`) is specified, the location information from the specified field will be propagated to the unspecified field. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ location: string; /** * Optional. The Compute Engine [machine type](/compute/docs/machine-types) used for cluster instances, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}". The `machineType` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.location` are specified, this `machineType` must belong to the `nodeConfig.location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If exactly one of this field and `nodeConfig.location` is specified, the location information from the specified field will be propagated to the unspecified field. The `machineTypeId` must not be a [shared-core machine type](/compute/docs/machine-types#sharedcore). If this field is unspecified, the `machineTypeId` defaults to "n1-standard-1". This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ machineType: string; /** * Optional. The Compute Engine network to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/global/networks/{networkId}". If unspecified, the "default" network ID in the environment's project is used. If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets) is provided, `nodeConfig.subnetwork` must also be provided. For [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see `nodeConfig.subnetwork`. */ network: string; /** * Optional. The set of Google API scopes to be made available on all node VMs. If `oauth_scopes` is empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ oauthScopes: string[]; /** * Optional. The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. */ serviceAccount: string; /** * Optional. The Compute Engine subnetwork to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}" If a subnetwork is provided, `nodeConfig.network` must also be provided, and the subnetwork must belong to the enclosing environment's project and location. */ subnetwork: string; /** * Optional. The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Cannot be updated. */ tags: string[]; } /** * Configuration options for the private GKE cluster in a Cloud Composer environment. */ interface PrivateClusterConfigResponse { /** * Optional. If `true`, access to the public endpoint of the GKE cluster is denied. */ enablePrivateEndpoint: boolean; /** * Optional. The CIDR block from which IPv4 range for GKE master will be reserved. If left blank, the default value of '172.16.0.0/23' is used. */ masterIpv4CidrBlock: string; /** * The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the GKE cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. */ masterIpv4ReservedRange: string; } /** * The configuration information for configuring a Private IP Cloud Composer environment. */ interface PrivateEnvironmentConfigResponse { /** * Optional. When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. */ cloudComposerConnectionSubnetwork: string; /** * Optional. The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ cloudComposerNetworkIpv4CidrBlock: string; /** * The IP range reserved for the tenant project's Cloud Composer network. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ cloudComposerNetworkIpv4ReservedRange: string; /** * Optional. The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from `web_server_ipv4_cidr_block`. */ cloudSqlIpv4CidrBlock: string; /** * Optional. If `true`, a Private IP Cloud Composer environment is created. If this field is set to true, `IPAllocationPolicy.use_ip_aliases` must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ enablePrivateEnvironment: boolean; /** * Optional. When enabled, IPs from public (non-RFC1918) ranges can be used for `IPAllocationPolicy.cluster_ipv4_cidr_block` and `IPAllocationPolicy.service_ipv4_cidr_block`. */ enablePrivatelyUsedPublicIps: boolean; /** * Optional. Configuration for the network connections configuration in the environment. */ networkingConfig: outputs.composer.v1.NetworkingConfigResponse; /** * Optional. Configuration for the private GKE cluster for a Private IP Cloud Composer environment. */ privateClusterConfig: outputs.composer.v1.PrivateClusterConfigResponse; /** * Optional. The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from `private_cluster_config.master_ipv4_cidr_block` and `cloud_sql_ipv4_cidr_block`. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ webServerIpv4CidrBlock: string; /** * The IP range reserved for the tenant project's App Engine VMs. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ webServerIpv4ReservedRange: string; } /** * The Recovery settings of an environment. */ interface RecoveryConfigResponse { /** * Optional. The configuration for scheduled snapshot creation mechanism. */ scheduledSnapshotsConfig: outputs.composer.v1.ScheduledSnapshotsConfigResponse; } /** * The configuration for scheduled snapshot creation mechanism. */ interface ScheduledSnapshotsConfigResponse { /** * Optional. Whether scheduled snapshots creation is enabled. */ enabled: boolean; /** * Optional. The cron expression representing the time when snapshots creation mechanism runs. This field is subject to additional validation around frequency of execution. */ snapshotCreationSchedule: string; /** * Optional. The Cloud Storage location for storing automatically created snapshots. */ snapshotLocation: string; /** * Optional. Time zone that sets the context to interpret snapshot_creation_schedule. */ timeZone: string; } /** * Configuration for resources used by Airflow schedulers. */ interface SchedulerResourceResponse { /** * Optional. The number of schedulers. */ count: number; /** * Optional. CPU request and limit for a single Airflow scheduler replica. */ cpu: number; /** * Optional. Memory (GB) request and limit for a single Airflow scheduler replica. */ memoryGb: number; /** * Optional. Storage (GB) request and limit for a single Airflow scheduler replica. */ storageGb: number; } /** * Specifies the selection and configuration of software inside the environment. */ interface SoftwareConfigResponse { /** * Optional. Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and must not contain an equals sign ("=") or semicolon (";"). Section and property names must not contain a period ("."). Apache Airflow configuration property names must be written in [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are [blocked](/composer/docs/concepts/airflow-configurations), and cannot be overridden. */ airflowConfigOverrides: { [key: string]: string; }; /** * Optional. Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression `a-zA-Z_*`. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the following reserved names: * `AIRFLOW_HOME` * `C_FORCE_ROOT` * `CONTAINER_NAME` * `DAGS_FOLDER` * `GCP_PROJECT` * `GCS_BUCKET` * `GKE_CLUSTER_NAME` * `SQL_DATABASE` * `SQL_INSTANCE` * `SQL_PASSWORD` * `SQL_PROJECT` * `SQL_REGION` * `SQL_USER` */ envVariables: { [key: string]: string; }; /** * The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0-9]+(\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the image version is a full [semantic version](https://semver.org), or an alias in the form of major version number or `latest`. When an alias is provided, the server replaces it with the current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. When an alias is provided, the server replaces it with the latest Apache Airflow version that satisfies the alias and is supported in the given Cloud Composer version. In all cases, the resolved image version is stored in the same field. See also [version list](/composer/docs/concepts/versioning/composer-versions) and [versioning overview](/composer/docs/concepts/versioning/composer-versioning-overview). */ imageVersion: string; /** * Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as "numpy" and values are the lowercase extras and version specifier such as "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To specify a package without pinning it to a version specifier, use the empty string as the value. */ pypiPackages: { [key: string]: string; }; /** * Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be updated. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3. */ pythonVersion: string; /** * Optional. The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*. */ schedulerCount: number; } /** * The configuration for data storage in the environment. */ interface StorageConfigResponse { /** * Optional. The name of the Cloud Storage bucket used by the environment. No `gs://` prefix. */ bucket: string; } /** * Configuration for resources used by Airflow triggerers. */ interface TriggererResourceResponse { /** * Optional. The number of triggerers. */ count: number; /** * Optional. CPU request and limit for a single Airflow triggerer replica. */ cpu: number; /** * Optional. Memory (GB) request and limit for a single Airflow triggerer replica. */ memoryGb: number; } /** * The configuration settings for the Airflow web server App Engine instance. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.* */ interface WebServerConfigResponse { /** * Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values. */ machineType: string; } /** * Network-level access control policy for the Airflow web server. */ interface WebServerNetworkAccessControlResponse { /** * A collection of allowed IP ranges with descriptions. */ allowedIpRanges: outputs.composer.v1.AllowedIpRangeResponse[]; } /** * Configuration for resources used by Airflow web server. */ interface WebServerResourceResponse { /** * Optional. CPU request and limit for Airflow web server. */ cpu: number; /** * Optional. Memory (GB) request and limit for Airflow web server. */ memoryGb: number; /** * Optional. Storage (GB) request and limit for Airflow web server. */ storageGb: number; } /** * Configuration for resources used by Airflow workers. */ interface WorkerResourceResponse { /** * Optional. CPU request and limit for a single Airflow worker replica. */ cpu: number; /** * Optional. Maximum number of workers for autoscaling. */ maxCount: number; /** * Optional. Memory (GB) request and limit for a single Airflow worker replica. */ memoryGb: number; /** * Optional. Minimum number of workers for autoscaling. */ minCount: number; /** * Optional. Storage (GB) request and limit for a single Airflow worker replica. */ storageGb: number; } /** * The Kubernetes workloads configuration for GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ interface WorkloadsConfigResponse { /** * Optional. Resources used by Airflow schedulers. */ scheduler: outputs.composer.v1.SchedulerResourceResponse; /** * Optional. Resources used by Airflow triggerers. */ triggerer: outputs.composer.v1.TriggererResourceResponse; /** * Optional. Resources used by Airflow web server. */ webServer: outputs.composer.v1.WebServerResourceResponse; /** * Optional. Resources used by Airflow workers. */ worker: outputs.composer.v1.WorkerResourceResponse; } } namespace v1beta1 { /** * Allowed IP range with user-provided description. */ interface AllowedIpRangeResponse { /** * Optional. User-provided description. It must contain at most 300 characters. */ description: string; /** * IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32` or `2001:0db8:0000:0042:0000:8a2e:0370:7334`. IP range prefixes should be properly truncated. For example, `1.2.3.4/24` should be truncated to `1.2.3.0/24`. Similarly, for IPv6, `2001:db8::1/32` should be truncated to `2001:db8::/32`. */ value: string; } /** * CIDR block with an optional name. */ interface CidrBlockResponse { /** * CIDR block that must be specified in CIDR notation. */ cidrBlock: string; /** * User-defined name that identifies the CIDR block. */ displayName: string; } /** * Configuration for Cloud Data Lineage integration. */ interface CloudDataLineageIntegrationResponse { /** * Optional. Whether or not Cloud Data Lineage integration is enabled. */ enabled: boolean; } /** * The configuration of Cloud SQL instance that is used by the Apache Airflow software. */ interface DatabaseConfigResponse { /** * Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ machineType: string; /** * Optional. The Compute Engine zone where the Airflow database is created. If zone is provided, it must be in the region selected for the environment. If zone is not provided, a zone is automatically selected. The zone can only be set during environment creation. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.*. */ zone: string; } /** * The encryption options for the Cloud Composer environment and its dependencies. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ interface EncryptionConfigResponse { /** * Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated. If not specified, Google-managed key will be used. */ kmsKeyName: string; } /** * Configuration information for an environment. */ interface EnvironmentConfigResponse { /** * The 'bring your own identity' variant of the URI of the Apache Airflow Web UI hosted within this environment, to be accessed with external identities using workforce identity federation (see [Access environments with workforce identity federation](/composer/docs/composer-2/access-environments-with-workforce-identity-federation)). */ airflowByoidUri: string; /** * The URI of the Apache Airflow Web UI hosted within this environment (see [Airflow web interface](/composer/docs/how-to/accessing/airflow-web-interface)). */ airflowUri: string; /** * The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using "/"-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with the given prefix. */ dagGcsPrefix: string; /** * Optional. The configuration settings for Cloud SQL instance used internally by Apache Airflow software. */ databaseConfig: outputs.composer.v1beta1.DatabaseConfigResponse; /** * Optional. The encryption options for the Cloud Composer environment and its dependencies. Cannot be updated. */ encryptionConfig: outputs.composer.v1beta1.EncryptionConfigResponse; /** * Optional. The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ environmentSize: string; /** * The Kubernetes Engine cluster used to run this environment. */ gkeCluster: string; /** * Optional. The maintenance window is the period when Cloud Composer components may undergo maintenance. It is defined so that maintenance is not executed during peak hours or critical time periods. The system will not be under maintenance for every occurrence of this window, but when maintenance is planned, it will be scheduled during the window. The maintenance window period must encompass at least 12 hours per week. This may be split into multiple chunks, each with a size of at least 4 hours. If this value is omitted, Cloud Composer components may be subject to maintenance at any time. */ maintenanceWindow: outputs.composer.v1beta1.MaintenanceWindowResponse; /** * Optional. The configuration options for GKE cluster master authorized networks. By default master authorized networks feature is: - in case of private environment: enabled with no external networks allowlisted. - in case of public environment: disabled. */ masterAuthorizedNetworksConfig: outputs.composer.v1beta1.MasterAuthorizedNetworksConfigResponse; /** * The configuration used for the Kubernetes Engine cluster. */ nodeConfig: outputs.composer.v1beta1.NodeConfigResponse; /** * The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ nodeCount: number; /** * The configuration used for the Private IP Cloud Composer environment. */ privateEnvironmentConfig: outputs.composer.v1beta1.PrivateEnvironmentConfigResponse; /** * Optional. The Recovery settings configuration of an environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ recoveryConfig: outputs.composer.v1beta1.RecoveryConfigResponse; /** * Optional. Resilience mode of the Cloud Composer Environment. This field is supported for Cloud Composer environments in versions composer-2.2.0-airflow-*.*.* and newer. */ resilienceMode: string; /** * The configuration settings for software inside the environment. */ softwareConfig: outputs.composer.v1beta1.SoftwareConfigResponse; /** * Optional. The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ webServerConfig: outputs.composer.v1beta1.WebServerConfigResponse; /** * Optional. The network-level access control policy for the Airflow web server. If unspecified, no network-level access restrictions will be applied. */ webServerNetworkAccessControl: outputs.composer.v1beta1.WebServerNetworkAccessControlResponse; /** * Optional. The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. The GKE cluster runs Airflow scheduler, web server and workers workloads. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ workloadsConfig: outputs.composer.v1beta1.WorkloadsConfigResponse; } /** * Configuration for controlling how IPs are allocated in the GKE cluster. */ interface IPAllocationPolicyResponse { /** * Optional. The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. Specify `cluster_secondary_range_name` or `cluster_ipv4_cidr_block` but not both. */ clusterIpv4CidrBlock: string; /** * Optional. The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either `cluster_secondary_range_name` or `cluster_ipv4_cidr_block` but not both. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. */ clusterSecondaryRangeName: string; /** * Optional. The IP address range of the services IP addresses in this cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. Specify `services_secondary_range_name` or `services_ipv4_cidr_block` but not both. */ servicesIpv4CidrBlock: string; /** * Optional. The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either `services_secondary_range_name` or `services_ipv4_cidr_block` but not both. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. */ servicesSecondaryRangeName: string; /** * Optional. Whether or not to enable Alias IPs in the GKE cluster. If `true`, a VPC-native cluster is created. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use VPC-native GKE clusters. */ useIpAliases: boolean; } /** * The configuration settings for Cloud Composer maintenance window. The following example: ``` { "startTime":"2019-08-01T01:00:00Z" "endTime":"2019-08-01T07:00:00Z" "recurrence":"FREQ=WEEKLY;BYDAY=TU,WE" } ``` would define a maintenance window between 01 and 07 hours UTC during each Tuesday and Wednesday. */ interface MaintenanceWindowResponse { /** * Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end_time must be in the future, relative to `start_time`. */ endTime: string; /** * Maintenance window recurrence. Format is a subset of [RFC-5545](https://tools.ietf.org/html/rfc5545) `RRULE`. The only allowed values for `FREQ` field are `FREQ=DAILY` and `FREQ=WEEKLY;BYDAY=...` Example values: `FREQ=WEEKLY;BYDAY=TU,WE`, `FREQ=DAILY`. */ recurrence: string; /** * Start time of the first recurrence of the maintenance window. */ startTime: string; } /** * Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. */ interface MasterAuthorizedNetworksConfigResponse { /** * Up to 50 external networks that could access Kubernetes master through HTTPS. */ cidrBlocks: outputs.composer.v1beta1.CidrBlockResponse[]; /** * Whether or not master authorized networks feature is enabled. */ enabled: boolean; } /** * Configuration options for networking connections in the Composer 2 environment. */ interface NetworkingConfigResponse { /** * Optional. Indicates the user requested specifc connection type between Tenant and Customer projects. You cannot set networking connection type in public IP environment. */ connectionType: string; } /** * The configuration information for the Kubernetes Engine nodes running the Apache Airflow software. */ interface NodeConfigResponse { /** * Optional. The disk size in GB used for node VMs. Minimum size is 30GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ diskSizeGb: number; /** * Optional. Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent */ enableIpMasqAgent: boolean; /** * Optional. The IPAllocationPolicy fields for the GKE cluster. */ ipAllocationPolicy: outputs.composer.v1beta1.IPAllocationPolicyResponse; /** * Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which to deploy the VMs used to run the Apache Airflow software, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/zones/{zoneId}". This `location` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.machineType` are specified, `nodeConfig.machineType` must belong to this `location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If only one field (`location` or `nodeConfig.machineType`) is specified, the location information from the specified field will be propagated to the unspecified field. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ location: string; /** * Optional. The Compute Engine [machine type](/compute/docs/machine-types) used for cluster instances, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}". The `machineType` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.location` are specified, this `machineType` must belong to the `nodeConfig.location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If exactly one of this field and `nodeConfig.location` is specified, the location information from the specified field will be propagated to the unspecified field. The `machineTypeId` must not be a [shared-core machine type](/compute/docs/machine-types#sharedcore). If this field is unspecified, the `machineTypeId` defaults to "n1-standard-1". This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ machineType: string; /** * Optional. The maximum number of pods per node in the Cloud Composer GKE cluster. The value must be between 8 and 110 and it can be set only if the environment is VPC-native. The default value is 32. Values of this field will be propagated both to the `default-pool` node pool of the newly created GKE cluster, and to the default "Maximum Pods per Node" value which is used for newly created node pools if their value is not explicitly set during node pool creation. For more information, see [Optimizing IP address allocation] (https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr). Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ maxPodsPerNode: number; /** * Optional. The Compute Engine network to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/global/networks/{networkId}". If unspecified, the default network in the environment's project is used. If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets) is provided, `nodeConfig.subnetwork` must also be provided. For [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see `nodeConfig.subnetwork`. */ network: string; /** * Optional. The set of Google API scopes to be made available on all node VMs. If `oauth_scopes` is empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ oauthScopes: string[]; /** * Optional. The Google Cloud Platform Service Account to be used by the workloads. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. */ serviceAccount: string; /** * Optional. The Compute Engine subnetwork to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: "projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}" If a subnetwork is provided, `nodeConfig.network` must also be provided, and the subnetwork must belong to the enclosing environment's project and location. */ subnetwork: string; /** * Optional. The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Cannot be updated. */ tags: string[]; } /** * Configuration options for the private GKE cluster in a Cloud Composer environment. */ interface PrivateClusterConfigResponse { /** * Optional. If `true`, access to the public endpoint of the GKE cluster is denied. */ enablePrivateEndpoint: boolean; /** * Optional. The CIDR block from which IPv4 range for GKE master will be reserved. If left blank, the default value of '172.16.0.0/23' is used. */ masterIpv4CidrBlock: string; /** * The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. */ masterIpv4ReservedRange: string; } /** * The configuration information for configuring a Private IP Cloud Composer environment. */ interface PrivateEnvironmentConfigResponse { /** * Optional. When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. */ cloudComposerConnectionSubnetwork: string; /** * Optional. The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ cloudComposerNetworkIpv4CidrBlock: string; /** * The IP range reserved for the tenant project's Cloud Composer network. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ cloudComposerNetworkIpv4ReservedRange: string; /** * Optional. The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block */ cloudSqlIpv4CidrBlock: string; /** * Optional. If `true`, a Private IP Cloud Composer environment is created. If this field is set to true, `IPAllocationPolicy.use_ip_aliases` must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ enablePrivateEnvironment: boolean; /** * Optional. When enabled, IPs from public (non-RFC1918) ranges can be used for `IPAllocationPolicy.cluster_ipv4_cidr_block` and `IPAllocationPolicy.service_ipv4_cidr_block`. */ enablePrivatelyUsedPublicIps: boolean; /** * Optional. Configuration for the network connections configuration in the environment. */ networkingConfig: outputs.composer.v1beta1.NetworkingConfigResponse; /** * Optional. Configuration for the private GKE cluster for a Private IP Cloud Composer environment. */ privateClusterConfig: outputs.composer.v1beta1.PrivateClusterConfigResponse; /** * Optional. The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ webServerIpv4CidrBlock: string; /** * The IP range reserved for the tenant project's App Engine VMs. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ webServerIpv4ReservedRange: string; } /** * The Recovery settings of an environment. */ interface RecoveryConfigResponse { /** * Optional. The configuration for scheduled snapshot creation mechanism. */ scheduledSnapshotsConfig: outputs.composer.v1beta1.ScheduledSnapshotsConfigResponse; } /** * The configuration for scheduled snapshot creation mechanism. */ interface ScheduledSnapshotsConfigResponse { /** * Optional. Whether scheduled snapshots creation is enabled. */ enabled: boolean; /** * Optional. The cron expression representing the time when snapshots creation mechanism runs. This field is subject to additional validation around frequency of execution. */ snapshotCreationSchedule: string; /** * Optional. The Cloud Storage location for storing automatically created snapshots. */ snapshotLocation: string; /** * Optional. Time zone that sets the context to interpret snapshot_creation_schedule. */ timeZone: string; } /** * Configuration for resources used by Airflow schedulers. */ interface SchedulerResourceResponse { /** * Optional. The number of schedulers. */ count: number; /** * Optional. CPU request and limit for a single Airflow scheduler replica. */ cpu: number; /** * Optional. Memory (GB) request and limit for a single Airflow scheduler replica. */ memoryGb: number; /** * Optional. Storage (GB) request and limit for a single Airflow scheduler replica. */ storageGb: number; } /** * Specifies the selection and configuration of software inside the environment. */ interface SoftwareConfigResponse { /** * Optional. Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and must not contain an equals sign ("=") or semicolon (";"). Section and property names must not contain a period ("."). Apache Airflow configuration property names must be written in [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are [blocked](/composer/docs/concepts/airflow-configurations), and cannot be overridden. */ airflowConfigOverrides: { [key: string]: string; }; /** * Optional. The configuration for Cloud Data Lineage integration. */ cloudDataLineageIntegration: outputs.composer.v1beta1.CloudDataLineageIntegrationResponse; /** * Optional. Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression `a-zA-Z_*`. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the following reserved names: * `AIRFLOW_HOME` * `C_FORCE_ROOT` * `CONTAINER_NAME` * `DAGS_FOLDER` * `GCP_PROJECT` * `GCS_BUCKET` * `GKE_CLUSTER_NAME` * `SQL_DATABASE` * `SQL_INSTANCE` * `SQL_PASSWORD` * `SQL_PROJECT` * `SQL_REGION` * `SQL_USER` */ envVariables: { [key: string]: string; }; /** * The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0-9]+(\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the image version is a full [semantic version](https://semver.org), or an alias in the form of major version number or `latest`. When an alias is provided, the server replaces it with the current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. When an alias is provided, the server replaces it with the latest Apache Airflow version that satisfies the alias and is supported in the given Cloud Composer version. In all cases, the resolved image version is stored in the same field. See also [version list](/composer/docs/concepts/versioning/composer-versions) and [versioning overview](/composer/docs/concepts/versioning/composer-versioning-overview). */ imageVersion: string; /** * Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as "numpy" and values are the lowercase extras and version specifier such as "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To specify a package without pinning it to a version specifier, use the empty string as the value. */ pypiPackages: { [key: string]: string; }; /** * Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be updated. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3. */ pythonVersion: string; /** * Optional. The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*. */ schedulerCount: number; } /** * The configuration for data storage in the environment. */ interface StorageConfigResponse { /** * Optional. The name of the Cloud Storage bucket used by the environment. No `gs://` prefix. */ bucket: string; } /** * Configuration for resources used by Airflow triggerers. */ interface TriggererResourceResponse { /** * Optional. The number of triggerers. */ count: number; /** * Optional. CPU request and limit for a single Airflow triggerer replica. */ cpu: number; /** * Optional. Memory (GB) request and limit for a single Airflow triggerer replica. */ memoryGb: number; } /** * The configuration settings for the Airflow web server App Engine instance. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. */ interface WebServerConfigResponse { /** * Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values. */ machineType: string; } /** * Network-level access control policy for the Airflow web server. */ interface WebServerNetworkAccessControlResponse { /** * A collection of allowed IP ranges with descriptions. */ allowedIpRanges: outputs.composer.v1beta1.AllowedIpRangeResponse[]; } /** * Configuration for resources used by Airflow web server. */ interface WebServerResourceResponse { /** * Optional. CPU request and limit for Airflow web server. */ cpu: number; /** * Optional. Memory (GB) request and limit for Airflow web server. */ memoryGb: number; /** * Optional. Storage (GB) request and limit for Airflow web server. */ storageGb: number; } /** * Configuration for resources used by Airflow workers. */ interface WorkerResourceResponse { /** * Optional. CPU request and limit for a single Airflow worker replica. */ cpu: number; /** * Optional. Maximum number of workers for autoscaling. */ maxCount: number; /** * Optional. Memory (GB) request and limit for a single Airflow worker replica. */ memoryGb: number; /** * Optional. Minimum number of workers for autoscaling. */ minCount: number; /** * Optional. Storage (GB) request and limit for a single Airflow worker replica. */ storageGb: number; } /** * The Kubernetes workloads configuration for GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. */ interface WorkloadsConfigResponse { /** * Optional. Resources used by Airflow schedulers. */ scheduler: outputs.composer.v1beta1.SchedulerResourceResponse; /** * Optional. Resources used by Airflow triggerers. */ triggerer: outputs.composer.v1beta1.TriggererResourceResponse; /** * Optional. Resources used by Airflow web server. */ webServer: outputs.composer.v1beta1.WebServerResourceResponse; /** * Optional. Resources used by Airflow workers. */ worker: outputs.composer.v1beta1.WorkerResourceResponse; } } } export declare namespace compute { namespace alpha { /** * Contains the configurations necessary to generate a signature for access to private storage buckets that support Signature Version 4 for authentication. The service name for generating the authentication header will always default to 's3'. */ interface AWSV4SignatureResponse { /** * The access key used for s3 bucket authentication. Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request. @InputOnly */ accessKey: string; /** * The identifier of an access key used for s3 bucket authentication. */ accessKeyId: string; /** * The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. */ accessKeyVersion: string; /** * The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin. For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. */ originRegion: string; } /** * A specification of the type and number of accelerator cards attached to the instance. */ interface AcceleratorConfigResponse { /** * The number of the guest accelerator cards exposed to this instance. */ acceleratorCount: number; /** * Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types. */ acceleratorType: string; } /** * An access configuration attached to an instance's network interface. Only one access config per instance is supported. */ interface AccessConfigResponse { /** * Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork. */ externalIpv6: string; /** * Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range. */ externalIpv6PrefixLength: number; /** * Type of the resource. Always compute#accessConfig for access configs. */ kind: string; /** * The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. In ipv6AccessConfigs, the recommend name is External IPv6. */ name: string; /** * Applies to accessConfigs (IPv4) only. An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance. */ natIP: string; /** * This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP. */ networkTier: string; /** * The public DNS domain name for the instance. */ publicDnsName: string; /** * The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range. */ publicPtrDomainName: string; /** * The resource URL for the security policy associated with this access config. */ securityPolicy: string; /** * Specifies whether a public DNS 'A' record should be created for the external IP address of this access configuration. */ setPublicDns: boolean; /** * Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated. */ setPublicPtr: boolean; /** * The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6. */ type: string; } /** * Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). */ interface AdvancedMachineFeaturesResponse { /** * Whether to enable nested virtualization or not (default is false). */ enableNestedVirtualization: boolean; /** * Whether to enable UEFI networking for instance creation. */ enableUefiNetworking: boolean; /** * The number of vNUMA nodes. */ numaNodeCount: number; /** * Type of Performance Monitoring Unit requested on instance. */ performanceMonitoringUnit: string; /** * The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. */ threadsPerCore: number; /** * The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance's nominal CPU count and the underlying platform's SMT width. */ visibleCoreCount: number; } /** * An alias IP range attached to an instance's network interface. */ interface AliasIpRangeResponse { /** * The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24). */ ipCidrRange: string; /** * The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used. */ subnetworkRangeName: string; } interface AllocationAggregateReservationReservedResourceInfoAcceleratorResponse { /** * Number of accelerators of specified type. */ acceleratorCount: number; /** * Full or partial URL to accelerator type. e.g. "projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l" */ acceleratorType: string; } interface AllocationAggregateReservationReservedResourceInfoResponse { /** * Properties of accelerator resources in this reservation. */ accelerator: outputs.compute.alpha.AllocationAggregateReservationReservedResourceInfoAcceleratorResponse; } /** * This reservation type is specified by total resource amounts (e.g. total count of CPUs) and can account for multiple instance SKUs. In other words, one can create instances of varying shapes against this reservation. */ interface AllocationAggregateReservationResponse { /** * [Output only] List of resources currently in use. */ inUseResources: outputs.compute.alpha.AllocationAggregateReservationReservedResourceInfoResponse[]; /** * List of reserved resources (CPUs, memory, accelerators). */ reservedResources: outputs.compute.alpha.AllocationAggregateReservationReservedResourceInfoResponse[]; /** * The VM family that all instances scheduled against this reservation must belong to. */ vmFamily: string; /** * The workload type of the instances that will target this reservation. */ workloadType: string; } /** * [Output Only] Contains output only fields. */ interface AllocationResourceStatusResponse { /** * Allocation Properties of this reservation. */ specificSkuAllocation: outputs.compute.alpha.AllocationResourceStatusSpecificSKUAllocationResponse; } /** * Contains Properties set for the reservation. */ interface AllocationResourceStatusSpecificSKUAllocationResponse { /** * ID of the instance template used to populate reservation properties. */ sourceInstanceTemplateId: string; } interface AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse { /** * Specifies the size of the disk in base-2 GB. */ diskSizeGb: string; /** * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. */ interface: string; } /** * Properties of the SKU instances being reserved. Next ID: 9 */ interface AllocationSpecificSKUAllocationReservedInstancePropertiesResponse { /** * Specifies accelerator type and count. */ guestAccelerators: outputs.compute.alpha.AcceleratorConfigResponse[]; /** * Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd. */ localSsds: outputs.compute.alpha.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse[]; /** * An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API. */ locationHint: string; /** * Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. */ machineType: string; /** * Specifies the number of hours after reservation creation where instances using the reservation won't be scheduled for maintenance. */ maintenanceFreezeDurationHours: number; /** * Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`. */ maintenanceInterval: string; /** * Minimum cpu platform the reservation. */ minCpuPlatform: string; } /** * This reservation type allows to pre allocate specific instance configuration. Next ID: 6 */ interface AllocationSpecificSKUReservationResponse { /** * Indicates how many instances are actually usable currently. */ assuredCount: string; /** * Specifies the number of resources that are allocated. */ count: string; /** * Indicates how many instances are in use. */ inUseCount: string; /** * The instance properties for the reservation. */ instanceProperties: outputs.compute.alpha.AllocationSpecificSKUAllocationReservedInstancePropertiesResponse; /** * Specifies the instance template to create the reservation. If you use this field, you must exclude the instanceProperties field. This field is optional, and it can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate */ sourceInstanceTemplate: string; } /** * [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. */ interface AttachedDiskInitializeParamsResponse { /** * The architecture of the attached disk. Valid values are arm64 or x86_64. */ architecture: string; /** * An optional description. Provide this property when creating the disk. */ description: string; /** * Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created. */ diskName: string; /** * Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB. */ diskSizeGb: string; /** * Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you specify this field when creating a VM, you can provide either the full or partial URL. For example, the following values are valid: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType If you specify this field when creating or updating an instance template or all-instances configuration, specify the type of the disk, not the URL. For example: pd-standard. */ diskType: string; /** * Whether this disk is using confidential compute mode. */ enableConfidentialCompute: boolean; /** * A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. Guest OS features are applied by merging initializeParams.guestOsFeatures and disks.guestOsFeatures */ guestOsFeatures: outputs.compute.alpha.GuestOsFeatureResponse[]; /** * [Deprecated] Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. * * @deprecated [Deprecated] Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. */ interface: string; /** * Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. */ labels: { [key: string]: string; }; /** * Integer license codes indicating which licenses are attached to this disk. */ licenseCodes: string[]; /** * A list of publicly visible licenses. Reserved for Google's use. */ licenses: string[]; /** * Indicates whether or not the disk can be read/write attached to more than one instance. */ multiWriter: boolean; /** * Specifies which action to take on instance update with this disk. Default is to use the existing disk. */ onUpdateAction: string; /** * Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. */ provisionedIops: string; /** * Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be between 1 and 7,124. */ provisionedThroughput: string; /** * Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone. */ replicaZones: string[]; /** * Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; /** * Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name. */ resourcePolicies: string[]; /** * The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set. */ sourceImage: string; /** * The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. InstanceTemplate and InstancePropertiesPatch do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. */ sourceImageEncryptionKey: outputs.compute.alpha.CustomerEncryptionKeyResponse; /** * The source instant-snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceInstantSnapshot initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: us-central1-a/instantSnapshots/my-backup If the source instant-snapshot is deleted later, this field will not be set. */ sourceInstantSnapshot: string; /** * The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. */ sourceSnapshot: string; /** * The customer-supplied encryption key of the source snapshot. */ sourceSnapshotEncryptionKey: outputs.compute.alpha.CustomerEncryptionKeyResponse; /** * The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool */ storagePool: string; } /** * An instance-attached disk resource. */ interface AttachedDiskResponse { /** * The architecture of the attached disk. Valid values are ARM64 or X86_64. */ architecture: string; /** * Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. */ boot: boolean; /** * Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. */ deviceName: string; /** * Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. */ diskEncryptionKey: outputs.compute.alpha.CustomerEncryptionKeyResponse; /** * The size of the disk in GB. */ diskSizeGb: string; /** * [Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. */ forceAttach: boolean; /** * A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. */ guestOsFeatures: outputs.compute.alpha.GuestOsFeatureResponse[]; /** * A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. */ index: number; /** * [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. */ initializeParams: outputs.compute.alpha.AttachedDiskInitializeParamsResponse; /** * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks. */ interface: string; /** * Type of the resource. Always compute#attachedDisk for attached disks. */ kind: string; /** * Any valid publicly visible licenses. */ licenses: string[]; /** * Whether to indicate the attached disk is locked. The locked disk is not allowed to be detached from the instance, or to be used as the source of the snapshot creation, and the image creation. The instance with at least one locked attached disk is not allow to be used as source of machine image creation, instant snapshot creation, and not allowed to be deleted with --keep-disk parameter set to true for locked disks. */ locked: boolean; /** * The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. */ mode: string; /** * For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api. */ savedState: string; /** * shielded vm initial state stored on disk */ shieldedInstanceInitialState: outputs.compute.alpha.InitialStateConfigResponse; /** * Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk. */ source: string; /** * Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. */ type: string; /** * A list of user provided licenses. It represents a list of URLs to the license resource. Unlike regular licenses, user provided licenses can be modified after the disk is created. */ userLicenses: string[]; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.compute.alpha.AuditLogConfigResponse[]; /** * This is deprecated and has no effect. Do not use. */ exemptedMembers: string[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * This is deprecated and has no effect. Do not use. */ ignoreChildExemptions: boolean; /** * The log type that this config enables. */ logType: string; } /** * [Deprecated] The authentication settings for the backend service. The authentication settings for the backend service. */ interface AuthenticationPolicyResponse { /** * List of authentication methods that can be used for origin authentication. Similar to peers, these will be evaluated in order the first valid one will be used to set origin identity. If none of these methods pass, the request will be rejected with authentication failed error (401). Leave the list empty if origin authentication is not required. */ origins: outputs.compute.alpha.OriginAuthenticationMethodResponse[]; /** * List of authentication methods that can be used for peer authentication. They will be evaluated in order the first valid one will be used to set peer identity. If none of these methods pass, the request will be rejected with authentication failed error (401). Leave the list empty if peer authentication is not required. */ peers: outputs.compute.alpha.PeerAuthenticationMethodResponse[]; /** * Define whether peer or origin identity should be used for principal. Default value is USE_PEER. If peer (or origin) identity is not available, either because peer/origin authentication is not defined, or failed, principal will be left unset. In other words, binding rule does not affect the decision to accept or reject request. This field can be set to one of the following: USE_PEER: Principal will be set to the identity from peer authentication. USE_ORIGIN: Principal will be set to the identity from origin authentication. */ principalBinding: string; /** * Configures the mechanism to obtain server-side security certificates and identity information. */ serverTlsContext: outputs.compute.alpha.TlsContextResponse; } /** * [Deprecated] Authorization configuration provides service-level and method-level access control for a service. control for a service. */ interface AuthorizationConfigResponse { /** * List of RbacPolicies. */ policies: outputs.compute.alpha.RbacPolicyResponse[]; } /** * This is deprecated and has no effect. Do not use. */ interface AuthorizationLoggingOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ permissionType: string; } interface AutoscalerStatusDetailsResponse { /** * The status message. */ message: string; /** * The type of error, warning, or notice returned. Current set of possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are unhealthy (not in RUNNING state). - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size greater than maxNumReplicas. - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples are not exported often enough to be a credible base for autoscaling. - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not exist or does not have the necessary labels. - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group. - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive any data from the custom metric configured for autoscaling. - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer. - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved. - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only out" mode. The autoscaler can add instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be autoscaled because it has more than one backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for the necessary resources, such as CPU or number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional autoscalers: there is a resource stockout in the chosen region. - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not exist. - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout. New values might be added in the future. Some of the values might not be available in all API versions. */ type: string; } /** * CPU utilization policy. */ interface AutoscalingPolicyCpuUtilizationResponse { /** * Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand. */ predictiveMethod: string; /** * The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization. */ utilizationTarget: number; } /** * Custom utilization metric policy. */ interface AutoscalingPolicyCustomMetricUtilizationResponse { /** * A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value. */ filter: string; /** * The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE. */ metric: string; /** * If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead. */ singleInstanceAssignment: number; /** * The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances. */ utilizationTarget: number; /** * Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. */ utilizationTargetType: string; } /** * Configuration parameters of autoscaling based on load balancing. */ interface AutoscalingPolicyLoadBalancingUtilizationResponse { /** * Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8. */ utilizationTarget: number; } /** * Cloud Autoscaler policy. */ interface AutoscalingPolicyResponse { /** * The number of seconds that your application takes to initialize on a VM instance. This is referred to as the [initialization period](/compute/docs/autoscaler#cool_down_period). Specifying an accurate initialization period improves autoscaler decisions. For example, when scaling out, the autoscaler ignores data from VMs that are still initializing because those VMs might not yet represent normal usage of your application. The default initialization period is 60 seconds. Initialization periods might vary because of numerous factors. We recommend that you test how long your application takes to initialize. To do this, create a VM and time your application's startup process. */ coolDownPeriodSec: number; /** * Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group. */ cpuUtilization: outputs.compute.alpha.AutoscalingPolicyCpuUtilizationResponse; /** * Configuration parameters of autoscaling based on a custom metric. */ customMetricUtilizations: outputs.compute.alpha.AutoscalingPolicyCustomMetricUtilizationResponse[]; /** * Configuration parameters of autoscaling based on load balancer. */ loadBalancingUtilization: outputs.compute.alpha.AutoscalingPolicyLoadBalancingUtilizationResponse; /** * The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas. */ maxNumReplicas: number; /** * The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed. */ minNumReplicas: number; /** * Defines the operating mode for this policy. The following modes are available: - OFF: Disables the autoscaler but maintains its configuration. - ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON: Enables all autoscaler activities according to its policy. For more information, see "Turning off or restricting an autoscaler" */ mode: string; scaleDownControl: outputs.compute.alpha.AutoscalingPolicyScaleDownControlResponse; scaleInControl: outputs.compute.alpha.AutoscalingPolicyScaleInControlResponse; /** * Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed. */ scalingSchedules: { [key: string]: string; }; } /** * Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below. */ interface AutoscalingPolicyScaleDownControlResponse { /** * Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. */ maxScaledDownReplicas: outputs.compute.alpha.FixedOrPercentResponse; /** * How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. */ timeWindowSec: number; } /** * Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below. */ interface AutoscalingPolicyScaleInControlResponse { /** * Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. */ maxScaledInReplicas: outputs.compute.alpha.FixedOrPercentResponse; /** * How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. */ timeWindowSec: number; } /** * Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. */ interface BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse { /** * The header field name to match on when bypassing cache. Values are case-insensitive. */ headerName: string; } /** * Message containing what to include in the cache key for a request for Cloud CDN. */ interface BackendBucketCdnPolicyCacheKeyPolicyResponse { /** * Allows HTTP request headers (by name) to be used in the cache key. */ includeHttpHeaders: string[]; /** * Names of query string parameters to include in cache keys. Default parameters are always included. '&' and '=' will be percent encoded and not treated as delimiters. */ queryStringWhitelist: string[]; } /** * Specify CDN TTLs for response error codes. */ interface BackendBucketCdnPolicyNegativeCachingPolicyResponse { /** * The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. */ code: number; /** * The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ ttl: number; } /** * Message containing Cloud CDN configuration for a backend bucket. */ interface BackendBucketCdnPolicyResponse { /** * Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. */ bypassCacheOnRequestHeaders: outputs.compute.alpha.BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse[]; /** * The CacheKeyPolicy for this CdnPolicy. */ cacheKeyPolicy: outputs.compute.alpha.BackendBucketCdnPolicyCacheKeyPolicyResponse; /** * Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. */ cacheMode: string; /** * Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). */ clientTtl: number; /** * Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ defaultTtl: number; /** * Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ maxTtl: number; /** * Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. */ negativeCaching: boolean; /** * Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. */ negativeCachingPolicy: outputs.compute.alpha.BackendBucketCdnPolicyNegativeCachingPolicyResponse[]; /** * If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. */ requestCoalescing: boolean; /** * Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. */ serveWhileStale: number; /** * Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. */ signedUrlCacheMaxAgeSec: string; /** * Names of the keys for signing request URLs. */ signedUrlKeyNames: string[]; } /** * Message containing information of one individual backend. */ interface BackendResponse { /** * Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected. */ balancingMode: string; /** * A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. Not available with backends that don't support using a balancingMode. This includes backends such as global internet NEGs, regional serverless NEGs, and PSC NEGs. */ capacityScaler: number; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService. */ failover: boolean; /** * The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported. */ group: string; /** * Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. */ maxConnections: number; /** * Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. */ maxConnectionsPerEndpoint: number; /** * Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. */ maxConnectionsPerInstance: number; /** * Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. */ maxRate: number; /** * Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. */ maxRatePerEndpoint: number; /** * Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. */ maxRatePerInstance: number; /** * Optional parameter to define a target capacity for the UTILIZATION balancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode. */ maxUtilization: number; /** * This field indicates whether this backend should be fully utilized before sending traffic to backends with default preference. The possible values are: - PREFERRED: Backends with this preference level will be filled up to their capacity limits first, based on RTT. - DEFAULT: If preferred backends don't have enough capacity, backends in this layer would be used and traffic would be assigned based on the load balancing algorithm you use. This is the default */ preference: string; } /** * Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. */ interface BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse { /** * The header field name to match on when bypassing cache. Values are case-insensitive. */ headerName: string; } /** * Specify CDN TTLs for response error codes. */ interface BackendServiceCdnPolicyNegativeCachingPolicyResponse { /** * The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. */ code: number; /** * The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ ttl: number; } /** * Message containing Cloud CDN configuration for a backend service. */ interface BackendServiceCdnPolicyResponse { /** * Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. */ bypassCacheOnRequestHeaders: outputs.compute.alpha.BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse[]; /** * The CacheKeyPolicy for this CdnPolicy. */ cacheKeyPolicy: outputs.compute.alpha.CacheKeyPolicyResponse; /** * Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. */ cacheMode: string; /** * Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). */ clientTtl: number; /** * Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ defaultTtl: number; /** * Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ maxTtl: number; /** * Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. */ negativeCaching: boolean; /** * Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. */ negativeCachingPolicy: outputs.compute.alpha.BackendServiceCdnPolicyNegativeCachingPolicyResponse[]; /** * If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. */ requestCoalescing: boolean; /** * Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. */ serveWhileStale: number; /** * Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. */ signedUrlCacheMaxAgeSec: string; /** * Names of the keys for signing request URLs. */ signedUrlKeyNames: string[]; } /** * Connection Tracking configuration for this BackendService. */ interface BackendServiceConnectionTrackingPolicyResponse { /** * Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence). */ connectionPersistenceOnUnhealthyBackends: string; /** * Enable Strong Session Affinity for Network Load Balancing. This option is not available publicly. */ enableStrongAffinity: boolean; /** * Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For Network Load Balancer the default is 60 seconds. This option is not available publicly. */ idleTimeoutSec: number; /** * Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode). */ trackingMode: string; } /** * For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). */ interface BackendServiceFailoverPolicyResponse { /** * This can be set to true only if the protocol is TCP. The default is false. */ disableConnectionDrainOnFailover: boolean; /** * If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false. */ dropTrafficIfUnhealthy: boolean; /** * The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). */ failoverRatio: number; } interface BackendServiceIAPOAuth2ClientInfoResponse { /** * Application name to be used in OAuth consent screen. */ applicationName: string; /** * Name of the client to be generated. Optional - If not provided, the name will be autogenerated by the backend. */ clientName: string; /** * Developer's information to be used in OAuth consent screen. */ developerEmailAddress: string; } /** * Identity-Aware Proxy */ interface BackendServiceIAPResponse { /** * Whether the serving infrastructure will authenticate and authorize all incoming requests. */ enabled: boolean; /** * OAuth2 client ID to use for the authentication flow. */ oauth2ClientId: string; /** * [Input Only] OAuth client info required to generate client id to be used for IAP. */ oauth2ClientInfo: outputs.compute.alpha.BackendServiceIAPOAuth2ClientInfoResponse; /** * OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly */ oauth2ClientSecret: string; /** * SHA256 hash value for the field oauth2_client_secret above. */ oauth2ClientSecretSha256: string; } /** * The configuration for a custom policy implemented by the user and deployed with the client. */ interface BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyResponse { /** * An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation. */ data: string; /** * Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy. */ name: string; } /** * The configuration for a built-in load balancing policy. */ interface BackendServiceLocalityLoadBalancingPolicyConfigPolicyResponse { /** * The name of a locality load-balancing policy. Valid values include ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about these values, see the description of localityLbPolicy. Do not specify the same policy more than once for a backend. If you do, the configuration is rejected. */ name: string; } /** * Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user. */ interface BackendServiceLocalityLoadBalancingPolicyConfigResponse { customPolicy: outputs.compute.alpha.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyResponse; policy: outputs.compute.alpha.BackendServiceLocalityLoadBalancingPolicyConfigPolicyResponse; } /** * The available logging options for the load balancer traffic served by this backend service. */ interface BackendServiceLogConfigResponse { /** * Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false. */ enable: boolean; /** * Deprecated in favor of optionalMode. This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL. * * @deprecated Deprecated in favor of optionalMode. This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL. */ optional: string; /** * This field can only be specified if logging is enabled for this backend service and "logConfig.optionalMode" was set to CUSTOM. Contains a list of optional fields you want to include in the logs. For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace */ optionalFields: string[]; /** * This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL. */ optionalMode: string; /** * This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0. */ sampleRate: number; } interface BackendServiceUsedByResponse { reference: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * This is deprecated and has no effect. Do not use. */ bindingId: string; /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.compute.alpha.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * A transient resource used in compute.instances.bulkInsert and compute.regionInstances.bulkInsert . This resource is not persisted anywhere, it is used only for processing the requests. */ interface BulkInsertInstanceResourceResponse { /** * The maximum number of instances to create. */ count: string; /** * The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided. */ instanceProperties: outputs.compute.alpha.InstancePropertiesResponse; /** * Policy for chosing target zone. For more information, see Create VMs in bulk . */ locationPolicy: outputs.compute.alpha.LocationPolicyResponse; /** * The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted. */ minCount: string; /** * The string pattern used for the names of the VMs. Either name_pattern or per_instance_properties must be set. The pattern must contain one continuous sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: a name_pattern of inst-#### generates instance names such as inst-0001 and inst-0002. If existing instances in the same project and zone have names that match the name pattern then the generated instance numbers start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### begin with inst-0051. The name pattern placeholder #...# can contain up to 18 characters. */ namePattern: string; /** * Per-instance properties to be set on individual instances. Keys of this map specify requested instance names. Can be empty if name_pattern is used. */ perInstanceProperties: { [key: string]: string; }; /** * Specifies the instance template from which to create instances. You may combine sourceInstanceTemplate with instanceProperties to override specific values from an existing instance template. Bulk API follows the semantics of JSON Merge Patch described by RFC 7396. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate This field is optional. */ sourceInstanceTemplate: string; } /** * Message containing what to include in the cache key for a request for Cloud CDN. */ interface CacheKeyPolicyResponse { /** * If true, requests to different hosts will be cached separately. */ includeHost: boolean; /** * Allows HTTP request headers (by name) to be used in the cache key. */ includeHttpHeaders: string[]; /** * Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates. */ includeNamedCookies: string[]; /** * If true, http and https requests will be cached separately. */ includeProtocol: boolean; /** * If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely. */ includeQueryString: boolean; /** * Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. */ queryStringBlacklist: string[]; /** * Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. */ queryStringWhitelist: string[]; } /** * [Deprecated] gRPC call credentials to access the SDS server. gRPC call credentials to access the SDS server. */ interface CallCredentialsResponse { /** * The type of call credentials to use for GRPC requests to the SDS server. This field can be set to one of the following: - GCE_VM: The local GCE VM service account credentials are used to access the SDS server. - FROM_PLUGIN: Custom authenticator credentials are used to access the SDS server. */ callCredentialType: string; /** * Custom authenticator credentials. Valid if callCredentialType is FROM_PLUGIN. */ fromPlugin: outputs.compute.alpha.MetadataCredentialsFromPluginResponse; } /** * [Deprecated] gRPC channel credentials to access the SDS server. gRPC channel credentials to access the SDS server. */ interface ChannelCredentialsResponse { /** * The call credentials to access the SDS server. */ certificates: outputs.compute.alpha.TlsCertificatePathsResponse; /** * The channel credentials to access the SDS server. This field can be set to one of the following: CERTIFICATES: Use TLS certificates to access the SDS server. GCE_VM: Use local GCE VM credentials to access the SDS server. */ channelCredentialType: string; } /** * Settings controlling the volume of requests, connections and retries to this backend service. */ interface CircuitBreakersResponse { /** * The timeout for new network connections to hosts. */ connectTimeout: outputs.compute.alpha.DurationResponse; /** * The maximum number of connections to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxConnections: number; /** * The maximum number of pending requests allowed to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxPendingRequests: number; /** * The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit. */ maxRequests: number; /** * Maximum requests for a single connection to the backend service. This parameter is respected by both the HTTP/1.1 and HTTP/2 implementations. If not specified, there is no limit. Setting this parameter to 1 will effectively disable keep alive. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxRequestsPerConnection: number; /** * The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxRetries: number; } /** * [Deprecated] The client side authentication settings for connection originating from the backend service. the backend service. */ interface ClientTlsSettingsResponse { /** * Configures the mechanism to obtain client-side security certificates and identity information. This field is only applicable when mode is set to MUTUAL. */ clientTlsContext: outputs.compute.alpha.TlsContextResponse; /** * Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced. This can be set to one of the following values: DISABLE: Do not setup a TLS connection to the backends. SIMPLE: Originate a TLS connection to the backends. MUTUAL: Secure connections to the backends using mutual TLS by presenting client certificates for authentication. */ mode: string; /** * SNI string to present to the server during TLS handshake. This field is applicable only when mode is SIMPLE or MUTUAL. */ sni: string; /** * A list of alternate names to verify the subject identity in the certificate.If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. This field is applicable only when mode is SIMPLE or MUTUAL. */ subjectAltNames: string[]; } interface CommitmentResourceStatusCancellationInformationResponse { /** * An optional amount of CUDs canceled so far in the last 365 days. */ canceledCommitment: outputs.compute.alpha.MoneyResponse; /** * An optional last update time of canceled_commitment. RFC3339 text format. */ canceledCommitmentLastUpdatedTimestamp: string; /** * An optional,the cancellation cap for how much commitments can be canceled in a rolling 365 per billing account. */ cancellationCap: outputs.compute.alpha.MoneyResponse; /** * An optional, cancellation fee. */ cancellationFee: outputs.compute.alpha.MoneyResponse; /** * An optional, cancellation fee expiration time. RFC3339 text format. */ cancellationFeeExpirationTimestamp: string; } /** * [Output Only] Contains output only fields. */ interface CommitmentResourceStatusResponse { /** * An optional, contains all the needed information of cancellation. */ cancellationInformation: outputs.compute.alpha.CommitmentResourceStatusCancellationInformationResponse; } /** * This is deprecated and has no effect. Do not use. */ interface ConditionResponse { /** * This is deprecated and has no effect. Do not use. */ iam: string; /** * This is deprecated and has no effect. Do not use. */ op: string; /** * This is deprecated and has no effect. Do not use. */ svc: string; /** * This is deprecated and has no effect. Do not use. */ sys: string; /** * This is deprecated and has no effect. Do not use. */ values: string[]; } /** * A set of Confidential Instance options. */ interface ConfidentialInstanceConfigResponse { /** * Defines the type of technology used by the confidential instance. */ confidentialInstanceType: string; /** * Defines whether the instance should have confidential compute enabled. */ enableConfidentialCompute: boolean; } /** * Message containing connection draining configuration. */ interface ConnectionDrainingResponse { /** * Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining. */ drainingTimeoutSec: number; } /** * The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash. */ interface ConsistentHashLoadBalancerSettingsHttpCookieResponse { /** * Name of the cookie. */ name: string; /** * Path to set for the cookie. */ path: string; /** * Lifetime of the cookie. */ ttl: outputs.compute.alpha.DurationResponse; } /** * This message defines settings for a consistent hash style load balancer. */ interface ConsistentHashLoadBalancerSettingsResponse { /** * Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ httpCookie: outputs.compute.alpha.ConsistentHashLoadBalancerSettingsHttpCookieResponse; /** * The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD. */ httpHeaderName: string; /** * The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node. */ minimumRingSize: string; } /** * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. */ interface CorsPolicyResponse { /** * In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false. */ allowCredentials: boolean; /** * Specifies the content for the Access-Control-Allow-Headers header. */ allowHeaders: string[]; /** * Specifies the content for the Access-Control-Allow-Methods header. */ allowMethods: string[]; /** * Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ allowOriginRegexes: string[]; /** * Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. */ allowOrigins: string[]; /** * If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. */ disabled: boolean; /** * Specifies the content for the Access-Control-Expose-Headers header. */ exposeHeaders: string[]; /** * Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header. */ maxAge: number; } /** * Specifies the mapping between the response code that will be returned along with the custom error content and the response code returned by the backend service. */ interface CustomErrorResponsePolicyCustomErrorResponseRuleResponse { /** * Valid values include: - A number between 400 and 599: For example 401 or 503, in which case the load balancer applies the policy if the error code exactly matches this value. - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. - 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499. Values must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy. */ matchResponseCodes: string[]; /** * The HTTP status code returned with the response containing the custom error content. If overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client. */ overrideResponseCode: number; /** * The full path to a file within backendBucket . For example: /errors/defaultError.html path must start with a leading slash. path cannot have trailing slashes. If the file is not available in backendBucket or the load balancer cannot reach the BackendBucket, a simple Not Found Error is returned to the client. The value must be from 1 to 1024 characters */ path: string; } /** * Specifies the custom error response policy that must be applied when the backend service or backend bucket responds with an error. */ interface CustomErrorResponsePolicyResponse { /** * Specifies rules for returning error responses. In a given policy, if you specify rules for both a range of error codes as well as rules for specific error codes then rules with specific error codes have a higher priority. For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). If the backend service returns a 401, then the rule for 401 will be applied. However if the backend service returns a 403, the rule for 4xx takes effect. */ errorResponseRules: outputs.compute.alpha.CustomErrorResponsePolicyCustomErrorResponseRuleResponse[]; /** * The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: - https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket - compute/v1/projects/project/global/backendBuckets/myBackendBucket - global/backendBuckets/myBackendBucket If errorService is not specified at lower levels like pathMatcher, pathRule and routeRule, an errorService specified at a higher level in the UrlMap will be used. If UrlMap.defaultCustomErrorResponsePolicy contains one or more errorResponseRules[], it must specify errorService. If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). errorService is not supported for internal or regional HTTP/HTTPS load balancers. */ errorService: string; } interface CustomerEncryptionKeyResponse { /** * The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 */ kmsKeyName: string; /** * The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ */ kmsKeyServiceAccount: string; /** * Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" */ rawKey: string; /** * Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem */ rsaEncryptedKey: string; /** * [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource. */ sha256: string; } /** * Deprecation status for a public resource. */ interface DeprecationStatusResponse { /** * An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it. */ deleted: string; /** * An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it. */ deprecated: string; /** * An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it. */ obsolete: string; /** * The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource. */ replacement: string; /** * The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error. */ state: string; /** * The rollout policy for this deprecation. This policy is only enforced by image family views. The rollout policy restricts the zones where the associated resource is considered in a deprecated state. When the rollout policy does not include the user specified zone, or if the zone is rolled out, the associated resource is considered in a deprecated state. The rollout policy for this deprecation is read-only, except for allowlisted users. This field might not be configured. To view the latest non-deprecated image in a specific zone, use the imageFamilyViews.get method. */ stateOverride: outputs.compute.alpha.RolloutPolicyResponse; } interface DiskAsyncReplicationResponse { /** * URL of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group. */ consistencyGroupPolicy: string; /** * ID of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group. */ consistencyGroupPolicyId: string; /** * The other disk asynchronously replicated to or from the current disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk */ disk: string; /** * The unique ID of the other disk asynchronously replicated to or from the current disk. This value identifies the exact disk that was used to create this replication. For example, if you started replicating the persistent disk from a disk that was later deleted and recreated under the same name, the disk ID would identify the exact version of the disk that was used. */ diskId: string; } /** * A specification of the desired way to instantiate a disk in the instance template when its created from a source instance. */ interface DiskInstantiationConfigResponse { /** * Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * The custom source image to be used to restore this disk when instantiating this instance template. */ customImage: string; /** * Specifies the device name of the disk to which the configurations apply to. */ deviceName: string; /** * Specifies whether to include the disk and what image to use. Possible values are: - source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. - attach-read-only: to attach a read-only disk. Applicable to read-only disks. - do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks. */ instantiateFrom: string; } /** * Additional disk params. */ interface DiskParamsResponse { /** * Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; } interface DiskResourceStatusAsyncReplicationStatusResponse { state: string; } interface DiskResourceStatusResponse { asyncPrimaryDisk: outputs.compute.alpha.DiskResourceStatusAsyncReplicationStatusResponse; /** * Key: disk, value: AsyncReplicationStatus message */ asyncSecondaryDisks: { [key: string]: string; }; /** * Space used by data stored in the disk (in bytes). Note that this field is set only when the disk is in a storage pool. */ usedBytes: string; } /** * A set of Display Device options */ interface DisplayDeviceResponse { /** * Defines whether the instance has Display enabled. */ enableDisplay: boolean; } interface DistributionPolicyResponse { /** * The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType). */ targetShape: string; /** * Zones where the regional managed instance group will create and manage its instances. */ zones: outputs.compute.alpha.DistributionPolicyZoneConfigurationResponse[]; } interface DistributionPolicyZoneConfigurationResponse { /** * The URL of the zone. The zone must exist in the region where the managed instance group is located. */ zone: string; } /** * A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. */ interface DurationResponse { /** * Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive. */ nanos: number; /** * Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years */ seconds: string; } /** * Describes the cause of the error with structured details. Example of an error when contacting the "pubsub.googleapis.com" API when it is not enabled: { "reason": "API_DISABLED" "domain": "googleapis.com" "metadata": { "resource": "projects/123", "service": "pubsub.googleapis.com" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata": { "availableRegions": "us-central1,us-east2" } } */ interface ErrorInfoResponse { /** * The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". */ domain: string; /** * Additional structured details about this error. Keys should match /[a-zA-Z0-9-_]/ and be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. */ metadatas: { [key: string]: string; }; /** * The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE. */ reason: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * The interface for the external VPN gateway. */ interface ExternalVpnGatewayInterfaceResponse { /** * IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. */ ipAddress: string; /** * IPv6 address of the interface in the external VPN gateway. This IPv6 address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. Must specify an IPv6 address (not IPV4-mapped) using any format described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). */ ipv6Address: string; } interface FileContentBufferResponse { /** * The raw content in the secure keys file. */ content: string; /** * The file type of source file. */ fileType: string; } interface FirewallAllowedItemResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports: string[]; } interface FirewallDeniedItemResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports: string[]; } /** * The available logging options for a firewall rule. */ interface FirewallLogConfigResponse { /** * This field denotes whether to enable logging for a particular firewall rule. */ enable: boolean; /** * This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs. */ metadata: string; } interface FirewallPolicyAssociationResponse { /** * The target that the firewall policy is attached to. */ attachmentTarget: string; /** * Deprecated, please use short name instead. The display name of the firewall policy of the association. */ displayName: string; /** * The firewall policy ID of the association. */ firewallPolicyId: string; /** * The name for an association. */ name: string; /** * An integer indicating the priority of an association. The priority must be a positive value between 1 and 2147483647. Firewall Policies are evaluated from highest to lowest priority where 1 is the highest priority and 2147483647 is the lowest priority. The default value is `1000`. If two associations have the same priority then lexicographical order on association names is applied. */ priority: number; /** * The short name of the firewall policy of the association. */ shortName: string; } interface FirewallPolicyRuleMatcherLayer4ConfigResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports: string[]; } /** * Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. */ interface FirewallPolicyRuleMatcherResponse { /** * Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. */ destAddressGroups: string[]; /** * Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. */ destFqdns: string[]; /** * CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. */ destIpRanges: string[]; /** * Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. */ destRegionCodes: string[]; /** * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. */ destThreatIntelligences: string[]; /** * Pairs of IP protocols and ports that the rule should match. */ layer4Configs: outputs.compute.alpha.FirewallPolicyRuleMatcherLayer4ConfigResponse[]; /** * Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. */ srcAddressGroups: string[]; /** * Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. */ srcFqdns: string[]; /** * CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. */ srcIpRanges: string[]; /** * Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. */ srcRegionCodes: string[]; /** * List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum number of source tag values allowed is 256. */ srcSecureTags: outputs.compute.alpha.FirewallPolicyRuleSecureTagResponse[]; /** * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. */ srcThreatIntelligences: string[]; } /** * Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). */ interface FirewallPolicyRuleResponse { /** * The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny" and "goto_next". */ action: string; /** * An optional description for this resource. */ description: string; /** * The direction in which this rule applies. */ direction: string; /** * Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. */ disabled: boolean; /** * Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. */ enableLogging: boolean; /** * [Output only] Type of the resource. Always compute#firewallPolicyRule for firewall policy rules */ kind: string; /** * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. */ match: outputs.compute.alpha.FirewallPolicyRuleMatcherResponse; /** * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. */ priority: number; /** * An optional name for the rule. This field is not a unique identifier and can be updated. */ ruleName: string; /** * Calculation of the complexity of a single firewall policy rule. */ ruleTupleCount: number; /** * A fully-qualified URL of a SecurityProfile resource instance. Example: https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. */ securityProfileGroup: string; /** * A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. */ targetResources: string[]; /** * A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the target_secure_tag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule applies to all instances on the specified network. Maximum number of target label tags allowed is 256. */ targetSecureTags: outputs.compute.alpha.FirewallPolicyRuleSecureTagResponse[]; /** * A list of service accounts indicating the sets of instances that are applied with this rule. */ targetServiceAccounts: string[]; /** * Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions. */ tlsInspect: boolean; } interface FirewallPolicyRuleSecureTagResponse { /** * Name of the secure tag, created with TagManager's TagValue API. */ name: string; /** * State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted. */ state: string; } /** * Encapsulates numeric value that can be either absolute or relative. */ interface FixedOrPercentResponse { /** * Absolute value of VM instances calculated based on the specific mode. - If the value is fixed, then the calculated value is equal to the fixed value. - If the value is a percent, then the calculated value is percent/100 * targetSize. For example, the calculated value of a 80% of a managed instance group with 150 instances would be (80/100 * 150) = 120 VM instances. If there is a remainder, the number is rounded. */ calculated: number; /** * Specifies a fixed number of VM instances. This must be a positive integer. */ fixed: number; /** * Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. */ percent: number; } /** * Describes the auto-registration of the Forwarding Rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this Forwarding Rule. */ interface ForwardingRuleServiceDirectoryRegistrationResponse { /** * Service Directory namespace to register the forwarding rule under. */ namespace: string; /** * Service Directory service to register the forwarding rule under. */ service: string; /** * [Optional] Service Directory region to register this global forwarding rule under. Default to "us-central1". Only used for PSC for Google APIs. All PSC for Google APIs Forwarding Rules on the same network should use the same Service Directory region. */ serviceDirectoryRegion: string; } interface FutureReservationSpecificSKUPropertiesResponse { /** * Properties of the SKU instances being reserved. */ instanceProperties: outputs.compute.alpha.AllocationSpecificSKUAllocationReservedInstancePropertiesResponse; /** * The instance template that will be used to populate the ReservedInstanceProperties of the future reservation */ sourceInstanceTemplate: string; /** * Total number of instances for which capacity assurance is requested at a future time period. */ totalCount: string; } /** * The properties of the last known good state for the Future Reservation. */ interface FutureReservationStatusLastKnownGoodStateFutureReservationSpecsResponse { /** * The previous share settings of the Future Reservation. */ shareSettings: outputs.compute.alpha.ShareSettingsResponse; /** * The previous instance related properties of the Future Reservation. */ specificSkuProperties: outputs.compute.alpha.FutureReservationSpecificSKUPropertiesResponse; /** * The previous time window of the Future Reservation. */ timeWindow: outputs.compute.alpha.FutureReservationTimeWindowResponse; } /** * The state that the future reservation will be reverted to should the amendment be declined. */ interface FutureReservationStatusLastKnownGoodStateResponse { /** * The description of the FutureReservation before an amendment was requested. */ description: string; futureReservationSpecs: outputs.compute.alpha.FutureReservationStatusLastKnownGoodStateFutureReservationSpecsResponse; /** * The lock time of the FutureReservation before an amendment was requested. */ lockTime: string; /** * The name prefix of the Future Reservation before an amendment was requested. */ namePrefix: string; /** * The status of the last known good state for the Future Reservation. */ procurementStatus: string; } /** * [Output only] Represents status related to the future reservation. */ interface FutureReservationStatusResponse { /** * The current status of the requested amendment. */ amendmentStatus: string; /** * Fully qualified urls of the automatically created reservations at start_time. */ autoCreatedReservations: string[]; /** * This count indicates the fulfilled capacity so far. This is set during "PROVISIONING" state. This count also includes capacity delivered as part of existing matching reservations. */ fulfilledCount: string; /** * This field represents the future reservation before an amendment was requested. If the amendment is declined, the Future Reservation will be reverted to the last known good state. The last known good state is not set when updating a future reservation whose Procurement Status is DRAFTING. */ lastKnownGoodState: outputs.compute.alpha.FutureReservationStatusLastKnownGoodStateResponse; /** * Time when Future Reservation would become LOCKED, after which no modifications to Future Reservation will be allowed. Applicable only after the Future Reservation is in the APPROVED state. The lock_time is an RFC3339 string. The procurement_status will transition to PROCURING state at this time. */ lockTime: string; /** * Current state of this Future Reservation */ procurementStatus: string; specificSkuProperties: outputs.compute.alpha.FutureReservationStatusSpecificSKUPropertiesResponse; } /** * Properties to be set for the Future Reservation. */ interface FutureReservationStatusSpecificSKUPropertiesResponse { /** * ID of the instance template used to populate the Future Reservation properties. */ sourceInstanceTemplateId: string; } interface FutureReservationTimeWindowResponse { duration: outputs.compute.alpha.DurationResponse; endTime: string; /** * Start time of the Future Reservation. The start_time is an RFC3339 string. */ startTime: string; } interface GRPCHealthCheckResponse { /** * The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII. */ grpcServiceName: string; /** * The TCP port number to which the health check prober sends packets. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; } /** * [Deprecated] gRPC config to access the SDS server. gRPC config to access the SDS server. */ interface GrpcServiceConfigResponse { /** * The call credentials to access the SDS server. */ callCredentials: outputs.compute.alpha.CallCredentialsResponse; /** * The channel credentials to access the SDS server. */ channelCredentials: outputs.compute.alpha.ChannelCredentialsResponse; /** * The target URI of the SDS server. */ targetUri: string; } /** * Guest OS features. */ interface GuestOsFeatureResponse { /** * The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE For more information, see Enabling guest operating system features. */ type: string; } interface HTTP2HealthCheckResponse { /** * The value of the host header in the HTTP/2 health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest */ host: string; /** * The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * The request path of the HTTP/2 health check request. The default value is /. */ requestPath: string; /** * Creates a content-based HTTP/2 health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http */ response: string; /** * Weight report mode. used for weighted Load Balancing. */ weightReportMode: string; } interface HTTPHealthCheckResponse { /** * The value of the host header in the HTTP health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest */ host: string; /** * The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Also supported in legacy HTTP health checks for target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * The request path of the HTTP health check request. The default value is /. */ requestPath: string; /** * Creates a content-based HTTP health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http */ response: string; /** * Weight report mode. used for weighted Load Balancing. */ weightReportMode: string; } interface HTTPSHealthCheckResponse { /** * The value of the host header in the HTTPS health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest */ host: string; /** * The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * The request path of the HTTPS health check request. The default value is /. */ requestPath: string; /** * Creates a content-based HTTPS health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http */ response: string; /** * Weight report mode. used for weighted Load Balancing. */ weightReportMode: string; } /** * Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver. */ interface HealthCheckLogConfigResponse { /** * Indicates whether or not to export logs. This is false by default, which means no health check logging will be done. */ enable: boolean; } /** * Describes a URL link. */ interface HelpLinkResponse { /** * Describes what the link offers. */ description: string; /** * The URL of the link. */ url: string; } /** * Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit. */ interface HelpResponse { /** * URL(s) pointing to additional information on handling the current error. */ links: outputs.compute.alpha.HelpLinkResponse[]; } /** * UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService. */ interface HostRuleResponse { /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character, and if followed by anything, the immediate following character must be either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ hosts: string[]; /** * The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion. */ pathMatcher: string; } /** * Specification for how requests are aborted as part of fault injection. */ interface HttpFaultAbortResponse { /** * The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director. */ httpStatus: number; /** * The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive. */ percentage: number; } /** * Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection. */ interface HttpFaultDelayResponse { /** * Specifies the value of the fixed delay interval. */ fixedDelay: outputs.compute.alpha.DurationResponse; /** * The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive. */ percentage: number; } /** * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. */ interface HttpFaultInjectionResponse { /** * The specification for how client requests are aborted as part of fault injection. */ abort: outputs.compute.alpha.HttpFaultAbortResponse; /** * The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. */ delay: outputs.compute.alpha.HttpFaultDelayResponse; } /** * HttpFilterConfiguration supplies additional contextual settings for networkservices.HttpFilter resources enabled by Traffic Director. */ interface HttpFilterConfigResponse { /** * The configuration needed to enable the networkservices.HttpFilter resource. The configuration must be YAML formatted and only contain fields defined in the protobuf identified in configTypeUrl */ config: string; /** * The fully qualified versioned proto3 type url of the protobuf that the filter expects for its contextual settings, for example: type.googleapis.com/google.protobuf.Struct */ configTypeUrl: string; /** * Name of the networkservices.HttpFilter resource this configuration belongs to. This name must be known to the xDS client. Example: envoy.wasm */ filterName: string; } /** * The request and response header transformations that take effect before the request is passed along to the selected backendService. */ interface HttpHeaderActionResponse { /** * Headers to add to a matching request before forwarding the request to the backendService. */ requestHeadersToAdd: outputs.compute.alpha.HttpHeaderOptionResponse[]; /** * A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. */ requestHeadersToRemove: string[]; /** * Headers to add the response before sending the response back to the client. */ responseHeadersToAdd: outputs.compute.alpha.HttpHeaderOptionResponse[]; /** * A list of header names for headers that need to be removed from the response before sending the response back to the client. */ responseHeadersToRemove: string[]; } /** * matchRule criteria for request header matches. */ interface HttpHeaderMatchResponse { /** * The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ exactMatch: string; /** * The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name ":authority". For matching a request's method, use the headerName ":method". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`. */ headerName: string; /** * If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. */ invertMatch: boolean; /** * The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ prefixMatch: string; /** * A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ presentMatch: boolean; /** * The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL. */ rangeMatch: outputs.compute.alpha.Int64RangeMatchResponse; /** * The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ regexMatch: string; /** * The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ suffixMatch: string; } /** * Specification determining how headers are added to requests or responses. */ interface HttpHeaderOptionResponse { /** * The name of the header. */ headerName: string; /** * The value of the header to add. */ headerValue: string; /** * If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. */ replace: boolean; } /** * HttpRouteRuleMatch criteria for a request's query parameter. */ interface HttpQueryParameterMatchResponse { /** * The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. */ exactMatch: string; /** * The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails. */ name: string; /** * Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. */ presentMatch: boolean; /** * The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ regexMatch: string; } /** * Specifies settings for an HTTP redirect. */ interface HttpRedirectActionResponse { /** * The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters. */ hostRedirect: string; /** * If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false. */ httpsRedirect: boolean; /** * The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. */ pathRedirect: string; /** * The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. */ prefixRedirect: string; /** * The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. */ redirectResponseCode: string; /** * If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. */ stripQuery: boolean; } /** * The retry policy associates with HttpRouteRule */ interface HttpRetryPolicyResponse { /** * Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. */ numRetries: number; /** * Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ perTryTimeout: outputs.compute.alpha.DurationResponse; /** * Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable */ retryConditions: string[]; } interface HttpRouteActionResponse { /** * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy. */ corsPolicy: outputs.compute.alpha.CorsPolicyResponse; /** * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the classic Application Load Balancer . To see which load balancers support fault injection, see Load balancing: Routing and traffic management features. */ faultInjectionPolicy: outputs.compute.alpha.HttpFaultInjectionResponse; /** * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. */ maxStreamDuration: outputs.compute.alpha.DurationResponse; /** * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ requestMirrorPolicy: outputs.compute.alpha.RequestMirrorPolicyResponse; /** * Specifies the retry policy associated with this route. */ retryPolicy: outputs.compute.alpha.HttpRetryPolicyResponse; /** * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ timeout: outputs.compute.alpha.DurationResponse; /** * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for classic Application Load Balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ urlRewrite: outputs.compute.alpha.UrlRewriteResponse; /** * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. */ weightedBackendServices: outputs.compute.alpha.WeightedBackendServiceResponse[]; } /** * HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur. */ interface HttpRouteRuleMatchResponse { /** * For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. */ fullPathMatch: string; /** * Specifies a list of header match criteria, all of which must match corresponding headers in the request. */ headerMatches: outputs.compute.alpha.HttpHeaderMatchResponse[]; /** * Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy. */ ignoreCase: boolean; /** * Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ metadataFilters: outputs.compute.alpha.MetadataFilterResponse[]; /** * If specified, the route is a pattern match expression that must match the :path header once the query string is removed. A pattern match allows you to match - The value must be between 1 and 1024 characters - The pattern must start with a leading slash ("/") - There may be no more than 5 operators in pattern Precisely one of prefix_match, full_path_match, regex_match or path_template_match must be set. */ pathTemplateMatch: string; /** * For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. */ prefixMatch: string; /** * Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy. */ queryParameterMatches: outputs.compute.alpha.HttpQueryParameterMatchResponse[]; /** * For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ regexMatch: string; } /** * The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform. */ interface HttpRouteRuleResponse { /** * customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. If a policy for an error code is not configured for the RouteRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with routeRules.routeAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the customErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the customErrorResponsePolicy is ignored and the response from the service is returned to the client. customErrorResponsePolicy is supported only for global external Application Load Balancers. */ customErrorResponsePolicy: outputs.compute.alpha.CustomErrorResponsePolicyResponse; /** * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters. */ description: string; /** * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ headerAction: outputs.compute.alpha.HttpHeaderActionResponse; /** * Outbound route specific configuration for networkservices.HttpFilter resources enabled by Traffic Director. httpFilterConfigs only applies for load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ httpFilterConfigs: outputs.compute.alpha.HttpFilterConfigResponse[]; /** * Outbound route specific metadata supplied to networkservices.HttpFilter resources enabled by Traffic Director. httpFilterMetadata only applies for load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details. The only configTypeUrl supported is type.googleapis.com/google.protobuf.Struct Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ httpFilterMetadata: outputs.compute.alpha.HttpFilterConfigResponse[]; /** * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule. */ matchRules: outputs.compute.alpha.HttpRouteRuleMatchResponse[]; /** * For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules. */ priority: number; /** * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a route rule's routeAction. */ routeAction: outputs.compute.alpha.HttpRouteActionResponse; /** * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. */ service: string; /** * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. */ urlRedirect: outputs.compute.alpha.HttpRedirectActionResponse; } /** * The parameters of the raw disk image. */ interface ImageRawDiskResponse { /** * The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created. */ containerType: string; /** * [Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created. * * @deprecated [Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created. */ sha1Checksum: string; /** * The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL */ source: string; } /** * Initial State for shielded instance, these are public keys which are safe to store in public */ interface InitialStateConfigResponse { /** * The Key Database (db). */ dbs: outputs.compute.alpha.FileContentBufferResponse[]; /** * The forbidden key database (dbx). */ dbxs: outputs.compute.alpha.FileContentBufferResponse[]; /** * The Key Exchange Key (KEK). */ keks: outputs.compute.alpha.FileContentBufferResponse[]; /** * The Platform Key (PK). */ pk: outputs.compute.alpha.FileContentBufferResponse; } interface InstanceGroupManagerActionsSummaryResponse { /** * The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it. */ abandoning: number; /** * The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully. If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated. */ creating: number; /** * The number of instances that the managed instance group will attempt to create atomically, in a batch mode. If the desired count of instances can not be created, entire batch will be deleted and the group will decrease its targetSize value accordingly. */ creatingAtomically: number; /** * The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly. */ creatingWithoutRetries: number; /** * The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted. */ deleting: number; /** * The number of instances in the managed instance group that are running and have no scheduled actions. */ none: number; /** * The number of instances that the managed instance group is currently queuing. */ queuing: number; /** * The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template. */ recreating: number; /** * The number of instances in the managed instance group that are being reconfigured with properties that do not require a restart or a recreate action. For example, setting or removing target pools for the instance. */ refreshing: number; /** * The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted. */ restarting: number; /** * The number of instances in the managed instance group that are scheduled to be resumed or are currently being resumed. */ resuming: number; /** * The number of instances in the managed instance group that are scheduled to be started or are currently being started. */ starting: number; /** * The number of instances in the managed instance group that are scheduled to be stopped or are currently being stopped. */ stopping: number; /** * The number of instances in the managed instance group that are scheduled to be suspended or are currently being suspended. */ suspending: number; /** * The number of instances in the managed instance group that are being verified. See the managedInstances[].currentAction property in the listManagedInstances method documentation. */ verifying: number; } interface InstanceGroupManagerAllInstancesConfigResponse { /** * Properties to set on all instances in the group. You can add or modify properties using the instanceGroupManagers.patch or regionInstanceGroupManagers.patch. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration. To apply the configuration, set the group's updatePolicy.type field to use proactive updates or use the applyUpdatesToInstances method. */ properties: outputs.compute.alpha.InstancePropertiesPatchResponse; } interface InstanceGroupManagerAutoHealingPolicyAutoHealingTriggersResponse { /** * If you have configured an application-based health check for the group, this field controls whether to trigger VM autohealing based on a failed health check. Valid values are: - ON (default): The group recreates running VMs that fail the application-based health check. - OFF: When set to OFF, you can still observe instance health state, but the group does not recreate VMs that fail the application-based health check. This is useful for troubleshooting and setting up your health check configuration. */ onHealthCheck: string; } interface InstanceGroupManagerAutoHealingPolicyResponse { /** * Restricts what triggers autohealing. */ autoHealingTriggers: outputs.compute.alpha.InstanceGroupManagerAutoHealingPolicyAutoHealingTriggersResponse; /** * The URL for the health check that signals autohealing. */ healthCheck: string; /** * The initial delay is the number of seconds that a new VM takes to initialize and run its startup script. During a VM's initial delay period, the MIG ignores unsuccessful health checks because the VM might be in the startup process. This prevents the MIG from prematurely recreating a VM. If the health check receives a healthy response during the initial delay, it indicates that the startup process is complete and the VM is ready. The value of initial delay must be between 0 and 3600 seconds. The default value is 0. */ initialDelaySec: number; /** * Maximum number of instances that can be unavailable when autohealing. When 'percent' is used, the value is rounded if necessary. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's currentAction is NONE (in particular its liveness health check result was observed to be HEALTHY at least once as it passed VERIFYING). 3. There is no outgoing action on an instance triggered by IGM. By default, number of concurrently autohealed instances is smaller than the managed instance group target size. However, if a zonal managed instance group has only one instance, or a regional managed instance group has only one instance per zone, autohealing will recreate these instances when they become unhealthy. */ maxUnavailable: outputs.compute.alpha.FixedOrPercentResponse; } interface InstanceGroupManagerInstanceFlexibilityPolicyResponse { /** * Named instance selections configuring properties that the group will use when creating new VMs. */ instanceSelectionLists: { [key: string]: string; }; /** * Named instance selections configuring properties that the group will use when creating new VMs. */ instanceSelections: { [key: string]: string; }; } interface InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignalResponse { /** * The number of seconds to wait for a readiness signal during initialization before timing out. */ timeoutSec: number; } interface InstanceGroupManagerInstanceLifecyclePolicyResponse { /** * The action that a MIG performs on a failed or an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid values are - REPAIR (default): MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG. - DO_NOTHING: MIG does not repair a failed or an unhealthy VM. */ defaultActionOnFailure: string; /** * A bit indicating whether to forcefully apply the group's latest configuration when repairing a VM. Valid options are: - NO (default): If configuration updates are available, they are not forcefully applied during repair. Instead, configuration updates are applied according to the group's update policy. - YES: If configuration updates are available, they are applied during repair. */ forceUpdateOnRepair: string; /** * The configuration for metadata based readiness signal sent by the instance during initialization when stopping / suspending an instance. The Instance Group Manager will wait for a signal that indicates successful initialization before stopping / suspending an instance. If a successful readiness signal is not sent before timeout, the corresponding instance will not be stopped / suspended. Instead, an error will be visible in the lastAttempt.errors field of the managed instance in the listmanagedinstances method. If metadataBasedReadinessSignal.timeoutSec is unset, the Instance Group Manager will directly proceed to suspend / stop instances, skipping initialization on them. */ metadataBasedReadinessSignal: outputs.compute.alpha.InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignalResponse; } interface InstanceGroupManagerResizeRequestStatusErrorErrorsItemErrorDetailsItemResponse { errorInfo: outputs.compute.alpha.ErrorInfoResponse; help: outputs.compute.alpha.HelpResponse; localizedMessage: outputs.compute.alpha.LocalizedMessageResponse; quotaInfo: outputs.compute.alpha.QuotaExceededInfoResponse; } interface InstanceGroupManagerResizeRequestStatusErrorErrorsItemResponse { /** * The error type identifier for this error. */ code: string; /** * An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. */ errorDetails: outputs.compute.alpha.InstanceGroupManagerResizeRequestStatusErrorErrorsItemErrorDetailsItemResponse[]; /** * Indicates the field in the request that caused the error. This property is optional. */ location: string; /** * An optional, human-readable error message. */ message: string; } /** * Errors encountered during the queueing or provisioning phases of the ResizeRequest. */ interface InstanceGroupManagerResizeRequestStatusErrorResponse { /** * The array of errors encountered while processing this operation. */ errors: outputs.compute.alpha.InstanceGroupManagerResizeRequestStatusErrorErrorsItemResponse[]; } interface InstanceGroupManagerResizeRequestStatusResponse { /** * Errors encountered during the queueing or provisioning phases of the ResizeRequest. */ error: outputs.compute.alpha.InstanceGroupManagerResizeRequestStatusErrorResponse; /** * Constraints for the time when the instances start provisioning. Always exposed as absolute time. */ queuingPolicy: outputs.compute.alpha.QueuingPolicyResponse; } interface InstanceGroupManagerStandbyPolicyResponse { initialDelaySec: number; /** * Defines behaviour of using instances from standby pool to resize MIG. */ mode: string; } interface InstanceGroupManagerStatusAllInstancesConfigResponse { /** * Current all-instances configuration revision. This value is in RFC3339 text format. */ currentRevision: string; /** * A bit indicating whether this configuration has been applied to all managed instances in the group. */ effective: boolean; } interface InstanceGroupManagerStatusResponse { /** * [Output only] Status of all-instances configuration on the group. */ allInstancesConfig: outputs.compute.alpha.InstanceGroupManagerStatusAllInstancesConfigResponse; /** * The URL of the Autoscaler that targets this instance group manager. */ autoscaler: string; /** * A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified. */ isStable: boolean; /** * Stateful status of the given Instance Group Manager. */ stateful: outputs.compute.alpha.InstanceGroupManagerStatusStatefulResponse; /** * A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager. */ versionTarget: outputs.compute.alpha.InstanceGroupManagerStatusVersionTargetResponse; } interface InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse { /** * A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs. */ allEffective: boolean; } interface InstanceGroupManagerStatusStatefulResponse { /** * A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. */ hasStatefulConfig: boolean; /** * A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. This field is deprecated in favor of has_stateful_config. * * @deprecated [Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. This field is deprecated in favor of has_stateful_config. */ isStateful: boolean; /** * Status of per-instance configurations on the instance. */ perInstanceConfigs: outputs.compute.alpha.InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse; } interface InstanceGroupManagerStatusVersionTargetResponse { /** * A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager. */ isReached: boolean; } interface InstanceGroupManagerUpdatePolicyResponse { /** * The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. */ instanceRedistributionType: string; /** * The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge. */ maxSurge: outputs.compute.alpha.FixedOrPercentResponse; /** * The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable. */ maxUnavailable: outputs.compute.alpha.FixedOrPercentResponse; /** * Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]. */ minReadySec: number; /** * Minimal action to be taken on an instance. Use this option to minimize disruption as much as possible or to apply a more disruptive action than is necessary. - To limit disruption as much as possible, set the minimal action to REFRESH. If your update requires a more disruptive action, Compute Engine performs the necessary action to execute the update. - To apply a more disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For example, Compute Engine does not need to restart a VM to change its metadata. But if your application reads instance metadata only when a VM is restarted, you can set the minimal action to RESTART in order to pick up metadata changes. */ minimalAction: string; /** * Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to avoid restarting the VM and to limit disruption as much as possible. RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all. */ mostDisruptiveAllowedAction: string; /** * What action should be used to replace instances. See minimal_action.REPLACE */ replacementMethod: string; /** * The type of update process. You can specify either PROACTIVE so that the MIG automatically updates VMs to the latest configurations or OPPORTUNISTIC so that you can select the VMs that you want to update. */ type: string; } interface InstanceGroupManagerVersionResponse { /** * The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached. */ instanceTemplate: string; /** * Name of the version. Unique among all versions in the scope of this managed instance group. */ name: string; /** * Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'. * * @deprecated Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'. */ tag: string; /** * Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information. */ targetSize: outputs.compute.alpha.FixedOrPercentResponse; } /** * Additional instance params. */ interface InstanceParamsResponse { /** * Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; } /** * Represents the change that you want to make to the instance properties. */ interface InstancePropertiesPatchResponse { /** * The label key-value pairs that you want to patch onto the instance. */ labels: { [key: string]: string; }; /** * The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata. */ metadata: { [key: string]: string; }; } interface InstancePropertiesResponse { /** * Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet. */ advancedMachineFeatures: outputs.compute.alpha.AdvancedMachineFeaturesResponse; /** * Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. */ canIpForward: boolean; /** * Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet. */ confidentialInstanceConfig: outputs.compute.alpha.ConfidentialInstanceConfigResponse; /** * An optional text description for the instances that are created from these properties. */ description: string; /** * An array of disks that are associated with the instances that are created from these properties. */ disks: outputs.compute.alpha.AttachedDiskResponse[]; /** * Display Device properties to enable support for remote display products like: Teradici, VNC and TeamViewer Note that for MachineImage, this is not supported yet. */ displayDevice: outputs.compute.alpha.DisplayDeviceResponse; /** * A list of guest accelerator cards' type and count to use for instances created from these properties. */ guestAccelerators: outputs.compute.alpha.AcceleratorConfigResponse[]; /** * KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. */ keyRevocationActionType: string; /** * Labels to apply to instances that are created from these properties. */ labels: { [key: string]: string; }; /** * The machine type to use for instances that are created from these properties. */ machineType: string; /** * The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. */ metadata: outputs.compute.alpha.MetadataResponse; /** * Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. */ minCpuPlatform: string; /** * An array of network access configurations for this interface. */ networkInterfaces: outputs.compute.alpha.NetworkInterfaceResponse[]; /** * Note that for MachineImage, this is not supported yet. */ networkPerformanceConfig: outputs.compute.alpha.NetworkPerformanceConfigResponse; /** * Partner Metadata assigned to the instance properties. A map from a subdomain (namespace) to entries map. */ partnerMetadata: { [key: string]: string; }; /** * PostKeyRevocationActionType of the instance. */ postKeyRevocationActionType: string; /** * The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet. */ privateIpv6GoogleAccess: string; /** * Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet. */ reservationAffinity: outputs.compute.alpha.ReservationAffinityResponse; /** * Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; /** * Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet. */ resourcePolicies: string[]; /** * Specifies the scheduling options for the instances that are created from these properties. */ scheduling: outputs.compute.alpha.SchedulingResponse; /** * [Input Only] Secure tags to apply to this instance. Maximum number of secure tags allowed is 50. Note that for MachineImage, this is not supported yet. */ secureTags: string[]; /** * A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances. */ serviceAccounts: outputs.compute.alpha.ServiceAccountResponse[]; /** * Mapping of user defined keys to ServiceIntegrationSpec. */ serviceIntegrationSpecs: { [key: string]: string; }; /** * Note that for MachineImage, this is not supported yet. */ shieldedInstanceConfig: outputs.compute.alpha.ShieldedInstanceConfigResponse; /** * Specifies the Shielded VM options for the instances that are created from these properties. */ shieldedVmConfig: outputs.compute.alpha.ShieldedVmConfigResponse; /** * A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. */ tags: outputs.compute.alpha.TagsResponse; } interface InstantSnapshotResourceStatusResponse { /** * The storage size of this instant snapshot. */ storageSizeBytes: string; } /** * HttpRouteRuleMatch criteria for field values that must stay within the specified integer range. */ interface Int64RangeMatchResponse { /** * The end of the range (exclusive) in signed long integer format. */ rangeEnd: string; /** * The start of the range (inclusive) in signed long integer format. */ rangeStart: string; } interface InterconnectAttachmentConfigurationConstraintsBgpPeerASNRangeResponse { max: number; min: number; } interface InterconnectAttachmentConfigurationConstraintsResponse { /** * Whether the attachment's BGP session requires/allows/disallows BGP MD5 authentication. This can take one of the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud Interconnect connection to a remote cloud provider that requires BGP MD5 authentication has the interconnectRemoteLocation attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and that property is propagated to the attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is returned if MD5 is requested. */ bgpMd5: string; /** * List of ASN ranges that the remote location is known to support. Formatted as an array of inclusive ranges {min: min-value, max: max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}] allows the peer ASN to be 123 or anything in the range 64512-65534. This field is only advisory. Although the API accepts other ranges, these are the ranges that we recommend. */ bgpPeerAsnRanges: outputs.compute.alpha.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRangeResponse[]; } /** * Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments. */ interface InterconnectAttachmentPartnerMetadataResponse { /** * Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance "Chicago 1". This value may be validated to match approved Partner values. */ interconnectName: string; /** * Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values. */ partnerName: string; /** * URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values. */ portalUrl: string; } /** * Information for an interconnect attachment when this belongs to an interconnect of type DEDICATED. */ interface InterconnectAttachmentPrivateInfoResponse { /** * 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region. */ tag8021q: number; } /** * Describes a single physical circuit between the Customer and Google. CircuitInfo objects are created by Google, so all fields are output only. */ interface InterconnectCircuitInfoResponse { /** * Customer-side demarc ID for this circuit. */ customerDemarcId: string; /** * Google-assigned unique ID for this circuit. Assigned at circuit turn-up. */ googleCircuitId: string; /** * Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by Google to the customer in the LOA. */ googleDemarcId: string; } /** * Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode. */ interface InterconnectMacsecPreSharedKeyResponse { /** * A name for this pre-shared key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * A RFC3339 timestamp on or after which the key is valid. startTime can be in the future. If the keychain has a single key, startTime can be omitted. If the keychain has multiple keys, startTime is mandatory for each key. The start times of keys must be in increasing order. The start times of two consecutive keys must be at least 6 hours apart. */ startTime: string; } /** * Configuration information for enabling Media Access Control security (MACsec) on this Cloud Interconnect connection between Google and your on-premises router. */ interface InterconnectMacsecResponse { /** * If set to true, the Interconnect connection is configured with a should-secure MACsec security policy, that allows the Google router to fallback to cleartext traffic if the MKA session cannot be established. By default, the Interconnect connection is configured with a must-secure security policy that drops all traffic if the MKA session cannot be established with your router. */ failOpen: boolean; /** * A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link. */ preSharedKeys: outputs.compute.alpha.InterconnectMacsecPreSharedKeyResponse[]; } /** * Description of a planned outage on this Interconnect. */ interface InterconnectOutageNotificationResponse { /** * If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected. */ affectedCircuits: string[]; /** * A description about the purpose of the outage. */ description: string; /** * Scheduled end time for the outage (milliseconds since Unix epoch). */ endTime: string; /** * Form this outage is expected to take, which can take one of the following values: - OUTAGE: The Interconnect may be completely out of service for some or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain up, but with reduced bandwidth. Note that the versions of this enum prefixed with "IT_" have been deprecated in favor of the unprefixed values. */ issueType: string; /** * Unique identifier for this outage notification. */ name: string; /** * The party that generated this notification, which can take the following value: - GOOGLE: this notification as generated by Google. Note that the value of NSRC_GOOGLE has been deprecated in favor of GOOGLE. */ source: string; /** * Scheduled start time for the outage (milliseconds since Unix epoch). */ startTime: string; /** * State of this notification, which can take one of the following values: - ACTIVE: This outage notification is active. The event could be in the past, present, or future. See start_time and end_time for scheduling. - CANCELLED: The outage associated with this notification was cancelled before the outage was due to start. - COMPLETED: The outage associated with this notification is complete. Note that the versions of this enum prefixed with "NS_" have been deprecated in favor of the unprefixed values. */ state: string; } /** * [Deprecated] This message specifies a header location to extract JWT token. This message specifies a header location to extract JWT token. */ interface JwtHeaderResponse { /** * The HTTP header name. */ name: string; /** * The value prefix. The value format is "value_prefix" For example, for "Authorization: Bearer ", value_prefix="Bearer " with a space at the end. */ valuePrefix: string; } /** * [Deprecated] JWT configuration for origin authentication. JWT configuration for origin authentication. */ interface JwtResponse { /** * A JWT containing any of these audiences will be accepted. The service name will be accepted if audiences is empty. Examples: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com */ audiences: string[]; /** * Identifies the issuer that issued the JWT, which is usually a URL or an email address. Examples: https://securetoken.google.com, 1234567-compute@developer.gserviceaccount.com */ issuer: string; /** * The provider's public key set to validate the signature of the JWT. */ jwksPublicKeys: string; /** * jwt_headers and jwt_params define where to extract the JWT from an HTTP request. If no explicit location is specified, the following default locations are tried in order: 1. The Authorization header using the Bearer schema. See `here `_. Example: Authorization: Bearer . 2. `access_token` query parameter. See `this `_ Multiple JWTs can be verified for a request. Each JWT has to be extracted from the locations its issuer specified or from the default locations. This field is set if JWT is sent in a request header. This field specifies the header name. For example, if `header=x-goog-iap-jwt-assertion`, the header format will be x-goog-iap-jwt-assertion: . */ jwtHeaders: outputs.compute.alpha.JwtHeaderResponse[]; /** * This field is set if JWT is sent in a query parameter. This field specifies the query parameter name. For example, if jwt_params[0] is jwt_token, the JWT format in the query parameter is /path?jwt_token=. */ jwtParams: string[]; } /** * Commitment for a particular license resource. */ interface LicenseResourceCommitmentResponse { /** * The number of licenses purchased. */ amount: string; /** * Specifies the core range of the instance for which this license applies. */ coresPerLicense: string; /** * Any applicable license URI. */ license: string; } interface LicenseResourceRequirementsResponse { /** * Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start. */ minGuestCpuCount: number; /** * Minimum memory required to use the Instance. Enforced at Instance creation and Instance start. */ minMemoryMb: number; } interface LocalDiskResponse { /** * Specifies the number of such disks. */ diskCount: number; /** * Specifies the size of the disk in base-2 GB. */ diskSizeGb: number; /** * Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. */ diskType: string; } /** * Provides a localized error message that is safe to return to the user which can be attached to an RPC error. */ interface LocalizedMessageResponse { /** * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" */ locale: string; /** * The localized error message in the above locale. */ message: string; } /** * Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region). */ interface LocationPolicyResponse { /** * Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a. */ locations: { [key: string]: string; }; /** * Strategy for distributing VMs across zones in a region. */ targetShape: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigCloudAuditOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ authorizationLoggingOptions: outputs.compute.alpha.AuthorizationLoggingOptionsResponse; /** * This is deprecated and has no effect. Do not use. */ logName: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigCounterOptionsCustomFieldResponse { /** * This is deprecated and has no effect. Do not use. */ name: string; /** * This is deprecated and has no effect. Do not use. */ value: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigCounterOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ customFields: outputs.compute.alpha.LogConfigCounterOptionsCustomFieldResponse[]; /** * This is deprecated and has no effect. Do not use. */ field: string; /** * This is deprecated and has no effect. Do not use. */ metric: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigDataAccessOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ logMode: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigResponse { /** * This is deprecated and has no effect. Do not use. */ cloudAudit: outputs.compute.alpha.LogConfigCloudAuditOptionsResponse; /** * This is deprecated and has no effect. Do not use. */ counter: outputs.compute.alpha.LogConfigCounterOptionsResponse; /** * This is deprecated and has no effect. Do not use. */ dataAccess: outputs.compute.alpha.LogConfigDataAccessOptionsResponse; } /** * [Deprecated] Custom authenticator credentials. Custom authenticator credentials. */ interface MetadataCredentialsFromPluginResponse { /** * Plugin name. */ name: string; /** * A text proto that conforms to a Struct type definition interpreted by the plugin. */ structConfig: string; } /** * MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer. */ interface MetadataFilterLabelMatchResponse { /** * Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long. */ name: string; /** * The value of the label must match the specified value. value can have a maximum length of 1024 characters. */ value: string; } /** * Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers. */ interface MetadataFilterResponse { /** * The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries. */ filterLabels: outputs.compute.alpha.MetadataFilterLabelMatchResponse[]; /** * Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. */ filterMatchCriteria: string; } /** * Metadata */ interface MetadataItemsItemResponse { /** * Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project. */ key: string; /** * Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB). */ value: string; } /** * A metadata key/value entry. */ interface MetadataResponse { /** * Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource. */ fingerprint: string; /** * Array of key/value pairs. The total size of all keys and values must be less than 512 KB. */ items: outputs.compute.alpha.MetadataItemsItemResponse[]; /** * Type of the resource. Always compute#metadata for metadata. */ kind: string; } /** * Represents an amount of money with its currency type. */ interface MoneyResponse { /** * The three-letter currency code defined in ISO 4217. */ currencyCode: string; /** * Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. */ nanos: number; /** * The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. */ units: string; } /** * [Deprecated] Configuration for the mutual Tls mode for peer authentication. Configuration for the mutual Tls mode for peer authentication. */ interface MutualTlsResponse { /** * Specifies if the server TLS is configured to be strict or permissive. This field can be set to one of the following: STRICT: Client certificate must be presented, connection is in TLS. PERMISSIVE: Client certificate can be omitted, connection can be either plaintext or TLS. */ mode: string; } /** * The named port. For example: <"http", 80>. */ interface NamedPortResponse { /** * The name for this named port. The name must be 1-63 characters long, and comply with RFC1035. */ name: string; /** * The port number, which can be a value between 1 and 65535. */ port: number; } /** * [Output Only] A connection connected to this network attachment. */ interface NetworkAttachmentConnectedEndpointResponse { /** * The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless. */ ipAddress: string; /** * The IPv6 address assigned to the producer instance network interface. This is only assigned when the stack types of both the instance network interface and the consumer subnet are IPv4_IPv6. */ ipv6Address: string; /** * The project id or number of the interface to which the IP was assigned. */ projectIdOrNum: string; /** * Alias IP ranges from the same subnetwork. */ secondaryIpCidrRanges: string[]; /** * The status of a connected endpoint to this network attachment. */ status: string; /** * The subnetwork used to assign the IP to the producer instance network interface. */ subnetwork: string; /** * The CIDR range of the subnet from which the IPv4 internal IP was allocated from. */ subnetworkCidrRange: string; } /** * Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupAppEngineResponse { /** * Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: "default", "my-service". */ service: string; /** * A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. */ urlMask: string; /** * Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: "v1", "v2". */ version: string; } /** * Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupCloudFunctionResponse { /** * A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: "func1". */ function: string; /** * A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs " mydomain.com/function1" and "mydomain.com/function2" can be backed by the same Serverless NEG with URL mask "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. */ urlMask: string; } /** * Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupCloudRunResponse { /** * Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: "run-service". */ service: string; /** * Optional Cloud Run tag represents the "named-revision" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: "revision-0010". */ tag: string; /** * A template to parse and fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. */ urlMask: string; } /** * Load balancing specific fields for network endpoint group. */ interface NetworkEndpointGroupLbNetworkEndpointGroupResponse { /** * The default port used if the port number is not specified in the network endpoint. [Deprecated] This field is deprecated. * * @deprecated The default port used if the port number is not specified in the network endpoint. [Deprecated] This field is deprecated. */ defaultPort: number; /** * The URL of the network to which all network endpoints in the NEG belong. Uses "default" project network if unspecified. [Deprecated] This field is deprecated. * * @deprecated The URL of the network to which all network endpoints in the NEG belong. Uses "default" project network if unspecified. [Deprecated] This field is deprecated. */ network: string; /** * Optional URL of the subnetwork to which all network endpoints in the NEG belong. [Deprecated] This field is deprecated. * * @deprecated Optional URL of the subnetwork to which all network endpoints in the NEG belong. [Deprecated] This field is deprecated. */ subnetwork: string; /** * The URL of the zone where the network endpoint group is located. [Deprecated] This field is deprecated. * * @deprecated [Output Only] The URL of the zone where the network endpoint group is located. [Deprecated] This field is deprecated. */ zone: string; } /** * All data that is specifically relevant to only network endpoint groups of type PRIVATE_SERVICE_CONNECT. */ interface NetworkEndpointGroupPscDataResponse { /** * Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB. */ consumerPscAddress: string; /** * The PSC connection id of the PSC Network Endpoint Group Consumer. */ pscConnectionId: string; /** * The connection status of the PSC Forwarding Rule. */ pscConnectionStatus: string; } /** * Configuration for a serverless network endpoint group (NEG). The platform must be provided. Note: The target backend service must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupServerlessDeploymentResponse { /** * The platform of the backend target(s) of this NEG. The only supported value is API Gateway: apigateway.googleapis.com. */ platform: string; /** * The user-defined name of the workload/instance. This value must be provided explicitly or in the urlMask. The resource identified by this value is platform-specific and is as follows: 1. API Gateway: The gateway ID 2. App Engine: The service name 3. Cloud Functions: The function name 4. Cloud Run: The service name */ resource: string; /** * A template to parse platform-specific fields from a request URL. URL mask allows for routing to multiple resources on the same serverless platform without having to create multiple Network Endpoint Groups and backend resources. The fields parsed by this template are platform-specific and are as follows: 1. API Gateway: The gateway ID 2. App Engine: The service and version 3. Cloud Functions: The function name 4. Cloud Run: The service and tag */ urlMask: string; /** * The optional resource version. The version identified by this value is platform-specific and is follows: 1. API Gateway: Unused 2. App Engine: The service version 3. Cloud Functions: Unused 4. Cloud Run: The service tag */ version: string; } /** * A network interface resource attached to an instance. */ interface NetworkInterfaceResponse { /** * An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access. */ accessConfigs: outputs.compute.alpha.AccessConfigResponse[]; /** * An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks. */ aliasIpRanges: outputs.compute.alpha.AliasIpRangeResponse[]; /** * Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface. The request will fail with error 400 Bad Request if the fingerprint is not provided, or 412 Precondition Failed if the fingerprint is out of date. */ fingerprint: string; /** * The prefix length of the primary internal IPv6 range. */ internalIpv6PrefixLength: number; /** * An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. */ ipv6AccessConfigs: outputs.compute.alpha.AccessConfigResponse[]; /** * One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork. Valid only if stackType is IPV4_IPV6. */ ipv6AccessType: string; /** * An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork. */ ipv6Address: string; /** * Type of the resource. Always compute#networkInterface for network interfaces. */ kind: string; /** * The name of the network interface, which is generated by the server. For a VM, the network interface uses the nicN naming format. Where N is a value between 0 and 7. The default interface value is nic0. */ name: string; /** * URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default */ network: string; /** * The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}. */ networkAttachment: string; /** * An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system. */ networkIP: string; /** * The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. */ nicType: string; /** * Name of the parent network interface of a VLAN based nic. If this field is specified, vlan must be set. */ parentNicName: string; /** * The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users. */ queueCount: number; /** * The stack type for this network interface. To assign only IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set at instance creation and update network interface operations. */ stackType: string; /** * SubInterfaces help enable L2 communication for the instance over subnetworks that support L2. Every network interface will get a default untagged (vlan not specified) subinterface. Users can specify additional tagged subinterfaces which are sub-fields to the Network Interface. */ subinterfaces: outputs.compute.alpha.NetworkInterfaceSubInterfaceResponse[]; /** * The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork */ subnetwork: string; /** * VLAN tag of a VLAN based network interface, must be in range from 2 to 4094 inclusively. This field is mandatory if the parent network interface name is set. */ vlan: number; } interface NetworkInterfaceSubInterfaceResponse { /** * An IPv4 internal IP address to assign to the instance for this subinterface. If specified, ip_allocation_mode should be set to ALLOCATE_IP. */ ipAddress: string; ipAllocationMode: string; /** * If specified, this subnetwork must belong to the same network as that of the network interface. If not specified the subnet of network interface will be used. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork */ subnetwork: string; /** * VLAN tag. Should match the VLAN(s) supported by the subnetwork to which this subinterface is connecting. */ vlan: number; } /** * A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering. */ interface NetworkPeeringResponse { /** * Whether Cloud Routers in this network can automatically advertise subnets from the peer network. */ advertisePeerSubnetsViaRouters: boolean; /** * This field will be deprecated soon. Use the exchange_subnet_routes field instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE. */ autoCreateRoutes: boolean; /** * Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE. */ exchangeSubnetRoutes: boolean; /** * Whether to export the custom routes to peer network. The default value is false. */ exportCustomRoutes: boolean; /** * Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. IPv4 special-use ranges are always exported to peers and are not controlled by this field. */ exportSubnetRoutesWithPublicIp: boolean; /** * Whether to import the custom routes from peer network. The default value is false. */ importCustomRoutes: boolean; /** * Whether subnet routes with public IP range are imported. The default value is false. IPv4 special-use ranges are always imported from peers and are not controlled by this field. */ importSubnetRoutesWithPublicIp: boolean; /** * Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network. */ network: string; /** * Maximum Transmission Unit in bytes. */ peerMtu: number; /** * Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY. */ stackType: string; /** * State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network. */ state: string; /** * Details about the current state of the peering. */ stateDetails: string; } interface NetworkPerformanceConfigResponse { externalIpEgressBandwidthTier: string; totalEgressBandwidthTier: string; } /** * A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. */ interface NetworkRoutingConfigResponse { /** * Enable comparison of Multi-Exit Discriminators (MED) across routes with different neighbor ASNs when using the STANDARD BGP best path selection algorithm. */ bgpAlwaysCompareMed: boolean; /** * The BGP best path selection algorithm to be employed within this network for dynamic routes learned by Cloud Routers. Can be LEGACY (default) or STANDARD. */ bgpBestPathSelectionMode: string; /** * Allows to define a preferred approach for handling inter-region cost in the selection process when using the STANDARD BGP best path selection algorithm. Can be DEFAULT or ADD_COST_TO_MED. */ bgpInterRegionCost: string; /** * The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions. */ routingMode: string; } interface NodeGroupAutoscalingPolicyResponse { /** * The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100. */ maxNodes: number; /** * The minimum number of nodes that the group should have. */ minNodes: number; /** * The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes. */ mode: string; } /** * Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window. */ interface NodeGroupMaintenanceWindowResponse { /** * [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. */ duration: string; /** * [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. */ maintenanceDuration: outputs.compute.alpha.DurationResponse; /** * Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. */ startTime: string; } interface NodeTemplateNodeTypeFlexibilityResponse { cpus: string; localSsd: string; memory: string; } /** * Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint. */ interface NotificationEndpointGrpcSettingsResponse { /** * Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3 */ authority: string; /** * Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name. */ endpoint: string; /** * Optional. If specified, this field is used to populate the "name" field in gRPC requests. */ payloadName: string; /** * Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. Can only be set for regional notification endpoints. */ resendInterval: outputs.compute.alpha.DurationResponse; /** * How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number. */ retryDurationSec: number; } /** * [Deprecated] Configuration for the origin authentication method. Configuration for the origin authentication method. */ interface OriginAuthenticationMethodResponse { jwt: outputs.compute.alpha.JwtResponse; } /** * Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. */ interface OutlierDetectionResponse { /** * The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a backend endpoint is returned back to the load balancing pool, it can be ejected again in another ejection analysis. Thus, the total ejection time is equal to the base ejection time multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or 30s. */ baseEjectionTime: outputs.compute.alpha.DurationResponse; /** * Number of consecutive errors before a backend endpoint is ejected from the load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. */ consecutiveErrors: number; /** * The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. */ consecutiveGatewayFailure: number; /** * The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. */ enforcingConsecutiveErrors: number; /** * The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. */ enforcingConsecutiveGatewayFailure: number; /** * The percentage chance that a backend endpoint will be ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service uses Serverless NEG. */ enforcingSuccessRate: number; /** * Time interval between ejection analysis sweeps. This can result in both new ejections and backend endpoints being returned to service. The interval is equal to the number of seconds as defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in outlierDetection.interval.nanos. Defaults to 1 second. */ interval: outputs.compute.alpha.DurationResponse; /** * Maximum percentage of backend endpoints in the load balancing pool for the backend service that can be ejected if the ejection conditions are met. Defaults to 50%. */ maxEjectionPercent: number; /** * The number of backend endpoints in the load balancing pool that must have enough request volume to detect success rate outliers. If the number of backend endpoints is fewer than this setting, outlier detection via success rate statistics is not performed for any backend endpoint in the load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG. */ successRateMinimumHosts: number; /** * The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this backend endpoint in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that backend endpoint. Defaults to 100. Not supported when the backend service uses Serverless NEG. */ successRateRequestVolume: number; /** * This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * successRateStdevFactor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. Not supported when the backend service uses Serverless NEG. */ successRateStdevFactor: number; } interface PacketMirroringFilterResponse { /** * IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. */ cidrRanges: string[]; /** * Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH. */ direction: string; /** * Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. */ ipProtocols: string[]; } interface PacketMirroringForwardingRuleInfoResponse { /** * Unique identifier for the forwarding rule; defined by the server. */ canonicalUrl: string; /** * Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic. */ url: string; } interface PacketMirroringMirroredResourceInfoInstanceInfoResponse { /** * Unique identifier for the instance; defined by the server. */ canonicalUrl: string; /** * Resource URL to the virtual machine instance which is being mirrored. */ url: string; } interface PacketMirroringMirroredResourceInfoResponse { /** * A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances. */ instances: outputs.compute.alpha.PacketMirroringMirroredResourceInfoInstanceInfoResponse[]; /** * A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks. */ subnetworks: outputs.compute.alpha.PacketMirroringMirroredResourceInfoSubnetInfoResponse[]; /** * A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored. */ tags: string[]; } interface PacketMirroringMirroredResourceInfoSubnetInfoResponse { /** * Unique identifier for the subnetwork; defined by the server. */ canonicalUrl: string; /** * Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored. */ url: string; } interface PacketMirroringNetworkInfoResponse { /** * Unique identifier for the network; defined by the server. */ canonicalUrl: string; /** * URL of the network resource. */ url: string; } /** * A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used. */ interface PathMatcherResponse { /** * defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. This policy takes effect at the PathMatcher level and applies only when no policy has been defined for the error code at lower levels like RouteRule and PathRule within this PathMatcher. If an error code does not have a policy defined in defaultCustomErrorResponsePolicy, then a policy defined for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client. defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers. */ defaultCustomErrorResponsePolicy: outputs.compute.alpha.CustomErrorResponsePolicyResponse; /** * defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction. */ defaultRouteAction: outputs.compute.alpha.HttpRouteActionResponse; /** * The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use */ defaultService: string; /** * When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. */ defaultUrlRedirect: outputs.compute.alpha.HttpRedirectActionResponse; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ headerAction: outputs.compute.alpha.HttpHeaderActionResponse; /** * The name to which this PathMatcher is referred by the HostRule. */ name: string; /** * The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set. */ pathRules: outputs.compute.alpha.PathRuleResponse[]; /** * The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules. */ routeRules: outputs.compute.alpha.HttpRouteRuleResponse[]; } /** * A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL. */ interface PathRuleResponse { /** * customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. If a policy for an error code is not configured for the PathRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors - A PathRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in PathRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. customErrorResponsePolicy is supported only for global external Application Load Balancers. */ customErrorResponsePolicy: outputs.compute.alpha.CustomErrorResponsePolicyResponse; /** * The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here. */ paths: string[]; /** * In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path rule's routeAction. */ routeAction: outputs.compute.alpha.HttpRouteActionResponse; /** * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. */ service: string; /** * When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. */ urlRedirect: outputs.compute.alpha.HttpRedirectActionResponse; } /** * [Deprecated] Configuration for the peer authentication method. Configuration for the peer authentication method. */ interface PeerAuthenticationMethodResponse { /** * Set if mTLS is used for peer authentication. */ mtls: outputs.compute.alpha.MutualTlsResponse; } /** * Custom constraint that specifies a key and a list of allowed values for Istio attributes. */ interface PermissionConstraintResponse { /** * Key of the constraint. */ key: string; /** * A list of allowed values. */ values: string[]; } /** * [Deprecated] All fields defined in a permission are ANDed. */ interface PermissionResponse { /** * Extra custom constraints. The constraints are ANDed together. */ constraints: outputs.compute.alpha.PermissionConstraintResponse[]; /** * Used in Ingress or Egress Gateway cases to specify hosts that the policy applies to. Exact match, prefix match, and suffix match are supported. */ hosts: string[]; /** * HTTP method. */ methods: string[]; /** * Negate of hosts. Specifies exclusions. */ notHosts: string[]; /** * Negate of methods. Specifies exclusions. */ notMethods: string[]; /** * Negate of paths. Specifies exclusions. */ notPaths: string[]; /** * Negate of ports. Specifies exclusions. */ notPorts: string[]; /** * HTTP request paths or gRPC methods. Exact match, prefix match, and suffix match are supported. */ paths: string[]; /** * Port names or numbers. */ ports: string[]; } /** * [Deprecated] All fields defined in a principal are ANDed. */ interface PrincipalResponse { /** * An expression to specify custom condition. */ condition: string; /** * The groups the principal belongs to. Exact match, prefix match, and suffix match are supported. */ groups: string[]; /** * IPv4 or IPv6 address or range (In CIDR format) */ ips: string[]; /** * The namespaces. Exact match, prefix match, and suffix match are supported. */ namespaces: string[]; /** * Negate of groups. Specifies exclusions. */ notGroups: string[]; /** * Negate of IPs. Specifies exclusions. */ notIps: string[]; /** * Negate of namespaces. Specifies exclusions. */ notNamespaces: string[]; /** * Negate of users. Specifies exclusions. */ notUsers: string[]; /** * A map of Istio attribute to expected values. Exact match, prefix match, and suffix match are supported for values. For example, `request.headers[version]: "v1"`. The properties are ANDed together. */ properties: { [key: string]: string; }; /** * The user names/IDs or service accounts. Exact match, prefix match, and suffix match are supported. */ users: string[]; } /** * Represents a CIDR range which can be used to assign addresses. */ interface PublicAdvertisedPrefixPublicDelegatedPrefixResponse { /** * The IP address range of the public delegated prefix */ ipRange: string; /** * The name of the public delegated prefix */ name: string; /** * The project number of the public delegated prefix */ project: string; /** * The region of the public delegated prefix if it is regional. If absent, the prefix is global. */ region: string; /** * The status of the public delegated prefix. Possible values are: INITIALIZING: The public delegated prefix is being initialized and addresses cannot be created yet. ANNOUNCED: The public delegated prefix is active. */ status: string; } /** * Represents a sub PublicDelegatedPrefix. */ interface PublicDelegatedPrefixPublicDelegatedSubPrefixResponse { /** * The allocatable prefix length supported by this PublicDelegatedSubPrefix. */ allocatablePrefixLength: number; /** * Name of the project scoping this PublicDelegatedSubPrefix. */ delegateeProject: string; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * The IP address range, in CIDR format, represented by this sub public delegated prefix. */ ipCidrRange: string; /** * Whether the sub prefix is delegated to create Address resources in the delegatee project. */ isAddress: boolean; /** * The PublicDelegatedSubPrefix mode for IPv6 only. */ mode: string; /** * The name of the sub public delegated prefix. */ name: string; /** * The region of the sub public delegated prefix if it is regional. If absent, the sub prefix is global. */ region: string; /** * The status of the sub public delegated prefix. */ status: string; } interface QueuedResourceStatusFailedDataErrorErrorsItemErrorDetailsItemResponse { errorInfo: outputs.compute.alpha.ErrorInfoResponse; help: outputs.compute.alpha.HelpResponse; localizedMessage: outputs.compute.alpha.LocalizedMessageResponse; quotaInfo: outputs.compute.alpha.QuotaExceededInfoResponse; } interface QueuedResourceStatusFailedDataErrorErrorsItemResponse { /** * The error type identifier for this error. */ code: string; /** * An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. */ errorDetails: outputs.compute.alpha.QueuedResourceStatusFailedDataErrorErrorsItemErrorDetailsItemResponse[]; /** * Indicates the field in the request that caused the error. This property is optional. */ location: string; /** * An optional, human-readable error message. */ message: string; } /** * The error(s) that caused the QueuedResource to enter the FAILED state. */ interface QueuedResourceStatusFailedDataErrorResponse { /** * The array of errors encountered while processing this operation. */ errors: outputs.compute.alpha.QueuedResourceStatusFailedDataErrorErrorsItemResponse[]; } /** * Additional status detail for the FAILED state. */ interface QueuedResourceStatusFailedDataResponse { /** * The error(s) that caused the QueuedResource to enter the FAILED state. */ error: outputs.compute.alpha.QueuedResourceStatusFailedDataErrorResponse; } /** * [Output only] Result of queuing and provisioning based on deferred capacity. */ interface QueuedResourceStatusResponse { /** * Additional status detail for the FAILED state. */ failedData: outputs.compute.alpha.QueuedResourceStatusFailedDataResponse; /** * [Output only] Fully qualified URL of the provisioning GCE operation to track the provisioning along with provisioning errors. The referenced operation may not exist after having been deleted or expired. */ provisioningOperations: string[]; /** * Constraints for the time when the resource(s) start provisioning. Always exposed as absolute times. */ queuingPolicy: outputs.compute.alpha.QueuingPolicyResponse; } /** * Queuing parameters for the requested deferred capacity. */ interface QueuingPolicyResponse { /** * Relative deadline for waiting for capacity. */ validUntilDuration: outputs.compute.alpha.DurationResponse; /** * Absolute deadline for waiting for capacity in RFC3339 text format. */ validUntilTime: string; } /** * Additional details for quota exceeded error for resource quota. */ interface QuotaExceededInfoResponse { /** * The map holding related quota dimensions. */ dimensions: { [key: string]: string; }; /** * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. */ futureLimit: number; /** * Current effective quota limit. The limit's unit depends on the quota type or metric. */ limit: number; /** * The name of the quota limit. */ limitName: string; /** * The Compute Engine quota metric name. */ metricName: string; /** * Rollout status of the future quota limit. */ rolloutStatus: string; } interface RbacPolicyResponse { /** * Name of the RbacPolicy. */ name: string; /** * The list of permissions. */ permissions: outputs.compute.alpha.PermissionResponse[]; /** * The list of principals. */ principals: outputs.compute.alpha.PrincipalResponse[]; } interface RegionSslPolicyWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface RegionSslPolicyWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.compute.alpha.RegionSslPolicyWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow. */ interface RequestMirrorPolicyResponse { /** * The full or partial URL to the BackendService resource being mirrored to. The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. Serverless NEG backends are not currently supported as a mirrored backend service. */ backendService: string; } /** * Specifies the reservations that this instance can consume from. */ interface ReservationAffinityResponse { /** * Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples. */ consumeReservationType: string; /** * Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value. */ key: string; /** * Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project. */ values: string[]; } /** * Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources. */ interface ReservationResponse { /** * Reservation for aggregated resources, providing shape flexibility. */ aggregateReservation: outputs.compute.alpha.AllocationAggregateReservationResponse; /** * Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment. */ commitment: string; /** * Creation timestamp in RFC3339 text format. */ creationTimestamp: string; /** * Duration time relative to reservation creation when GCE will automatically delete this resource. */ deleteAfterDuration: outputs.compute.alpha.DurationResponse; /** * Absolute time in future when the reservation will be auto-deleted by GCE. Timestamp is represented in RFC3339 text format. */ deleteAtTime: string; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * Type of the resource. Always compute#reservations for reservations. */ kind: string; /** * The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * Resource policies to be added to this reservation. The key is defined by user, and the value is resource policy url. This is to define placement policy with reservation. */ resourcePolicies: { [key: string]: string; }; /** * Status information for Reservation resource. */ resourceStatus: outputs.compute.alpha.AllocationResourceStatusResponse; /** * Reserved for future use. */ satisfiesPzs: boolean; /** * Server-defined fully-qualified URL for this resource. */ selfLink: string; /** * Server-defined URL for this resource with the resource id. */ selfLinkWithId: string; /** * Specify share-settings to create a shared reservation. This property is optional. For more information about the syntax and options for this field and its subfields, see the guide for creating a shared reservation. */ shareSettings: outputs.compute.alpha.ShareSettingsResponse; /** * Reservation for instances with specific machine shapes. */ specificReservation: outputs.compute.alpha.AllocationSpecificSKUReservationResponse; /** * Indicates whether the reservation can be consumed by VMs with affinity for "any" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation. */ specificReservationRequired: boolean; /** * The status of the reservation. */ status: string; /** * Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment. */ zone: string; } /** * Commitment for a particular resource (a Commitment is composed of one or more of these). */ interface ResourceCommitmentResponse { /** * Name of the accelerator type resource. Applicable only when the type is ACCELERATOR. */ acceleratorType: string; /** * The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU. */ amount: string; /** * Type of resource for which this commitment applies. Possible values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR. */ type: string; } /** * Time window specified for daily operations. */ interface ResourcePolicyDailyCycleResponse { /** * Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. */ daysInCycle: number; /** * [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. */ duration: string; /** * Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. */ startTime: string; } /** * Resource policy for disk consistency groups. */ interface ResourcePolicyDiskConsistencyGroupPolicyResponse { } /** * A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality */ interface ResourcePolicyGroupPlacementPolicyResponse { /** * The number of availability domains to spread instances across. If two instances are in different availability domain, they are not in the same low latency network. */ availabilityDomainCount: number; /** * Specifies network collocation */ collocation: string; /** * Specifies network locality */ locality: string; /** * Specifies the number of max logical switches. */ maxDistance: number; /** * Scope specifies the availability domain to which the VMs should be spread. */ scope: string; /** * Specifies the number of slices in a multislice workload. */ sliceCount: number; /** * Specifies instances to hosts placement relationship */ style: string; /** * Specifies the shape of the TPU slice */ tpuTopology: string; /** * Number of VMs in this placement group. Google does not recommend that you use this field unless you use a compact policy and you want your policy to work only if it contains this exact number of VMs. */ vmCount: number; } /** * Time window specified for hourly operations. */ interface ResourcePolicyHourlyCycleResponse { /** * [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. */ duration: string; /** * Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle. */ hoursInCycle: number; /** * Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. */ startTime: string; } /** * An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance. */ interface ResourcePolicyInstanceSchedulePolicyResponse { /** * The expiration time of the schedule. The timestamp is an RFC3339 string. */ expirationTime: string; /** * The start time of the schedule. The timestamp is an RFC3339 string. */ startTime: string; /** * Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: https://wikipedia.org/wiki/Tz_database. */ timeZone: string; /** * Specifies the schedule for starting instances. */ vmStartSchedule: outputs.compute.alpha.ResourcePolicyInstanceSchedulePolicyScheduleResponse; /** * Specifies the schedule for stopping instances. */ vmStopSchedule: outputs.compute.alpha.ResourcePolicyInstanceSchedulePolicyScheduleResponse; } /** * Schedule for an instance operation. */ interface ResourcePolicyInstanceSchedulePolicyScheduleResponse { /** * Specifies the frequency for the operation, using the unix-cron format. */ schedule: string; } interface ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse { /** * The last time the schedule successfully ran. The timestamp is an RFC3339 string. */ lastRunStartTime: string; /** * The next time the schedule is planned to run. The actual time might be slightly different. The timestamp is an RFC3339 string. */ nextRunStartTime: string; } /** * Contains output only fields. Use this sub-message for all output fields set on ResourcePolicy. The internal structure of this "status" field should mimic the structure of ResourcePolicy proto specification. */ interface ResourcePolicyResourceStatusResponse { /** * Specifies a set of output values reffering to the instance_schedule_policy system status. This field should have the same name as corresponding policy field. */ instanceSchedulePolicy: outputs.compute.alpha.ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse; } /** * A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained. */ interface ResourcePolicySnapshotSchedulePolicyResponse { /** * Retention policy applied to snapshots created by this resource policy. */ retentionPolicy: outputs.compute.alpha.ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse; /** * A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy. */ schedule: outputs.compute.alpha.ResourcePolicySnapshotSchedulePolicyScheduleResponse; /** * Properties with which snapshots are created such as labels, encryption keys. */ snapshotProperties: outputs.compute.alpha.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse; } /** * Policy for retention of scheduled snapshots. */ interface ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse { /** * Maximum age of the snapshot that is allowed to be kept. */ maxRetentionDays: number; onPolicySwitch: string; /** * Specifies the behavior to apply to scheduled snapshots when the source disk is deleted. */ onSourceDiskDelete: string; } /** * A schedule for disks where the schedueled operations are performed. */ interface ResourcePolicySnapshotSchedulePolicyScheduleResponse { dailySchedule: outputs.compute.alpha.ResourcePolicyDailyCycleResponse; hourlySchedule: outputs.compute.alpha.ResourcePolicyHourlyCycleResponse; weeklySchedule: outputs.compute.alpha.ResourcePolicyWeeklyCycleResponse; } /** * Specified snapshot properties for scheduled snapshots created by this policy. */ interface ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse { /** * Chain name that the snapshot is created in. */ chainName: string; /** * Indication to perform a 'guest aware' snapshot. */ guestFlush: boolean; /** * Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty. */ labels: { [key: string]: string; }; /** * Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional). */ storageLocations: string[]; } /** * A concurrency control configuration. Defines a group config that, when attached to an instance, recognizes that instance as part of a group of instances where only up the concurrency_limit of instances in that group can undergo simultaneous maintenance. For more information: go/concurrency-control-design-doc */ interface ResourcePolicyVmMaintenancePolicyConcurrencyControlResponse { concurrencyLimit: number; } /** * A maintenance window for VMs. When set, we restrict our maintenance operations to this window. */ interface ResourcePolicyVmMaintenancePolicyMaintenanceWindowResponse { dailyMaintenanceWindow: outputs.compute.alpha.ResourcePolicyDailyCycleResponse; } interface ResourcePolicyVmMaintenancePolicyResponse { concurrencyControlGroup: outputs.compute.alpha.ResourcePolicyVmMaintenancePolicyConcurrencyControlResponse; /** * Maintenance windows that are applied to VMs covered by this policy. */ maintenanceWindow: outputs.compute.alpha.ResourcePolicyVmMaintenancePolicyMaintenanceWindowResponse; } interface ResourcePolicyWeeklyCycleDayOfWeekResponse { /** * Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. */ day: string; /** * [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. */ duration: string; /** * Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. */ startTime: string; } /** * Time window specified for weekly operations. */ interface ResourcePolicyWeeklyCycleResponse { /** * Up to 7 intervals/windows, one for each day of the week. */ dayOfWeeks: outputs.compute.alpha.ResourcePolicyWeeklyCycleDayOfWeekResponse[]; } interface ResourceStatusLastInstanceTerminationDetailsResponse { /** * Reason for termination */ terminationReason: string; } /** * Contains output only fields. Use this sub-message for actual values set on Instance attributes as compared to the value requested by the user (intent) in their instance CRUD calls. */ interface ResourceStatusResponse { /** * Contains last termination details why the instance was terminated. */ lastInstanceTerminationDetails: outputs.compute.alpha.ResourceStatusLastInstanceTerminationDetailsResponse; /** * An opaque ID of the host on which the VM is running. */ physicalHost: string; scheduling: outputs.compute.alpha.ResourceStatusSchedulingResponse; /** * Represents the status of the service integration specs defined by the user in instance.serviceIntegrationSpecs. */ serviceIntegrationStatuses: { [key: string]: string; }; /** * Details about stopping state of instance */ shutdownDetails: outputs.compute.alpha.ResourceStatusShutdownDetailsResponse; upcomingMaintenance: outputs.compute.alpha.UpcomingMaintenanceResponse; } interface ResourceStatusSchedulingResponse { /** * Specifies the availability domain (AD), which this instance should be scheduled on. The AD belongs to the spread GroupPlacementPolicy resource policy that has been assigned to the instance. Specify a value between 1-max count of availability domains in your GroupPlacementPolicy. See go/placement-policy-extension for more details. */ availabilityDomain: number; /** * Time in future when the instance will be terminated in RFC3339 text format. */ terminationTimestamp: string; } /** * Specifies if the instance is in `SHUTTING_DOWN` state or there is a instance stopping scheduled. */ interface ResourceStatusShutdownDetailsResponse { /** * Duration for graceful shutdown. Only applicable when `stop_state=SHUTTING_DOWN`. */ maxDuration: outputs.compute.alpha.DurationResponse; /** * Past timestamp indicating the beginning of current `stopState` in RFC3339 text format. */ requestTimestamp: string; /** * Current stopping state of the instance. */ stopState: string; /** * Target instance state. */ targetState: string; } /** * A rollout policy configuration. */ interface RolloutPolicyResponse { /** * An optional RFC3339 timestamp on or after which the update is considered rolled out to any zone that is not explicitly stated. */ defaultRolloutTime: string; /** * Location based rollout policies to apply to the resource. Currently only zone names are supported and must be represented as valid URLs, like: zones/us-central1-a. The value expects an RFC3339 timestamp on or after which the update is considered rolled out to the specified location. */ locationRolloutPolicies: { [key: string]: string; }; } interface RouteAsPathResponse { /** * The AS numbers of the AS Path. */ asLists: number[]; /** * The type of the AS Path, which can be one of the following values: - 'AS_SET': unordered set of autonomous systems that the route in has traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed */ pathSegmentType: string; } interface RouteWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface RouteWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.compute.alpha.RouteWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * Description-tagged IP ranges for the router to advertise. */ interface RouterAdvertisedIpRangeResponse { /** * User-specified description for the IP range. */ description: string; /** * The IP range to advertise. The value must be a CIDR-formatted string. */ range: string; } interface RouterBgpPeerBfdResponse { /** * The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. */ minReceiveInterval: number; /** * The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. */ minTransmitInterval: number; /** * The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE. */ mode: string; /** * The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5. */ multiplier: number; /** * The BFD packet mode for this BGP peer. If set to CONTROL_AND_ECHO, BFD echo mode is enabled for this BGP peer. In this mode, if the peer router also has BFD echo mode enabled, BFD echo packets will be sent to the other router. If the peer router does not have BFD echo mode enabled, only control packets will be sent. If set to CONTROL_ONLY, BFD echo mode is disabled for this BGP peer. If this router and the peer router have a multihop connection, this should be set to CONTROL_ONLY as BFD echo mode is only supported on singlehop connections. The default is CONTROL_AND_ECHO. */ packetMode: string; /** * The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is DISABLED. */ sessionInitializationMode: string; /** * The minimum interval, in milliseconds, between BFD control packets transmitted to and received from the peer router when BFD echo mode is enabled on both routers. The actual transmit and receive intervals are negotiated between the two routers and are equal to the greater of this value and the corresponding interval on the other router. If set, this value must be between 1000 and 30000. The default is 5000. */ slowTimerInterval: number; } interface RouterBgpPeerCustomLearnedIpRangeResponse { /** * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`. */ range: string; } interface RouterBgpPeerResponse { /** * User-specified flag to indicate which mode to use for advertisement. */ advertiseMode: string; /** * User-specified list of prefix groups to advertise in custom mode, which currently supports the following option: - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This excludes any routes learned for subnets that use VPC Network Peering. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. */ advertisedGroups: string[]; /** * User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. */ advertisedIpRanges: outputs.compute.alpha.RouterAdvertisedIpRangeResponse[]; /** * The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win. */ advertisedRoutePriority: number; /** * BFD configuration for the BGP peering. */ bfd: outputs.compute.alpha.RouterBgpPeerBfdResponse; /** * A list of user-defined custom learned route IP address ranges for a BGP session. */ customLearnedIpRanges: outputs.compute.alpha.RouterBgpPeerCustomLearnedIpRangeResponse[]; /** * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route ranges for the session. You can choose a value from `0` to `65335`. If you don't provide a value, Google Cloud assigns a priority of `100` to the ranges. */ customLearnedRoutePriority: number; /** * The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE. */ enable: string; /** * Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. */ enableIpv4: boolean; /** * Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. */ enableIpv6: boolean; /** * List of export policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. */ exportPolicies: string[]; /** * List of import policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. */ importPolicies: string[]; /** * Name of the interface the BGP peer is associated with. */ interfaceName: string; /** * IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. */ ipAddress: string; /** * IPv4 address of the interface inside Google Cloud Platform. */ ipv4NexthopAddress: string; /** * IPv6 address of the interface inside Google Cloud Platform. */ ipv6NexthopAddress: string; /** * The resource that configures and manages this BGP peer. - MANAGED_BY_USER is the default value and can be managed by you or other users - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud Interconnect, specifically by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of BGP peer when the PARTNER InterconnectAttachment is created, updated, or deleted. */ managementType: string; /** * Present if MD5 authentication is enabled for the peering. Must be the name of one of the entries in the Router.md5_authentication_keys. The field must comply with RFC1035. */ md5AuthenticationKeyName: string; /** * Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. */ peerAsn: number; /** * IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. */ peerIpAddress: string; /** * IPv4 address of the BGP interface outside Google Cloud Platform. */ peerIpv4NexthopAddress: string; /** * IPv6 address of the BGP interface outside Google Cloud Platform. */ peerIpv6NexthopAddress: string; /** * URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session. */ routerApplianceInstance: string; } interface RouterBgpResponse { /** * User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM. */ advertiseMode: string; /** * User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. */ advertisedGroups: string[]; /** * User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. */ advertisedIpRanges: outputs.compute.alpha.RouterAdvertisedIpRangeResponse[]; /** * Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. */ asn: number; /** * Explicitly specifies a range of valid BGP Identifiers for this Router. It is provided as a link-local IPv4 range (from 169.254.0.0/16), of size at least /30, even if the BGP sessions are over IPv6. It must not overlap with any IPv4 BGP session ranges. Other vendors commonly call this "router ID". */ identifierRange: string; /** * The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. */ keepaliveInterval: number; } interface RouterInterfaceResponse { /** * IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface. */ ipRange: string; /** * IP version of this interface. */ ipVersion: string; /** * URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork. */ linkedInterconnectAttachment: string; /** * URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork. */ linkedVpnTunnel: string; /** * The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by users. - MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud Interconnect, specifically, by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of interface when the PARTNER InterconnectAttachment is created, updated, or deleted. */ managementType: string; /** * Name of this interface entry. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM. */ privateIpAddress: string; /** * Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ redundantInterface: string; /** * The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. */ subnetwork: string; } interface RouterMd5AuthenticationKeyResponse { /** * [Input only] Value of the key. For patch and update calls, it can be skipped to copy the value from the previous configuration. This is allowed if the key with the same name existed before the operation. Maximum length is 80 characters. Can only contain printable ASCII characters. */ key: string; /** * Name used to identify the key. Must be unique within a router. Must be referenced by exactly one bgpPeer. Must comply with RFC1035. */ name: string; } /** * Configuration of logging on a NAT. */ interface RouterNatLogConfigResponse { /** * Indicates whether or not to export logs. This is false by default. */ enable: boolean; /** * Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. */ filter: string; } /** * Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided. */ interface RouterNatResponse { /** * The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used. */ autoNetworkTier: string; /** * A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only. */ drainNatIps: string[]; /** * Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. */ enableDynamicPortAllocation: boolean; enableEndpointIndependentMapping: boolean; /** * List of NAT-ted endpoint types supported by the Nat Gateway. If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM */ endpointTypes: string[]; /** * Timeout (in seconds) for ICMP connections. Defaults to 30s if not set. */ icmpIdleTimeoutSec: number; /** * Configure logging on this NAT. */ logConfig: outputs.compute.alpha.RouterNatLogConfigResponse; /** * Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config. */ maxPortsPerVm: number; /** * Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM. */ minPortsPerVm: number; /** * Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035. */ name: string; /** * Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. */ natIpAllocateOption: string; /** * A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project. */ natIps: string[]; /** * A list of rules associated with this NAT. */ rules: outputs.compute.alpha.RouterNatRuleResponse[]; /** * Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other Router.Nat section in any Router for this network in this region. */ sourceSubnetworkIpRangesToNat: string; /** * A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above. */ subnetworks: outputs.compute.alpha.RouterNatSubnetworkToNatResponse[]; /** * Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set. */ tcpEstablishedIdleTimeoutSec: number; /** * Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set. */ tcpTimeWaitTimeoutSec: number; /** * Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set. */ tcpTransitoryIdleTimeoutSec: number; /** * Indicates whether this NAT is used for public or private IP translation. If unspecified, it defaults to PUBLIC. */ type: string; /** * Timeout (in seconds) for UDP connections. Defaults to 30s if not set. */ udpIdleTimeoutSec: number; } interface RouterNatRuleActionResponse { /** * A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT. */ sourceNatActiveIps: string[]; /** * A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT. */ sourceNatActiveRanges: string[]; /** * A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT. */ sourceNatDrainIps: string[]; /** * A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT. */ sourceNatDrainRanges: string[]; } interface RouterNatRuleResponse { /** * The action to be enforced for traffic that matches this rule. */ action: outputs.compute.alpha.RouterNatRuleActionResponse; /** * An optional description of this rule. */ description: string; /** * CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The following example is a valid match expression for private NAT: "nexthop.hub == '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'" */ match: string; /** * An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. */ ruleNumber: number; } /** * Defines the IP ranges that want to use NAT for a subnetwork. */ interface RouterNatSubnetworkToNatResponse { /** * URL for the subnetwork resource that will use NAT. */ name: string; /** * A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" is one of the values in source_ip_ranges_to_nat. */ secondaryIpRangeNames: string[]; /** * Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] Default: [ALL_IP_RANGES] */ sourceIpRangesToNat: string[]; } /** * This is deprecated and has no effect. Do not use. */ interface RuleResponse { /** * This is deprecated and has no effect. Do not use. */ action: string; /** * This is deprecated and has no effect. Do not use. */ conditions: outputs.compute.alpha.ConditionResponse[]; /** * This is deprecated and has no effect. Do not use. */ description: string; /** * This is deprecated and has no effect. Do not use. */ ins: string[]; /** * This is deprecated and has no effect. Do not use. */ logConfigs: outputs.compute.alpha.LogConfigResponse[]; /** * This is deprecated and has no effect. Do not use. */ notIns: string[]; /** * This is deprecated and has no effect. Do not use. */ permissions: string[]; } interface SSLHealthCheckResponse { /** * The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection and SSL handshake. */ request: string; /** * Creates a content-based SSL health check. In addition to establishing a TCP connection and the TLS handshake, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp */ response: string; } /** * DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk resource. */ interface SavedAttachedDiskResponse { /** * Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. */ boot: boolean; /** * Specifies the name of the disk attached to the source instance. */ deviceName: string; /** * The encryption key for the disk. */ diskEncryptionKey: outputs.compute.alpha.CustomerEncryptionKeyResponse; /** * The size of the disk in base-2 GB. */ diskSizeGb: string; /** * URL of the disk type resource. For example: projects/project /zones/zone/diskTypes/pd-standard or pd-ssd */ diskType: string; /** * A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. */ guestOsFeatures: outputs.compute.alpha.GuestOsFeatureResponse[]; /** * Specifies zero-based index of the disk that is attached to the source instance. */ index: number; /** * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. */ interface: string; /** * Type of the resource. Always compute#attachedDisk for attached disks. */ kind: string; /** * Any valid publicly visible licenses. */ licenses: string[]; /** * The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY. */ mode: string; /** * Specifies a URL of the disk attached to the source instance. */ source: string; /** * A size of the storage used by the disk's snapshot by this machine image. */ storageBytes: string; /** * An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date. */ storageBytesStatus: string; /** * Specifies the type of the attached disk, either SCRATCH or PERSISTENT. */ type: string; } /** * An instance-attached disk resource. */ interface SavedDiskResponse { /** * The architecture of the attached disk. */ architecture: string; /** * Type of the resource. Always compute#savedDisk for attached disks. */ kind: string; /** * Specifies a URL of the disk attached to the source instance. */ sourceDisk: string; /** * Size of the individual disk snapshot used by this machine image. */ storageBytes: string; /** * An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date. */ storageBytesStatus: string; } /** * Configuration for gracefully shutting down the instance. */ interface SchedulingGracefulShutdownResponse { /** * Opts-in for graceful shutdown. */ enabled: boolean; /** * Specifies time needed to gracefully shut down the instance. After that time, the instance goes to STOPPING even if graceful shutdown is not completed. */ maxDuration: outputs.compute.alpha.DurationResponse; } /** * Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. */ interface SchedulingNodeAffinityResponse { /** * Corresponds to the label key of Node resource. */ key: string; /** * Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity. */ operator: string; /** * Corresponds to the label values of Node resource. */ values: string[]; } /** * Sets the scheduling options for an Instance. */ interface SchedulingResponse { /** * Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine. */ automaticRestart: boolean; /** * Specifies the availability domain (AD), which this instance should be scheduled on. The AD belongs to the spread GroupPlacementPolicy resource policy that has been assigned to the instance. Specify a value between 1-max count of availability domains in your GroupPlacementPolicy. See go/placement-policy-extension for more details. */ availabilityDomain: number; /** * Current number of vCPUs available for VM. 0 or unset means default vCPUs of the current machine type. */ currentCpus: number; /** * Current amount of memory (in MB) available for VM. 0 or unset means default amount of memory of the current machine type. */ currentMemoryMb: string; gracefulShutdown: outputs.compute.alpha.SchedulingGracefulShutdownResponse; /** * Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used. */ hostErrorTimeoutSeconds: number; /** * Specifies the termination action for the instance. */ instanceTerminationAction: string; /** * Defines whether the instance is tolerant of higher cpu latency. This can only be set during instance creation, or when the instance is not currently running. It must not be set if the preemptible option is also set. */ latencyTolerant: boolean; /** * Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour. */ localSsdRecoveryTimeout: outputs.compute.alpha.DurationResponse; /** * An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API. */ locationHint: string; /** * Specifies the number of hours after VM instance creation where the VM won't be scheduled for maintenance. */ maintenanceFreezeDurationHours: number; /** * Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`. */ maintenanceInterval: string; /** * Specifies the max run duration for the given instance. If specified, the instance termination action will be performed at the end of the run duration. */ maxRunDuration: outputs.compute.alpha.DurationResponse; /** * The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. */ minNodeCpus: number; /** * A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity. */ nodeAffinities: outputs.compute.alpha.SchedulingNodeAffinityResponse[]; /** * Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM host maintenance policy. */ onHostMaintenance: string; /** * Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. */ preemptible: boolean; /** * Specifies the provisioning model of the instance. */ provisioningModel: string; /** * Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time. */ terminationTime: string; } /** * [Deprecated] The configuration to access the SDS server. The configuration to access the SDS server. */ interface SdsConfigResponse { /** * The configuration to access the SDS server over GRPC. */ grpcServiceConfig: outputs.compute.alpha.GrpcServiceConfigResponse; } /** * Configuration options for Adaptive Protection auto-deploy feature. */ interface SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigResponse { confidenceThreshold: number; expirationSec: number; impactedBaselineThreshold: number; loadThreshold: number; } /** * Configuration options for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ interface SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse { /** * If set to true, enables CAAP for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ enable: boolean; /** * Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ ruleVisibility: string; /** * Configuration options for layer7 adaptive protection for various customizable thresholds. */ thresholdConfigs: outputs.compute.alpha.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigResponse[]; } interface SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigResponse { autoDeployConfidenceThreshold: number; autoDeployExpirationSec: number; autoDeployImpactedBaselineThreshold: number; autoDeployLoadThreshold: number; /** * The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy. */ name: string; } /** * Configuration options for Cloud Armor Adaptive Protection (CAAP). */ interface SecurityPolicyAdaptiveProtectionConfigResponse { autoDeployConfig: outputs.compute.alpha.SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigResponse; /** * If set to true, enables Cloud Armor Machine Learning. */ layer7DdosDefenseConfig: outputs.compute.alpha.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse; } interface SecurityPolicyAdvancedOptionsConfigJsonCustomConfigResponse { /** * A list of custom Content-Type header values to apply the JSON parsing. As per RFC 1341, a Content-Type header value has the following format: Content-Type := type "/" subtype *[";" parameter] When configuring a custom Content-Type header value, only the type/subtype needs to be specified, and the parameters should be excluded. */ contentTypes: string[]; } interface SecurityPolicyAdvancedOptionsConfigResponse { /** * Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD. */ jsonCustomConfig: outputs.compute.alpha.SecurityPolicyAdvancedOptionsConfigJsonCustomConfigResponse; jsonParsing: string; logLevel: string; /** * An optional list of case-insensitive request header names to use for resolving the callers client IP address. */ userIpRequestHeaders: string[]; } interface SecurityPolicyAssociationResponse { /** * The resource that the security policy is attached to. */ attachmentId: string; /** * The display name of the security policy of the association. */ displayName: string; /** * The name for an association. */ name: string; /** * The security policy ID of the association. */ securityPolicyId: string; } /** * Configuration options for Cloud Armor. */ interface SecurityPolicyCloudArmorConfigResponse { /** * If set to true, enables Cloud Armor Machine Learning. */ enableMl: boolean; } interface SecurityPolicyDdosProtectionConfigResponse { ddosProtection: string; } interface SecurityPolicyRecaptchaOptionsConfigResponse { /** * An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ redirectSiteKey: string; } interface SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse { /** * The name of the header to set. */ headerName: string; /** * The value to set the named header to. */ headerValue: string; } interface SecurityPolicyRuleHttpHeaderActionResponse { /** * The list of request headers to add or overwrite if they're already present. */ requestHeadersToAdds: outputs.compute.alpha.SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse[]; } interface SecurityPolicyRuleMatcherConfigDestinationPortResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. This field may only be specified when versioned_expr is set to FIREWALL. */ ports: string[]; } interface SecurityPolicyRuleMatcherConfigLayer4ConfigResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. This field may only be specified when versioned_expr is set to FIREWALL. */ ports: string[]; } interface SecurityPolicyRuleMatcherConfigResponse { /** * CIDR IP address range. This field may only be specified when versioned_expr is set to FIREWALL. */ destIpRanges: string[]; /** * Pairs of IP protocols and ports that the rule should match. This field may only be specified when versioned_expr is set to FIREWALL. */ destPorts: outputs.compute.alpha.SecurityPolicyRuleMatcherConfigDestinationPortResponse[]; /** * Pairs of IP protocols and ports that the rule should match. This field may only be specified when versioned_expr is set to FIREWALL. */ layer4Configs: outputs.compute.alpha.SecurityPolicyRuleMatcherConfigLayer4ConfigResponse[]; /** * CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. */ srcIpRanges: string[]; } interface SecurityPolicyRuleMatcherExprOptionsRecaptchaOptionsResponse { /** * A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. */ actionTokenSiteKeys: string[]; /** * A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. */ sessionTokenSiteKeys: string[]; } interface SecurityPolicyRuleMatcherExprOptionsResponse { /** * reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field will have no effect. */ recaptchaOptions: outputs.compute.alpha.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptionsResponse; } /** * Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. */ interface SecurityPolicyRuleMatcherResponse { /** * The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified. */ config: outputs.compute.alpha.SecurityPolicyRuleMatcherConfigResponse; /** * User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. Expressions containing `evaluateThreatIntelligence` require Cloud Armor Managed Protection Plus tier and are not supported in Edge Policies nor in Regional Policies. Expressions containing `evaluatePreconfiguredExpr('sourceiplist-*')` require Cloud Armor Managed Protection Plus tier and are only supported in Global Security Policies. */ expr: outputs.compute.alpha.ExprResponse; /** * The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). */ exprOptions: outputs.compute.alpha.SecurityPolicyRuleMatcherExprOptionsResponse; /** * Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config. */ versionedExpr: string; } /** * Represents a match condition that incoming network traffic is evaluated against. */ interface SecurityPolicyRuleNetworkMatcherResponse { /** * Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. */ destIpRanges: string[]; /** * Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). */ destPorts: string[]; /** * IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". */ ipProtocols: string[]; /** * BGP Autonomous System Number associated with the source IP address. */ srcAsns: number[]; /** * Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. */ srcIpRanges: string[]; /** * Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). */ srcPorts: string[]; /** * Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. */ srcRegionCodes: string[]; /** * User-defined fields. Each element names a defined field and lists the matching values for that field. */ userDefinedFields: outputs.compute.alpha.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatchResponse[]; } interface SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatchResponse { /** * Name of the user-defined field, as given in the definition. */ name: string; /** * Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-0x7ff"). */ values: string[]; } interface SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse { /** * The match operator for the field. */ op: string; /** * The value of the field. */ val: string; } interface SecurityPolicyRulePreconfiguredWafConfigExclusionResponse { /** * A list of request cookie names whose value will be excluded from inspection during preconfigured WAF evaluation. */ requestCookiesToExclude: outputs.compute.alpha.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of request header names whose value will be excluded from inspection during preconfigured WAF evaluation. */ requestHeadersToExclude: outputs.compute.alpha.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of request query parameter names whose value will be excluded from inspection during preconfigured WAF evaluation. Note that the parameter can be in the query string or in the POST body. */ requestQueryParamsToExclude: outputs.compute.alpha.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of request URIs from the request line to be excluded from inspection during preconfigured WAF evaluation. When specifying this field, the query or fragment part should be excluded. */ requestUrisToExclude: outputs.compute.alpha.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. If omitted, it refers to all the rule IDs under the WAF rule set. */ targetRuleIds: string[]; /** * Target WAF rule set to apply the preconfigured WAF exclusion. */ targetRuleSet: string; } interface SecurityPolicyRulePreconfiguredWafConfigResponse { /** * A list of exclusions to apply during preconfigured WAF evaluation. */ exclusions: outputs.compute.alpha.SecurityPolicyRulePreconfiguredWafConfigExclusionResponse[]; } interface SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigResponse { /** * Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. */ enforceOnKeyName: string; /** * Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. */ enforceOnKeyType: string; } interface SecurityPolicyRuleRateLimitOptionsResponse { /** * Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. */ banDurationSec: number; /** * Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'. */ banThreshold: outputs.compute.alpha.SecurityPolicyRuleRateLimitOptionsThresholdResponse; /** * Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. */ conformAction: string; /** * Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. */ enforceOnKey: string; /** * If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which ratelimit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If enforce_on_key_configs is specified, enforce_on_key must not be specified. */ enforceOnKeyConfigs: outputs.compute.alpha.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigResponse[]; /** * Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. */ enforceOnKeyName: string; /** * Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are `deny(STATUS)`, where valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the redirect parameters come from `exceedRedirectOptions` below. The `redirect` action is only supported in Global Security Policies of type CLOUD_ARMOR. */ exceedAction: string; /** * Specified gRPC response status for proxyless gRPC requests that are above the configured rate limit threshold */ exceedActionRpcStatus: outputs.compute.alpha.SecurityPolicyRuleRateLimitOptionsRpcStatusResponse; /** * Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ exceedRedirectOptions: outputs.compute.alpha.SecurityPolicyRuleRedirectOptionsResponse; /** * Threshold at which to begin ratelimiting. */ rateLimitThreshold: outputs.compute.alpha.SecurityPolicyRuleRateLimitOptionsThresholdResponse; } /** * Simplified google.rpc.Status type (omitting details). */ interface SecurityPolicyRuleRateLimitOptionsRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A developer-facing error message, which should be in English. */ message: string; } interface SecurityPolicyRuleRateLimitOptionsThresholdResponse { /** * Number of HTTP(S) requests for calculating the threshold. */ count: number; /** * Interval over which the threshold is computed. */ intervalSec: number; } interface SecurityPolicyRuleRedirectOptionsResponse { /** * Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. */ target: string; /** * Type of the redirect action. */ type: string; } /** * Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). */ interface SecurityPolicyRuleResponse { /** * The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. */ action: string; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL. */ direction: string; /** * Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. This field may only be specified when the versioned_expr is set to FIREWALL. */ enableLogging: boolean; /** * Optional, additional actions that are performed on headers. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ headerAction: outputs.compute.alpha.SecurityPolicyRuleHttpHeaderActionResponse; /** * [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules */ kind: string; /** * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. */ match: outputs.compute.alpha.SecurityPolicyRuleMatcherResponse; /** * A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. Example: networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive. */ networkMatch: outputs.compute.alpha.SecurityPolicyRuleNetworkMatcherResponse; /** * Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. */ preconfiguredWafConfig: outputs.compute.alpha.SecurityPolicyRulePreconfiguredWafConfigResponse; /** * If set to true, the specified action is not enforced. */ preview: boolean; /** * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. */ priority: number; /** * Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. */ rateLimitOptions: outputs.compute.alpha.SecurityPolicyRuleRateLimitOptionsResponse; /** * Parameters defining the redirect action. Cannot be specified for any other actions. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ redirectOptions: outputs.compute.alpha.SecurityPolicyRuleRedirectOptionsResponse; /** * This must be specified for redirect actions. Cannot be specified for any other actions. */ redirectTarget: string; /** * The minimum managed protection tier required for this rule. [Deprecated] Use requiredManagedProtectionTiers instead. * * @deprecated [Output Only] The minimum managed protection tier required for this rule. [Deprecated] Use requiredManagedProtectionTiers instead. */ ruleManagedProtectionTier: string; /** * Identifier for the rule. This is only unique within the given security policy. This can only be set during rule creation, if rule number is not specified it will be generated by the server. */ ruleNumber: string; /** * Calculation of the complexity of a single firewall security policy rule. */ ruleTupleCount: number; /** * A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. This field may only be specified when versioned_expr is set to FIREWALL. */ targetResources: string[]; /** * A list of service accounts indicating the sets of instances that are applied with this rule. */ targetServiceAccounts: string[]; } interface SecurityPolicyUserDefinedFieldResponse { /** * The base relative to which 'offset' is measured. Possible values are: - IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. required */ base: string; /** * If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. Encoded as a hexadecimal number (starting with "0x"). The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. */ mask: string; /** * The name of this field. Must be unique within the policy. */ name: string; /** * Offset of the first byte of the field (in network byte order) relative to 'base'. */ offset: number; /** * Size of the field in bytes. Valid values: 1-4. */ size: number; } /** * The authentication and authorization settings for a BackendService. */ interface SecuritySettingsResponse { /** * [Deprecated] Use clientTlsPolicy instead. * * @deprecated [Deprecated] Use clientTlsPolicy instead. */ authentication: string; /** * [Deprecated] Authentication policy defines what authentication methods can be accepted on backends, and if authenticated, which method/certificate will set the request principal. request principal. * * @deprecated [Deprecated] Authentication policy defines what authentication methods can be accepted on backends, and if authenticated, which method/certificate will set the request principal. request principal. */ authenticationPolicy: outputs.compute.alpha.AuthenticationPolicyResponse; /** * [Deprecated] Authorization config defines the Role Based Access Control (RBAC) config. Authorization config defines the Role Based Access Control (RBAC) config. * * @deprecated [Deprecated] Authorization config defines the Role Based Access Control (RBAC) config. Authorization config defines the Role Based Access Control (RBAC) config. */ authorizationConfig: outputs.compute.alpha.AuthorizationConfigResponse; /** * The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. */ awsV4Authentication: outputs.compute.alpha.AWSV4SignatureResponse; /** * Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. */ clientTlsPolicy: string; /** * [Deprecated] TLS Settings for the backend service. * * @deprecated [Deprecated] TLS Settings for the backend service. */ clientTlsSettings: outputs.compute.alpha.ClientTlsSettingsResponse; /** * Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). */ subjectAltNames: string[]; } interface ServerBindingResponse { type: string; } /** * The TLS settings for the server. */ interface ServerTlsSettingsResponse { /** * Configures the mechanism to obtain security certificates and identity information. */ proxyTlsContext: outputs.compute.alpha.TlsContextResponse; /** * A list of alternate names to verify the subject identity in the certificate presented by the client. */ subjectAltNames: string[]; /** * Indicates whether connections should be secured using TLS. The value of this field determines how TLS is enforced. This field can be set to one of the following: - SIMPLE Secure connections with standard TLS semantics. - MUTUAL Secure connections to the backends using mutual TLS by presenting client certificates for authentication. */ tlsMode: string; } /** * A service account. */ interface ServiceAccountResponse { /** * Email address of the service account. */ email: string; /** * The list of scopes to be made available for this service account. */ scopes: string[]; } /** * [Output Only] A connection connected to this service attachment. */ interface ServiceAttachmentConnectedEndpointResponse { /** * The url of the consumer network. */ consumerNetwork: string; /** * The url of a connected endpoint. */ endpoint: string; /** * The PSC connection id of the connected endpoint. */ pscConnectionId: string; /** * The status of a connected endpoint to this service attachment. */ status: string; } interface ServiceAttachmentConsumerProjectLimitResponse { /** * The value of the limit to set. */ connectionLimit: number; /** * The network URL for the network to set the limit for. */ networkUrl: string; /** * The project id or number for the project to set the limit for. */ projectIdOrNum: string; } /** * Use to configure this PSC connection in tunneling mode. In tunneling mode traffic from consumer to producer will be encapsulated as it crosses the VPC boundary and traffic from producer to consumer will be decapsulated in the same manner. */ interface ServiceAttachmentTunnelingConfigResponse { /** * Specify the encapsulation protocol and what metadata to include in incoming encapsulated packet headers. */ encapsulationProfile: string; /** * How this Service Attachment will treat traffic sent to the tunnel_ip, destined for the consumer network. */ routingMode: string; } /** * The share setting for reservations and sole tenancy node groups. */ interface ShareSettingsResponse { /** * A map of folder id and folder config to specify consumer projects for this shared-reservation. This is only valid when share_type's value is DIRECT_PROJECTS_UNDER_SPECIFIC_FOLDERS. Folder id should be a string of number, and without "folders/" prefix. */ folderMap: { [key: string]: string; }; /** * A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS. */ projectMap: { [key: string]: string; }; /** * A List of Project names to specify consumer projects for this shared-reservation. This is only valid when share_type's value is SPECIFIC_PROJECTS. */ projects: string[]; /** * Type of sharing for this shared-reservation */ shareType: string; } /** * A set of Shielded Instance options. */ interface ShieldedInstanceConfigResponse { /** * Defines whether the instance has integrity monitoring enabled. Enabled by default. */ enableIntegrityMonitoring: boolean; /** * Defines whether the instance has Secure Boot enabled. Disabled by default. */ enableSecureBoot: boolean; /** * Defines whether the instance has the vTPM enabled. Enabled by default. */ enableVtpm: boolean; } /** * The policy describes the baseline against which Instance boot integrity is measured. */ interface ShieldedInstanceIntegrityPolicyResponse { /** * Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. */ updateAutoLearnPolicy: boolean; } /** * A set of Shielded VM options. */ interface ShieldedVmConfigResponse { /** * Defines whether the instance has integrity monitoring enabled. */ enableIntegrityMonitoring: boolean; /** * Defines whether the instance has Secure Boot enabled. */ enableSecureBoot: boolean; /** * Defines whether the instance has the vTPM enabled. */ enableVtpm: boolean; } /** * The policy describes the baseline against which VM instance boot integrity is measured. */ interface ShieldedVmIntegrityPolicyResponse { /** * Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. */ updateAutoLearnPolicy: boolean; } interface SourceDiskEncryptionKeyResponse { /** * The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key. */ diskEncryptionKey: outputs.compute.alpha.CustomerEncryptionKeyResponse; /** * URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk */ sourceDisk: string; } /** * A specification of the parameters to use when creating the instance template from a source instance. */ interface SourceInstanceParamsResponse { /** * Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, the source images for each disk will be used. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes. */ diskConfigs: outputs.compute.alpha.DiskInstantiationConfigResponse[]; } /** * DEPRECATED: Please use compute#instanceProperties instead. New properties will not be added to this field. */ interface SourceInstancePropertiesResponse { /** * Enables instances created based on this machine image to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. */ canIpForward: boolean; /** * Whether the instance created from this machine image should be protected against deletion. */ deletionProtection: boolean; /** * An optional text description for the instances that are created from this machine image. */ description: string; /** * An array of disks that are associated with the instances that are created from this machine image. */ disks: outputs.compute.alpha.SavedAttachedDiskResponse[]; /** * A list of guest accelerator cards' type and count to use for instances created from this machine image. */ guestAccelerators: outputs.compute.alpha.AcceleratorConfigResponse[]; /** * KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. */ keyRevocationActionType: string; /** * Labels to apply to instances that are created from this machine image. */ labels: { [key: string]: string; }; /** * The machine type to use for instances that are created from this machine image. */ machineType: string; /** * The metadata key/value pairs to assign to instances that are created from this machine image. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. */ metadata: outputs.compute.alpha.MetadataResponse; /** * Minimum cpu/platform to be used by instances created from this machine image. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. */ minCpuPlatform: string; /** * An array of network access configurations for this interface. */ networkInterfaces: outputs.compute.alpha.NetworkInterfaceResponse[]; /** * PostKeyRevocationActionType of the instance. */ postKeyRevocationActionType: string; /** * Specifies the scheduling options for the instances that are created from this machine image. */ scheduling: outputs.compute.alpha.SchedulingResponse; /** * A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this machine image. Use metadata queries to obtain the access tokens for these instances. */ serviceAccounts: outputs.compute.alpha.ServiceAccountResponse[]; /** * A list of tags to apply to the instances that are created from this machine image. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. */ tags: outputs.compute.alpha.TagsResponse; } /** * Configuration and status of a managed SSL certificate. */ interface SslCertificateManagedSslCertificateResponse { /** * [Output only] Detailed statuses of the domains specified for managed certificate resource. */ domainStatus: { [key: string]: string; }; /** * The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates). */ domains: string[]; /** * [Output only] Status of the managed certificate resource. */ status: string; } /** * Configuration and status of a self-managed SSL certificate. */ interface SslCertificateSelfManagedSslCertificateResponse { /** * A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert. */ certificate: string; /** * A write-only private key in PEM format. Only insert requests will include this field. */ privateKey: string; } interface SslPolicyWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface SslPolicyWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.compute.alpha.SslPolicyWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * Configuration of preserved resources. */ interface StatefulPolicyPreservedStateResponse { /** * Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks. */ disks: { [key: string]: string; }; /** * External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. */ externalIPs: { [key: string]: string; }; /** * Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. */ internalIPs: { [key: string]: string; }; } interface StatefulPolicyResponse { preservedState: outputs.compute.alpha.StatefulPolicyPreservedStateResponse; } /** * [Output Only] Contains output only fields. */ interface StoragePoolResourceStatusResponse { /** * Sum of all the disks' provisioned IOPS. */ aggregateDiskProvisionedIops: string; /** * Sum of all the capacity provisioned in disks in this storage pool. A disk's provisioned capacity is the same as its total capacity. */ aggregateDiskSizeGb: string; /** * Timestamp of the last successful resize in RFC3339 text format. */ lastResizeTimestamp: string; /** * Maximum allowed aggregate disk size in gigabytes. */ maxAggregateDiskSizeGb: string; /** * Number of disks used. */ numberOfDisks: string; /** * Space used by data stored in disks within the storage pool (in bytes). */ usedBytes: string; /** * Space used by compressed and deduped data stored in disks within the storage pool (in bytes). */ usedReducedBytes: string; /** * Sum of all the disks' provisioned throughput in MB/s. */ usedThroughput: string; } /** * The available logging options for this subnetwork. */ interface SubnetworkLogConfigResponse { /** * Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection. */ aggregationInterval: string; /** * Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Flow logging isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY. */ enable: boolean; /** * Can only be specified if VPC flow logs for this subnetwork is enabled. The filter expression is used to define which VPC flow logs should be exported to Cloud Logging. */ filterExpr: string; /** * Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the 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. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported. */ flowSampling: number; /** * Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. */ metadata: string; /** * Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" was set to CUSTOM_METADATA. */ metadataFields: string[]; } /** * Represents a secondary IP range of a subnetwork. */ interface SubnetworkSecondaryRangeResponse { /** * The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list. */ ipCidrRange: string; /** * The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork. */ rangeName: string; /** * The URL of the reserved internal range. */ reservedInternalRange: string; } /** * Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director. */ interface SubsettingResponse { policy: string; /** * The number of backends per backend group assigned to each proxy instance or each service mesh client. An input parameter to the `CONSISTENT_HASH_SUBSETTING` algorithm. Can only be set if `policy` is set to `CONSISTENT_HASH_SUBSETTING`. Can only be set if load balancing scheme is `INTERNAL_MANAGED` or `INTERNAL_SELF_MANAGED`. `subset_size` is optional for Internal HTTP(S) load balancing and required for Traffic Director. If you do not provide this value, Cloud Load Balancing will calculate it dynamically to optimize the number of proxies/clients visible to each backend and vice versa. Must be greater than 0. If `subset_size` is larger than the number of backends/endpoints, then subsetting is disabled. */ subsetSize: number; } interface TCPHealthCheckResponse { /** * The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection. */ request: string; /** * Creates a content-based TCP health check. In addition to establishing a TCP connection, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp */ response: string; } /** * A set of instance tags. */ interface TagsResponse { /** * Specifies a fingerprint for this request, which is essentially a hash of the tags' contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update tags. You must always provide an up-to-date fingerprint hash in order to update or change tags. To see the latest fingerprint, make get() request to the instance. */ fingerprint: string; /** * An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035. */ items: string[]; } /** * [Deprecated] Defines the mechanism to obtain the client or server certificate. Defines the mechanism to obtain the client or server certificate. */ interface TlsCertificateContextResponse { /** * Specifies the certificate and private key paths. This field is applicable only if tlsCertificateSource is set to USE_PATH. */ certificatePaths: outputs.compute.alpha.TlsCertificatePathsResponse; /** * Defines how TLS certificates are obtained. */ certificateSource: string; /** * Specifies the config to retrieve certificates through SDS. This field is applicable only if tlsCertificateSource is set to USE_SDS. */ sdsConfig: outputs.compute.alpha.SdsConfigResponse; } /** * [Deprecated] The paths to the mounted TLS Certificates and private key. The paths to the mounted TLS Certificates and private key. */ interface TlsCertificatePathsResponse { /** * The path to the file holding the client or server TLS certificate to use. */ certificatePath: string; /** * The path to the file holding the client or server private key. */ privateKeyPath: string; } /** * [Deprecated] The TLS settings for the client or server. The TLS settings for the client or server. */ interface TlsContextResponse { /** * Defines the mechanism to obtain the client or server certificate. */ certificateContext: outputs.compute.alpha.TlsCertificateContextResponse; /** * Defines the mechanism to obtain the Certificate Authority certificate to validate the client/server certificate. If omitted, the proxy will not validate the server or client certificate. */ validationContext: outputs.compute.alpha.TlsValidationContextResponse; } /** * [Deprecated] Defines the mechanism to obtain the Certificate Authority certificate to validate the client/server certificate. validate the client/server certificate. */ interface TlsValidationContextResponse { /** * The path to the file holding the CA certificate to validate the client or server certificate. */ certificatePath: string; /** * Specifies the config to retrieve certificates through SDS. This field is applicable only if tlsCertificateSource is set to USE_SDS. */ sdsConfig: outputs.compute.alpha.SdsConfigResponse; /** * Defines how TLS certificates are obtained. */ validationSource: string; } interface UDPHealthCheckResponse { /** * The UDP port number to which the health check prober sends packets. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII. */ request: string; /** * The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII. */ response: string; } interface Uint128Response { high: string; low: string; } /** * Upcoming Maintenance notification information. */ interface UpcomingMaintenanceResponse { /** * Indicates if the maintenance can be customer triggered. */ canReschedule: boolean; /** * The date when the maintenance will take place. This value is in RFC3339 text format. DEPRECATED: Use window_start_time instead. * * @deprecated [Output Only] The date when the maintenance will take place. This value is in RFC3339 text format. DEPRECATED: Use window_start_time instead. */ date: string; /** * The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format. */ latestWindowStartTime: string; maintenanceStatus: string; /** * The start time window of the maintenance disruption. DEPRECATED: Use window_start_time instead. TimeWindow is a container for two strings that represent timestamps in "yyyy-MM-dd'T'HH:mm:ssZ" text format. * * @deprecated [Output Only] The start time window of the maintenance disruption. DEPRECATED: Use window_start_time instead. TimeWindow is a container for two strings that represent timestamps in "yyyy-MM-dd'T'HH:mm:ssZ" text format. */ startTimeWindow: outputs.compute.alpha.UpcomingMaintenanceTimeWindowResponse; /** * The time when the maintenance will take place. This value is in RFC3339 text format. DEPRECATED: Use window_start_time instead. * * @deprecated [Output Only] The time when the maintenance will take place. This value is in RFC3339 text format. DEPRECATED: Use window_start_time instead. */ time: string; /** * Defines the type of maintenance. */ type: string; /** * The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format. */ windowEndTime: string; /** * The current start time of the maintenance window. This timestamp value is in RFC3339 text format. */ windowStartTime: string; } /** * Represents a window of time using two timestamps: `earliest` and `latest`. */ interface UpcomingMaintenanceTimeWindowResponse { earliest: string; latest: string; } /** * HTTP headers used in UrlMapTests. */ interface UrlMapTestHeaderResponse { /** * Header name. */ name: string; /** * Header value. */ value: string; } /** * Message for the expected URL mappings. */ interface UrlMapTestResponse { /** * The weight to use for the supplied host and path when using advanced routing rules that involve traffic splitting. */ backendServiceWeight: number; /** * Description of this test case. */ description: string; /** * The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified. */ expectedOutputUrl: string; /** * For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set. */ expectedRedirectResponseCode: number; /** * The expected URL that should be redirected to for the host and path being tested. [Deprecated] This field is deprecated. Use expected_output_url instead. * * @deprecated The expected URL that should be redirected to for the host and path being tested. [Deprecated] This field is deprecated. Use expected_output_url instead. */ expectedUrlRedirect: string; /** * HTTP headers for this request. If headers contains a host header, then host must also match the header value. */ headers: outputs.compute.alpha.UrlMapTestHeaderResponse[]; /** * Host portion of the URL. If headers contains a host header, then host must also match the header value. */ host: string; /** * Path portion of the URL. */ path: string; /** * Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set. */ service: string; } /** * The spec for modifying the path before sending the request to the matched backend service. */ interface UrlRewriteResponse { /** * Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters. */ hostRewrite: string; /** * Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters. */ pathPrefixRewrite: string; /** * If specified, the pattern rewrites the URL path (based on the :path header) using the HTTP template syntax. A corresponding path_template_match must be specified. Any template variables must exist in the path_template_match field. - -At least one variable must be specified in the path_template_match field - You can omit variables from the rewritten URL - The * and ** operators cannot be matched unless they have a corresponding variable name - e.g. {format=*} or {var=**}. For example, a path_template_match of /static/{format=**} could be rewritten as /static/content/{format} to prefix /content to the URL. Variables can also be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be rewritten as /content/{format}/{country}/{suffix}. At least one non-empty routeRules[].matchRules[].path_template_match is required. Only one of path_prefix_rewrite or path_template_rewrite may be specified. */ pathTemplateRewrite: string; } /** * A VPN gateway interface. */ interface VpnGatewayVpnGatewayInterfaceResponse { /** * URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for HA VPN over Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. */ interconnectAttachment: string; /** * IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address. */ ipAddress: string; /** * IPv6 address for this VPN interface associated with the VPN gateway. The IPv6 address must be a regional external IPv6 address. The format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). */ ipv6Address: string; } /** * In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService */ interface WeightedBackendServiceResponse { /** * The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. */ backendService: string; /** * Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ headerAction: outputs.compute.alpha.HttpHeaderActionResponse; /** * Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000. */ weight: number; } } namespace beta { /** * Contains the configurations necessary to generate a signature for access to private storage buckets that support Signature Version 4 for authentication. The service name for generating the authentication header will always default to 's3'. */ interface AWSV4SignatureResponse { /** * The access key used for s3 bucket authentication. Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request. @InputOnly */ accessKey: string; /** * The identifier of an access key used for s3 bucket authentication. */ accessKeyId: string; /** * The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. */ accessKeyVersion: string; /** * The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin. For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. */ originRegion: string; } /** * A specification of the type and number of accelerator cards attached to the instance. */ interface AcceleratorConfigResponse { /** * The number of the guest accelerator cards exposed to this instance. */ acceleratorCount: number; /** * Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types. */ acceleratorType: string; } /** * An access configuration attached to an instance's network interface. Only one access config per instance is supported. */ interface AccessConfigResponse { /** * Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork. */ externalIpv6: string; /** * Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range. */ externalIpv6PrefixLength: number; /** * Type of the resource. Always compute#accessConfig for access configs. */ kind: string; /** * The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. In ipv6AccessConfigs, the recommend name is External IPv6. */ name: string; /** * Applies to accessConfigs (IPv4) only. An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance. */ natIP: string; /** * This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP. */ networkTier: string; /** * The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range. */ publicPtrDomainName: string; /** * The resource URL for the security policy associated with this access config. */ securityPolicy: string; /** * Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated. */ setPublicPtr: boolean; /** * The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6. */ type: string; } /** * Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). */ interface AdvancedMachineFeaturesResponse { /** * Whether to enable nested virtualization or not (default is false). */ enableNestedVirtualization: boolean; /** * Whether to enable UEFI networking for instance creation. */ enableUefiNetworking: boolean; /** * The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. */ threadsPerCore: number; /** * The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance's nominal CPU count and the underlying platform's SMT width. */ visibleCoreCount: number; } /** * An alias IP range attached to an instance's network interface. */ interface AliasIpRangeResponse { /** * The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24). */ ipCidrRange: string; /** * The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used. */ subnetworkRangeName: string; } interface AllocationAggregateReservationReservedResourceInfoAcceleratorResponse { /** * Number of accelerators of specified type. */ acceleratorCount: number; /** * Full or partial URL to accelerator type. e.g. "projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l" */ acceleratorType: string; } interface AllocationAggregateReservationReservedResourceInfoResponse { /** * Properties of accelerator resources in this reservation. */ accelerator: outputs.compute.beta.AllocationAggregateReservationReservedResourceInfoAcceleratorResponse; } /** * This reservation type is specified by total resource amounts (e.g. total count of CPUs) and can account for multiple instance SKUs. In other words, one can create instances of varying shapes against this reservation. */ interface AllocationAggregateReservationResponse { /** * [Output only] List of resources currently in use. */ inUseResources: outputs.compute.beta.AllocationAggregateReservationReservedResourceInfoResponse[]; /** * List of reserved resources (CPUs, memory, accelerators). */ reservedResources: outputs.compute.beta.AllocationAggregateReservationReservedResourceInfoResponse[]; /** * The VM family that all instances scheduled against this reservation must belong to. */ vmFamily: string; /** * The workload type of the instances that will target this reservation. */ workloadType: string; } /** * [Output Only] Contains output only fields. */ interface AllocationResourceStatusResponse { /** * Allocation Properties of this reservation. */ specificSkuAllocation: outputs.compute.beta.AllocationResourceStatusSpecificSKUAllocationResponse; } /** * Contains Properties set for the reservation. */ interface AllocationResourceStatusSpecificSKUAllocationResponse { /** * ID of the instance template used to populate reservation properties. */ sourceInstanceTemplateId: string; } interface AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse { /** * Specifies the size of the disk in base-2 GB. */ diskSizeGb: string; /** * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. */ interface: string; } /** * Properties of the SKU instances being reserved. Next ID: 9 */ interface AllocationSpecificSKUAllocationReservedInstancePropertiesResponse { /** * Specifies accelerator type and count. */ guestAccelerators: outputs.compute.beta.AcceleratorConfigResponse[]; /** * Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd. */ localSsds: outputs.compute.beta.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse[]; /** * An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API. */ locationHint: string; /** * Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. */ machineType: string; /** * Specifies the number of hours after reservation creation where instances using the reservation won't be scheduled for maintenance. */ maintenanceFreezeDurationHours: number; /** * Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`. */ maintenanceInterval: string; /** * Minimum cpu platform the reservation. */ minCpuPlatform: string; } /** * This reservation type allows to pre allocate specific instance configuration. Next ID: 6 */ interface AllocationSpecificSKUReservationResponse { /** * Indicates how many instances are actually usable currently. */ assuredCount: string; /** * Specifies the number of resources that are allocated. */ count: string; /** * Indicates how many instances are in use. */ inUseCount: string; /** * The instance properties for the reservation. */ instanceProperties: outputs.compute.beta.AllocationSpecificSKUAllocationReservedInstancePropertiesResponse; /** * Specifies the instance template to create the reservation. If you use this field, you must exclude the instanceProperties field. This field is optional, and it can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate */ sourceInstanceTemplate: string; } /** * [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. */ interface AttachedDiskInitializeParamsResponse { /** * The architecture of the attached disk. Valid values are arm64 or x86_64. */ architecture: string; /** * An optional description. Provide this property when creating the disk. */ description: string; /** * Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created. */ diskName: string; /** * Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB. */ diskSizeGb: string; /** * Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you specify this field when creating a VM, you can provide either the full or partial URL. For example, the following values are valid: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType If you specify this field when creating or updating an instance template or all-instances configuration, specify the type of the disk, not the URL. For example: pd-standard. */ diskType: string; /** * Whether this disk is using confidential compute mode. */ enableConfidentialCompute: boolean; /** * A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. Guest OS features are applied by merging initializeParams.guestOsFeatures and disks.guestOsFeatures */ guestOsFeatures: outputs.compute.beta.GuestOsFeatureResponse[]; /** * Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. */ labels: { [key: string]: string; }; /** * A list of publicly visible licenses. Reserved for Google's use. */ licenses: string[]; /** * Indicates whether or not the disk can be read/write attached to more than one instance. */ multiWriter: boolean; /** * Specifies which action to take on instance update with this disk. Default is to use the existing disk. */ onUpdateAction: string; /** * Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. */ provisionedIops: string; /** * Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be between 1 and 7,124. */ provisionedThroughput: string; /** * Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone. */ replicaZones: string[]; /** * Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; /** * Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name. */ resourcePolicies: string[]; /** * The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set. */ sourceImage: string; /** * The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. InstanceTemplate and InstancePropertiesPatch do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. */ sourceImageEncryptionKey: outputs.compute.beta.CustomerEncryptionKeyResponse; /** * The source instant-snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceInstantSnapshot initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: us-central1-a/instantSnapshots/my-backup If the source instant-snapshot is deleted later, this field will not be set. */ sourceInstantSnapshot: string; /** * The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. */ sourceSnapshot: string; /** * The customer-supplied encryption key of the source snapshot. */ sourceSnapshotEncryptionKey: outputs.compute.beta.CustomerEncryptionKeyResponse; } /** * An instance-attached disk resource. */ interface AttachedDiskResponse { /** * The architecture of the attached disk. Valid values are ARM64 or X86_64. */ architecture: string; /** * Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. */ boot: boolean; /** * Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. */ deviceName: string; /** * Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. */ diskEncryptionKey: outputs.compute.beta.CustomerEncryptionKeyResponse; /** * The size of the disk in GB. */ diskSizeGb: string; /** * [Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. */ forceAttach: boolean; /** * A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. */ guestOsFeatures: outputs.compute.beta.GuestOsFeatureResponse[]; /** * A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. */ index: number; /** * [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. */ initializeParams: outputs.compute.beta.AttachedDiskInitializeParamsResponse; /** * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks. */ interface: string; /** * Type of the resource. Always compute#attachedDisk for attached disks. */ kind: string; /** * Any valid publicly visible licenses. */ licenses: string[]; /** * Whether to indicate the attached disk is locked. The locked disk is not allowed to be detached from the instance, or to be used as the source of the snapshot creation, and the image creation. The instance with at least one locked attached disk is not allow to be used as source of machine image creation, instant snapshot creation, and not allowed to be deleted with --keep-disk parameter set to true for locked disks. */ locked: boolean; /** * The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. */ mode: string; /** * For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api. */ savedState: string; /** * shielded vm initial state stored on disk */ shieldedInstanceInitialState: outputs.compute.beta.InitialStateConfigResponse; /** * Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk. */ source: string; /** * Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. */ type: string; /** * A list of user provided licenses. It represents a list of URLs to the license resource. Unlike regular licenses, user provided licenses can be modified after the disk is created. */ userLicenses: string[]; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.compute.beta.AuditLogConfigResponse[]; /** * This is deprecated and has no effect. Do not use. */ exemptedMembers: string[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * This is deprecated and has no effect. Do not use. */ ignoreChildExemptions: boolean; /** * The log type that this config enables. */ logType: string; } /** * This is deprecated and has no effect. Do not use. */ interface AuthorizationLoggingOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ permissionType: string; } interface AutoscalerStatusDetailsResponse { /** * The status message. */ message: string; /** * The type of error, warning, or notice returned. Current set of possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are unhealthy (not in RUNNING state). - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size greater than maxNumReplicas. - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples are not exported often enough to be a credible base for autoscaling. - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not exist or does not have the necessary labels. - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group. - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive any data from the custom metric configured for autoscaling. - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer. - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved. - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only out" mode. The autoscaler can add instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be autoscaled because it has more than one backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for the necessary resources, such as CPU or number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional autoscalers: there is a resource stockout in the chosen region. - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not exist. - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout. New values might be added in the future. Some of the values might not be available in all API versions. */ type: string; } /** * CPU utilization policy. */ interface AutoscalingPolicyCpuUtilizationResponse { /** * Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand. */ predictiveMethod: string; /** * The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization. */ utilizationTarget: number; } /** * Custom utilization metric policy. */ interface AutoscalingPolicyCustomMetricUtilizationResponse { /** * A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value. */ filter: string; /** * The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE. */ metric: string; /** * If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead. */ singleInstanceAssignment: number; /** * The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances. */ utilizationTarget: number; /** * Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. */ utilizationTargetType: string; } /** * Configuration parameters of autoscaling based on load balancing. */ interface AutoscalingPolicyLoadBalancingUtilizationResponse { /** * Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8. */ utilizationTarget: number; } /** * Cloud Autoscaler policy. */ interface AutoscalingPolicyResponse { /** * The number of seconds that your application takes to initialize on a VM instance. This is referred to as the [initialization period](/compute/docs/autoscaler#cool_down_period). Specifying an accurate initialization period improves autoscaler decisions. For example, when scaling out, the autoscaler ignores data from VMs that are still initializing because those VMs might not yet represent normal usage of your application. The default initialization period is 60 seconds. Initialization periods might vary because of numerous factors. We recommend that you test how long your application takes to initialize. To do this, create a VM and time your application's startup process. */ coolDownPeriodSec: number; /** * Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group. */ cpuUtilization: outputs.compute.beta.AutoscalingPolicyCpuUtilizationResponse; /** * Configuration parameters of autoscaling based on a custom metric. */ customMetricUtilizations: outputs.compute.beta.AutoscalingPolicyCustomMetricUtilizationResponse[]; /** * Configuration parameters of autoscaling based on load balancer. */ loadBalancingUtilization: outputs.compute.beta.AutoscalingPolicyLoadBalancingUtilizationResponse; /** * The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas. */ maxNumReplicas: number; /** * The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed. */ minNumReplicas: number; /** * Defines the operating mode for this policy. The following modes are available: - OFF: Disables the autoscaler but maintains its configuration. - ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON: Enables all autoscaler activities according to its policy. For more information, see "Turning off or restricting an autoscaler" */ mode: string; scaleDownControl: outputs.compute.beta.AutoscalingPolicyScaleDownControlResponse; scaleInControl: outputs.compute.beta.AutoscalingPolicyScaleInControlResponse; /** * Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed. */ scalingSchedules: { [key: string]: string; }; } /** * Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below. */ interface AutoscalingPolicyScaleDownControlResponse { /** * Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. */ maxScaledDownReplicas: outputs.compute.beta.FixedOrPercentResponse; /** * How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. */ timeWindowSec: number; } /** * Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below. */ interface AutoscalingPolicyScaleInControlResponse { /** * Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. */ maxScaledInReplicas: outputs.compute.beta.FixedOrPercentResponse; /** * How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. */ timeWindowSec: number; } /** * Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. */ interface BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse { /** * The header field name to match on when bypassing cache. Values are case-insensitive. */ headerName: string; } /** * Message containing what to include in the cache key for a request for Cloud CDN. */ interface BackendBucketCdnPolicyCacheKeyPolicyResponse { /** * Allows HTTP request headers (by name) to be used in the cache key. */ includeHttpHeaders: string[]; /** * Names of query string parameters to include in cache keys. Default parameters are always included. '&' and '=' will be percent encoded and not treated as delimiters. */ queryStringWhitelist: string[]; } /** * Specify CDN TTLs for response error codes. */ interface BackendBucketCdnPolicyNegativeCachingPolicyResponse { /** * The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. */ code: number; /** * The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ ttl: number; } /** * Message containing Cloud CDN configuration for a backend bucket. */ interface BackendBucketCdnPolicyResponse { /** * Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. */ bypassCacheOnRequestHeaders: outputs.compute.beta.BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse[]; /** * The CacheKeyPolicy for this CdnPolicy. */ cacheKeyPolicy: outputs.compute.beta.BackendBucketCdnPolicyCacheKeyPolicyResponse; /** * Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. */ cacheMode: string; /** * Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). */ clientTtl: number; /** * Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ defaultTtl: number; /** * Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ maxTtl: number; /** * Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. */ negativeCaching: boolean; /** * Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. */ negativeCachingPolicy: outputs.compute.beta.BackendBucketCdnPolicyNegativeCachingPolicyResponse[]; /** * If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. */ requestCoalescing: boolean; /** * Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. */ serveWhileStale: number; /** * Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. */ signedUrlCacheMaxAgeSec: string; /** * Names of the keys for signing request URLs. */ signedUrlKeyNames: string[]; } /** * Message containing information of one individual backend. */ interface BackendResponse { /** * Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected. */ balancingMode: string; /** * A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. Not available with backends that don't support using a balancingMode. This includes backends such as global internet NEGs, regional serverless NEGs, and PSC NEGs. */ capacityScaler: number; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService. */ failover: boolean; /** * The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported. */ group: string; /** * Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. */ maxConnections: number; /** * Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. */ maxConnectionsPerEndpoint: number; /** * Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. */ maxConnectionsPerInstance: number; /** * Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. */ maxRate: number; /** * Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. */ maxRatePerEndpoint: number; /** * Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. */ maxRatePerInstance: number; /** * Optional parameter to define a target capacity for the UTILIZATION balancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode. */ maxUtilization: number; /** * This field indicates whether this backend should be fully utilized before sending traffic to backends with default preference. The possible values are: - PREFERRED: Backends with this preference level will be filled up to their capacity limits first, based on RTT. - DEFAULT: If preferred backends don't have enough capacity, backends in this layer would be used and traffic would be assigned based on the load balancing algorithm you use. This is the default */ preference: string; } /** * Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. */ interface BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse { /** * The header field name to match on when bypassing cache. Values are case-insensitive. */ headerName: string; } /** * Specify CDN TTLs for response error codes. */ interface BackendServiceCdnPolicyNegativeCachingPolicyResponse { /** * The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. */ code: number; /** * The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ ttl: number; } /** * Message containing Cloud CDN configuration for a backend service. */ interface BackendServiceCdnPolicyResponse { /** * Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. */ bypassCacheOnRequestHeaders: outputs.compute.beta.BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse[]; /** * The CacheKeyPolicy for this CdnPolicy. */ cacheKeyPolicy: outputs.compute.beta.CacheKeyPolicyResponse; /** * Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. */ cacheMode: string; /** * Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). */ clientTtl: number; /** * Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ defaultTtl: number; /** * Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ maxTtl: number; /** * Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. */ negativeCaching: boolean; /** * Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. */ negativeCachingPolicy: outputs.compute.beta.BackendServiceCdnPolicyNegativeCachingPolicyResponse[]; /** * If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. */ requestCoalescing: boolean; /** * Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. */ serveWhileStale: number; /** * Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. */ signedUrlCacheMaxAgeSec: string; /** * Names of the keys for signing request URLs. */ signedUrlKeyNames: string[]; } /** * Connection Tracking configuration for this BackendService. */ interface BackendServiceConnectionTrackingPolicyResponse { /** * Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence). */ connectionPersistenceOnUnhealthyBackends: string; /** * Enable Strong Session Affinity for Network Load Balancing. This option is not available publicly. */ enableStrongAffinity: boolean; /** * Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For Network Load Balancer the default is 60 seconds. This option is not available publicly. */ idleTimeoutSec: number; /** * Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode). */ trackingMode: string; } /** * For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). */ interface BackendServiceFailoverPolicyResponse { /** * This can be set to true only if the protocol is TCP. The default is false. */ disableConnectionDrainOnFailover: boolean; /** * If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false. */ dropTrafficIfUnhealthy: boolean; /** * The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). */ failoverRatio: number; } /** * Identity-Aware Proxy */ interface BackendServiceIAPResponse { /** * Whether the serving infrastructure will authenticate and authorize all incoming requests. */ enabled: boolean; /** * OAuth2 client ID to use for the authentication flow. */ oauth2ClientId: string; /** * OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly */ oauth2ClientSecret: string; /** * SHA256 hash value for the field oauth2_client_secret above. */ oauth2ClientSecretSha256: string; } /** * The configuration for a custom policy implemented by the user and deployed with the client. */ interface BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyResponse { /** * An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation. */ data: string; /** * Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy. */ name: string; } /** * The configuration for a built-in load balancing policy. */ interface BackendServiceLocalityLoadBalancingPolicyConfigPolicyResponse { /** * The name of a locality load-balancing policy. Valid values include ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about these values, see the description of localityLbPolicy. Do not specify the same policy more than once for a backend. If you do, the configuration is rejected. */ name: string; } /** * Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user. */ interface BackendServiceLocalityLoadBalancingPolicyConfigResponse { customPolicy: outputs.compute.beta.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyResponse; policy: outputs.compute.beta.BackendServiceLocalityLoadBalancingPolicyConfigPolicyResponse; } /** * The available logging options for the load balancer traffic served by this backend service. */ interface BackendServiceLogConfigResponse { /** * Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false. */ enable: boolean; /** * This field can only be specified if logging is enabled for this backend service and "logConfig.optionalMode" was set to CUSTOM. Contains a list of optional fields you want to include in the logs. For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace */ optionalFields: string[]; /** * This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL. */ optionalMode: string; /** * This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0. */ sampleRate: number; } interface BackendServiceUsedByResponse { reference: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * This is deprecated and has no effect. Do not use. */ bindingId: string; /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.compute.beta.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Message containing what to include in the cache key for a request for Cloud CDN. */ interface CacheKeyPolicyResponse { /** * If true, requests to different hosts will be cached separately. */ includeHost: boolean; /** * Allows HTTP request headers (by name) to be used in the cache key. */ includeHttpHeaders: string[]; /** * Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates. */ includeNamedCookies: string[]; /** * If true, http and https requests will be cached separately. */ includeProtocol: boolean; /** * If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely. */ includeQueryString: boolean; /** * Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. */ queryStringBlacklist: string[]; /** * Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. */ queryStringWhitelist: string[]; } /** * Settings controlling the volume of requests, connections and retries to this backend service. */ interface CircuitBreakersResponse { /** * The timeout for new network connections to hosts. */ connectTimeout: outputs.compute.beta.DurationResponse; /** * The maximum number of connections to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxConnections: number; /** * The maximum number of pending requests allowed to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxPendingRequests: number; /** * The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit. */ maxRequests: number; /** * Maximum requests for a single connection to the backend service. This parameter is respected by both the HTTP/1.1 and HTTP/2 implementations. If not specified, there is no limit. Setting this parameter to 1 will effectively disable keep alive. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxRequestsPerConnection: number; /** * The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxRetries: number; } /** * This is deprecated and has no effect. Do not use. */ interface ConditionResponse { /** * This is deprecated and has no effect. Do not use. */ iam: string; /** * This is deprecated and has no effect. Do not use. */ op: string; /** * This is deprecated and has no effect. Do not use. */ svc: string; /** * This is deprecated and has no effect. Do not use. */ sys: string; /** * This is deprecated and has no effect. Do not use. */ values: string[]; } /** * A set of Confidential Instance options. */ interface ConfidentialInstanceConfigResponse { /** * Defines the type of technology used by the confidential instance. */ confidentialInstanceType: string; /** * Defines whether the instance should have confidential compute enabled. */ enableConfidentialCompute: boolean; } /** * Message containing connection draining configuration. */ interface ConnectionDrainingResponse { /** * Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining. */ drainingTimeoutSec: number; } /** * The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash. */ interface ConsistentHashLoadBalancerSettingsHttpCookieResponse { /** * Name of the cookie. */ name: string; /** * Path to set for the cookie. */ path: string; /** * Lifetime of the cookie. */ ttl: outputs.compute.beta.DurationResponse; } /** * This message defines settings for a consistent hash style load balancer. */ interface ConsistentHashLoadBalancerSettingsResponse { /** * Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ httpCookie: outputs.compute.beta.ConsistentHashLoadBalancerSettingsHttpCookieResponse; /** * The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD. */ httpHeaderName: string; /** * The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node. */ minimumRingSize: string; } /** * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. */ interface CorsPolicyResponse { /** * In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false. */ allowCredentials: boolean; /** * Specifies the content for the Access-Control-Allow-Headers header. */ allowHeaders: string[]; /** * Specifies the content for the Access-Control-Allow-Methods header. */ allowMethods: string[]; /** * Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ allowOriginRegexes: string[]; /** * Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. */ allowOrigins: string[]; /** * If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. */ disabled: boolean; /** * Specifies the content for the Access-Control-Expose-Headers header. */ exposeHeaders: string[]; /** * Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header. */ maxAge: number; } /** * Specifies the mapping between the response code that will be returned along with the custom error content and the response code returned by the backend service. */ interface CustomErrorResponsePolicyCustomErrorResponseRuleResponse { /** * Valid values include: - A number between 400 and 599: For example 401 or 503, in which case the load balancer applies the policy if the error code exactly matches this value. - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. - 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499. Values must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy. */ matchResponseCodes: string[]; /** * The HTTP status code returned with the response containing the custom error content. If overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client. */ overrideResponseCode: number; /** * The full path to a file within backendBucket . For example: /errors/defaultError.html path must start with a leading slash. path cannot have trailing slashes. If the file is not available in backendBucket or the load balancer cannot reach the BackendBucket, a simple Not Found Error is returned to the client. The value must be from 1 to 1024 characters */ path: string; } /** * Specifies the custom error response policy that must be applied when the backend service or backend bucket responds with an error. */ interface CustomErrorResponsePolicyResponse { /** * Specifies rules for returning error responses. In a given policy, if you specify rules for both a range of error codes as well as rules for specific error codes then rules with specific error codes have a higher priority. For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). If the backend service returns a 401, then the rule for 401 will be applied. However if the backend service returns a 403, the rule for 4xx takes effect. */ errorResponseRules: outputs.compute.beta.CustomErrorResponsePolicyCustomErrorResponseRuleResponse[]; /** * The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: - https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket - compute/v1/projects/project/global/backendBuckets/myBackendBucket - global/backendBuckets/myBackendBucket If errorService is not specified at lower levels like pathMatcher, pathRule and routeRule, an errorService specified at a higher level in the UrlMap will be used. If UrlMap.defaultCustomErrorResponsePolicy contains one or more errorResponseRules[], it must specify errorService. If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). errorService is not supported for internal or regional HTTP/HTTPS load balancers. */ errorService: string; } interface CustomerEncryptionKeyResponse { /** * The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 */ kmsKeyName: string; /** * The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ */ kmsKeyServiceAccount: string; /** * Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" */ rawKey: string; /** * Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem */ rsaEncryptedKey: string; /** * [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource. */ sha256: string; } /** * Deprecation status for a public resource. */ interface DeprecationStatusResponse { /** * An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it. */ deleted: string; /** * An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it. */ deprecated: string; /** * An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it. */ obsolete: string; /** * The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource. */ replacement: string; /** * The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error. */ state: string; /** * The rollout policy for this deprecation. This policy is only enforced by image family views. The rollout policy restricts the zones where the associated resource is considered in a deprecated state. When the rollout policy does not include the user specified zone, or if the zone is rolled out, the associated resource is considered in a deprecated state. The rollout policy for this deprecation is read-only, except for allowlisted users. This field might not be configured. To view the latest non-deprecated image in a specific zone, use the imageFamilyViews.get method. */ stateOverride: outputs.compute.beta.RolloutPolicyResponse; } interface DiskAsyncReplicationResponse { /** * URL of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group. */ consistencyGroupPolicy: string; /** * ID of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group. */ consistencyGroupPolicyId: string; /** * The other disk asynchronously replicated to or from the current disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk */ disk: string; /** * The unique ID of the other disk asynchronously replicated to or from the current disk. This value identifies the exact disk that was used to create this replication. For example, if you started replicating the persistent disk from a disk that was later deleted and recreated under the same name, the disk ID would identify the exact version of the disk that was used. */ diskId: string; } /** * A specification of the desired way to instantiate a disk in the instance template when its created from a source instance. */ interface DiskInstantiationConfigResponse { /** * Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * The custom source image to be used to restore this disk when instantiating this instance template. */ customImage: string; /** * Specifies the device name of the disk to which the configurations apply to. */ deviceName: string; /** * Specifies whether to include the disk and what image to use. Possible values are: - source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. - attach-read-only: to attach a read-only disk. Applicable to read-only disks. - do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks. */ instantiateFrom: string; } /** * Additional disk params. */ interface DiskParamsResponse { /** * Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; } interface DiskResourceStatusAsyncReplicationStatusResponse { state: string; } interface DiskResourceStatusResponse { asyncPrimaryDisk: outputs.compute.beta.DiskResourceStatusAsyncReplicationStatusResponse; /** * Key: disk, value: AsyncReplicationStatus message */ asyncSecondaryDisks: { [key: string]: string; }; } /** * A set of Display Device options */ interface DisplayDeviceResponse { /** * Defines whether the instance has Display enabled. */ enableDisplay: boolean; } interface DistributionPolicyResponse { /** * The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType). */ targetShape: string; /** * Zones where the regional managed instance group will create and manage its instances. */ zones: outputs.compute.beta.DistributionPolicyZoneConfigurationResponse[]; } interface DistributionPolicyZoneConfigurationResponse { /** * The URL of the zone. The zone must exist in the region where the managed instance group is located. */ zone: string; } /** * A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. */ interface DurationResponse { /** * Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive. */ nanos: number; /** * Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years */ seconds: string; } /** * Describes the cause of the error with structured details. Example of an error when contacting the "pubsub.googleapis.com" API when it is not enabled: { "reason": "API_DISABLED" "domain": "googleapis.com" "metadata": { "resource": "projects/123", "service": "pubsub.googleapis.com" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata": { "availableRegions": "us-central1,us-east2" } } */ interface ErrorInfoResponse { /** * The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". */ domain: string; /** * Additional structured details about this error. Keys should match /[a-zA-Z0-9-_]/ and be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. */ metadatas: { [key: string]: string; }; /** * The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE. */ reason: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * The interface for the external VPN gateway. */ interface ExternalVpnGatewayInterfaceResponse { /** * IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. */ ipAddress: string; /** * IPv6 address of the interface in the external VPN gateway. This IPv6 address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. Must specify an IPv6 address (not IPV4-mapped) using any format described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). */ ipv6Address: string; } interface FileContentBufferResponse { /** * The raw content in the secure keys file. */ content: string; /** * The file type of source file. */ fileType: string; } interface FirewallAllowedItemResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports: string[]; } interface FirewallDeniedItemResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports: string[]; } /** * The available logging options for a firewall rule. */ interface FirewallLogConfigResponse { /** * This field denotes whether to enable logging for a particular firewall rule. */ enable: boolean; /** * This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs. */ metadata: string; } interface FirewallPolicyAssociationResponse { /** * The target that the firewall policy is attached to. */ attachmentTarget: string; /** * Deprecated, please use short name instead. The display name of the firewall policy of the association. */ displayName: string; /** * The firewall policy ID of the association. */ firewallPolicyId: string; /** * The name for an association. */ name: string; /** * The short name of the firewall policy of the association. */ shortName: string; } interface FirewallPolicyRuleMatcherLayer4ConfigResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports: string[]; } /** * Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. */ interface FirewallPolicyRuleMatcherResponse { /** * Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. */ destAddressGroups: string[]; /** * Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. */ destFqdns: string[]; /** * CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. */ destIpRanges: string[]; /** * Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. */ destRegionCodes: string[]; /** * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. */ destThreatIntelligences: string[]; /** * Pairs of IP protocols and ports that the rule should match. */ layer4Configs: outputs.compute.beta.FirewallPolicyRuleMatcherLayer4ConfigResponse[]; /** * Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. */ srcAddressGroups: string[]; /** * Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. */ srcFqdns: string[]; /** * CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. */ srcIpRanges: string[]; /** * Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. */ srcRegionCodes: string[]; /** * List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum number of source tag values allowed is 256. */ srcSecureTags: outputs.compute.beta.FirewallPolicyRuleSecureTagResponse[]; /** * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. */ srcThreatIntelligences: string[]; } /** * Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). */ interface FirewallPolicyRuleResponse { /** * The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny" and "goto_next". */ action: string; /** * An optional description for this resource. */ description: string; /** * The direction in which this rule applies. */ direction: string; /** * Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. */ disabled: boolean; /** * Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. */ enableLogging: boolean; /** * [Output only] Type of the resource. Always compute#firewallPolicyRule for firewall policy rules */ kind: string; /** * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. */ match: outputs.compute.beta.FirewallPolicyRuleMatcherResponse; /** * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. */ priority: number; /** * An optional name for the rule. This field is not a unique identifier and can be updated. */ ruleName: string; /** * Calculation of the complexity of a single firewall policy rule. */ ruleTupleCount: number; /** * A fully-qualified URL of a SecurityProfile resource instance. Example: https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. */ securityProfileGroup: string; /** * A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. */ targetResources: string[]; /** * A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the target_secure_tag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule applies to all instances on the specified network. Maximum number of target label tags allowed is 256. */ targetSecureTags: outputs.compute.beta.FirewallPolicyRuleSecureTagResponse[]; /** * A list of service accounts indicating the sets of instances that are applied with this rule. */ targetServiceAccounts: string[]; /** * Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions. */ tlsInspect: boolean; } interface FirewallPolicyRuleSecureTagResponse { /** * Name of the secure tag, created with TagManager's TagValue API. */ name: string; /** * State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted. */ state: string; } /** * Encapsulates numeric value that can be either absolute or relative. */ interface FixedOrPercentResponse { /** * Absolute value of VM instances calculated based on the specific mode. - If the value is fixed, then the calculated value is equal to the fixed value. - If the value is a percent, then the calculated value is percent/100 * targetSize. For example, the calculated value of a 80% of a managed instance group with 150 instances would be (80/100 * 150) = 120 VM instances. If there is a remainder, the number is rounded. */ calculated: number; /** * Specifies a fixed number of VM instances. This must be a positive integer. */ fixed: number; /** * Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. */ percent: number; } /** * Describes the auto-registration of the Forwarding Rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this Forwarding Rule. */ interface ForwardingRuleServiceDirectoryRegistrationResponse { /** * Service Directory namespace to register the forwarding rule under. */ namespace: string; /** * Service Directory service to register the forwarding rule under. */ service: string; /** * [Optional] Service Directory region to register this global forwarding rule under. Default to "us-central1". Only used for PSC for Google APIs. All PSC for Google APIs Forwarding Rules on the same network should use the same Service Directory region. */ serviceDirectoryRegion: string; } interface FutureReservationSpecificSKUPropertiesResponse { /** * Properties of the SKU instances being reserved. */ instanceProperties: outputs.compute.beta.AllocationSpecificSKUAllocationReservedInstancePropertiesResponse; /** * The instance template that will be used to populate the ReservedInstanceProperties of the future reservation */ sourceInstanceTemplate: string; /** * Total number of instances for which capacity assurance is requested at a future time period. */ totalCount: string; } /** * The properties of the last known good state for the Future Reservation. */ interface FutureReservationStatusLastKnownGoodStateFutureReservationSpecsResponse { /** * The previous share settings of the Future Reservation. */ shareSettings: outputs.compute.beta.ShareSettingsResponse; /** * The previous instance related properties of the Future Reservation. */ specificSkuProperties: outputs.compute.beta.FutureReservationSpecificSKUPropertiesResponse; /** * The previous time window of the Future Reservation. */ timeWindow: outputs.compute.beta.FutureReservationTimeWindowResponse; } /** * The state that the future reservation will be reverted to should the amendment be declined. */ interface FutureReservationStatusLastKnownGoodStateResponse { /** * The description of the FutureReservation before an amendment was requested. */ description: string; futureReservationSpecs: outputs.compute.beta.FutureReservationStatusLastKnownGoodStateFutureReservationSpecsResponse; /** * The lock time of the FutureReservation before an amendment was requested. */ lockTime: string; /** * The name prefix of the Future Reservation before an amendment was requested. */ namePrefix: string; /** * The status of the last known good state for the Future Reservation. */ procurementStatus: string; } /** * [Output only] Represents status related to the future reservation. */ interface FutureReservationStatusResponse { /** * The current status of the requested amendment. */ amendmentStatus: string; /** * Fully qualified urls of the automatically created reservations at start_time. */ autoCreatedReservations: string[]; /** * This count indicates the fulfilled capacity so far. This is set during "PROVISIONING" state. This count also includes capacity delivered as part of existing matching reservations. */ fulfilledCount: string; /** * This field represents the future reservation before an amendment was requested. If the amendment is declined, the Future Reservation will be reverted to the last known good state. The last known good state is not set when updating a future reservation whose Procurement Status is DRAFTING. */ lastKnownGoodState: outputs.compute.beta.FutureReservationStatusLastKnownGoodStateResponse; /** * Time when Future Reservation would become LOCKED, after which no modifications to Future Reservation will be allowed. Applicable only after the Future Reservation is in the APPROVED state. The lock_time is an RFC3339 string. The procurement_status will transition to PROCURING state at this time. */ lockTime: string; /** * Current state of this Future Reservation */ procurementStatus: string; specificSkuProperties: outputs.compute.beta.FutureReservationStatusSpecificSKUPropertiesResponse; } /** * Properties to be set for the Future Reservation. */ interface FutureReservationStatusSpecificSKUPropertiesResponse { /** * ID of the instance template used to populate the Future Reservation properties. */ sourceInstanceTemplateId: string; } interface FutureReservationTimeWindowResponse { duration: outputs.compute.beta.DurationResponse; endTime: string; /** * Start time of the Future Reservation. The start_time is an RFC3339 string. */ startTime: string; } interface GRPCHealthCheckResponse { /** * The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII. */ grpcServiceName: string; /** * The TCP port number to which the health check prober sends packets. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; } /** * Guest OS features. */ interface GuestOsFeatureResponse { /** * The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE For more information, see Enabling guest operating system features. */ type: string; } interface HTTP2HealthCheckResponse { /** * The value of the host header in the HTTP/2 health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest */ host: string; /** * The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * The request path of the HTTP/2 health check request. The default value is /. */ requestPath: string; /** * Creates a content-based HTTP/2 health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http */ response: string; } interface HTTPHealthCheckResponse { /** * The value of the host header in the HTTP health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest */ host: string; /** * The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Also supported in legacy HTTP health checks for target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * The request path of the HTTP health check request. The default value is /. */ requestPath: string; /** * Creates a content-based HTTP health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http */ response: string; } interface HTTPSHealthCheckResponse { /** * The value of the host header in the HTTPS health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest */ host: string; /** * The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * The request path of the HTTPS health check request. The default value is /. */ requestPath: string; /** * Creates a content-based HTTPS health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http */ response: string; } /** * Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver. */ interface HealthCheckLogConfigResponse { /** * Indicates whether or not to export logs. This is false by default, which means no health check logging will be done. */ enable: boolean; } /** * Describes a URL link. */ interface HelpLinkResponse { /** * Describes what the link offers. */ description: string; /** * The URL of the link. */ url: string; } /** * Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit. */ interface HelpResponse { /** * URL(s) pointing to additional information on handling the current error. */ links: outputs.compute.beta.HelpLinkResponse[]; } /** * UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService. */ interface HostRuleResponse { /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character, and if followed by anything, the immediate following character must be either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ hosts: string[]; /** * The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion. */ pathMatcher: string; } /** * Specification for how requests are aborted as part of fault injection. */ interface HttpFaultAbortResponse { /** * The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director. */ httpStatus: number; /** * The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive. */ percentage: number; } /** * Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection. */ interface HttpFaultDelayResponse { /** * Specifies the value of the fixed delay interval. */ fixedDelay: outputs.compute.beta.DurationResponse; /** * The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive. */ percentage: number; } /** * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. */ interface HttpFaultInjectionResponse { /** * The specification for how client requests are aborted as part of fault injection. */ abort: outputs.compute.beta.HttpFaultAbortResponse; /** * The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. */ delay: outputs.compute.beta.HttpFaultDelayResponse; } /** * HttpFilterConfiguration supplies additional contextual settings for networkservices.HttpFilter resources enabled by Traffic Director. */ interface HttpFilterConfigResponse { /** * The configuration needed to enable the networkservices.HttpFilter resource. The configuration must be YAML formatted and only contain fields defined in the protobuf identified in configTypeUrl */ config: string; /** * The fully qualified versioned proto3 type url of the protobuf that the filter expects for its contextual settings, for example: type.googleapis.com/google.protobuf.Struct */ configTypeUrl: string; /** * Name of the networkservices.HttpFilter resource this configuration belongs to. This name must be known to the xDS client. Example: envoy.wasm */ filterName: string; } /** * The request and response header transformations that take effect before the request is passed along to the selected backendService. */ interface HttpHeaderActionResponse { /** * Headers to add to a matching request before forwarding the request to the backendService. */ requestHeadersToAdd: outputs.compute.beta.HttpHeaderOptionResponse[]; /** * A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. */ requestHeadersToRemove: string[]; /** * Headers to add the response before sending the response back to the client. */ responseHeadersToAdd: outputs.compute.beta.HttpHeaderOptionResponse[]; /** * A list of header names for headers that need to be removed from the response before sending the response back to the client. */ responseHeadersToRemove: string[]; } /** * matchRule criteria for request header matches. */ interface HttpHeaderMatchResponse { /** * The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ exactMatch: string; /** * The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name ":authority". For matching a request's method, use the headerName ":method". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`. */ headerName: string; /** * If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. */ invertMatch: boolean; /** * The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ prefixMatch: string; /** * A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ presentMatch: boolean; /** * The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL. */ rangeMatch: outputs.compute.beta.Int64RangeMatchResponse; /** * The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ regexMatch: string; /** * The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ suffixMatch: string; } /** * Specification determining how headers are added to requests or responses. */ interface HttpHeaderOptionResponse { /** * The name of the header. */ headerName: string; /** * The value of the header to add. */ headerValue: string; /** * If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. */ replace: boolean; } /** * HttpRouteRuleMatch criteria for a request's query parameter. */ interface HttpQueryParameterMatchResponse { /** * The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. */ exactMatch: string; /** * The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails. */ name: string; /** * Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. */ presentMatch: boolean; /** * The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ regexMatch: string; } /** * Specifies settings for an HTTP redirect. */ interface HttpRedirectActionResponse { /** * The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters. */ hostRedirect: string; /** * If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false. */ httpsRedirect: boolean; /** * The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. */ pathRedirect: string; /** * The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. */ prefixRedirect: string; /** * The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. */ redirectResponseCode: string; /** * If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. */ stripQuery: boolean; } /** * The retry policy associates with HttpRouteRule */ interface HttpRetryPolicyResponse { /** * Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. */ numRetries: number; /** * Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ perTryTimeout: outputs.compute.beta.DurationResponse; /** * Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable */ retryConditions: string[]; } interface HttpRouteActionResponse { /** * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy. */ corsPolicy: outputs.compute.beta.CorsPolicyResponse; /** * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the classic Application Load Balancer . To see which load balancers support fault injection, see Load balancing: Routing and traffic management features. */ faultInjectionPolicy: outputs.compute.beta.HttpFaultInjectionResponse; /** * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. */ maxStreamDuration: outputs.compute.beta.DurationResponse; /** * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ requestMirrorPolicy: outputs.compute.beta.RequestMirrorPolicyResponse; /** * Specifies the retry policy associated with this route. */ retryPolicy: outputs.compute.beta.HttpRetryPolicyResponse; /** * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ timeout: outputs.compute.beta.DurationResponse; /** * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for classic Application Load Balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ urlRewrite: outputs.compute.beta.UrlRewriteResponse; /** * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. */ weightedBackendServices: outputs.compute.beta.WeightedBackendServiceResponse[]; } /** * HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur. */ interface HttpRouteRuleMatchResponse { /** * For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. */ fullPathMatch: string; /** * Specifies a list of header match criteria, all of which must match corresponding headers in the request. */ headerMatches: outputs.compute.beta.HttpHeaderMatchResponse[]; /** * Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy. */ ignoreCase: boolean; /** * Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ metadataFilters: outputs.compute.beta.MetadataFilterResponse[]; /** * If specified, the route is a pattern match expression that must match the :path header once the query string is removed. A pattern match allows you to match - The value must be between 1 and 1024 characters - The pattern must start with a leading slash ("/") - There may be no more than 5 operators in pattern Precisely one of prefix_match, full_path_match, regex_match or path_template_match must be set. */ pathTemplateMatch: string; /** * For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. */ prefixMatch: string; /** * Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy. */ queryParameterMatches: outputs.compute.beta.HttpQueryParameterMatchResponse[]; /** * For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ regexMatch: string; } /** * The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform. */ interface HttpRouteRuleResponse { /** * customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. If a policy for an error code is not configured for the RouteRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with routeRules.routeAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the customErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the customErrorResponsePolicy is ignored and the response from the service is returned to the client. customErrorResponsePolicy is supported only for global external Application Load Balancers. */ customErrorResponsePolicy: outputs.compute.beta.CustomErrorResponsePolicyResponse; /** * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters. */ description: string; /** * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ headerAction: outputs.compute.beta.HttpHeaderActionResponse; /** * Outbound route specific configuration for networkservices.HttpFilter resources enabled by Traffic Director. httpFilterConfigs only applies for load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ httpFilterConfigs: outputs.compute.beta.HttpFilterConfigResponse[]; /** * Outbound route specific metadata supplied to networkservices.HttpFilter resources enabled by Traffic Director. httpFilterMetadata only applies for load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details. The only configTypeUrl supported is type.googleapis.com/google.protobuf.Struct Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ httpFilterMetadata: outputs.compute.beta.HttpFilterConfigResponse[]; /** * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule. */ matchRules: outputs.compute.beta.HttpRouteRuleMatchResponse[]; /** * For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules. */ priority: number; /** * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a route rule's routeAction. */ routeAction: outputs.compute.beta.HttpRouteActionResponse; /** * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. */ service: string; /** * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. */ urlRedirect: outputs.compute.beta.HttpRedirectActionResponse; } /** * The parameters of the raw disk image. */ interface ImageRawDiskResponse { /** * The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created. */ containerType: string; /** * [Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created. * * @deprecated [Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created. */ sha1Checksum: string; /** * The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL */ source: string; } /** * Initial State for shielded instance, these are public keys which are safe to store in public */ interface InitialStateConfigResponse { /** * The Key Database (db). */ dbs: outputs.compute.beta.FileContentBufferResponse[]; /** * The forbidden key database (dbx). */ dbxs: outputs.compute.beta.FileContentBufferResponse[]; /** * The Key Exchange Key (KEK). */ keks: outputs.compute.beta.FileContentBufferResponse[]; /** * The Platform Key (PK). */ pk: outputs.compute.beta.FileContentBufferResponse; } interface InstanceGroupManagerActionsSummaryResponse { /** * The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it. */ abandoning: number; /** * The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully. If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated. */ creating: number; /** * The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly. */ creatingWithoutRetries: number; /** * The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted. */ deleting: number; /** * The number of instances in the managed instance group that are running and have no scheduled actions. */ none: number; /** * The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template. */ recreating: number; /** * The number of instances in the managed instance group that are being reconfigured with properties that do not require a restart or a recreate action. For example, setting or removing target pools for the instance. */ refreshing: number; /** * The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted. */ restarting: number; /** * The number of instances in the managed instance group that are scheduled to be resumed or are currently being resumed. */ resuming: number; /** * The number of instances in the managed instance group that are scheduled to be started or are currently being started. */ starting: number; /** * The number of instances in the managed instance group that are scheduled to be stopped or are currently being stopped. */ stopping: number; /** * The number of instances in the managed instance group that are scheduled to be suspended or are currently being suspended. */ suspending: number; /** * The number of instances in the managed instance group that are being verified. See the managedInstances[].currentAction property in the listManagedInstances method documentation. */ verifying: number; } interface InstanceGroupManagerAllInstancesConfigResponse { /** * Properties to set on all instances in the group. You can add or modify properties using the instanceGroupManagers.patch or regionInstanceGroupManagers.patch. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration. To apply the configuration, set the group's updatePolicy.type field to use proactive updates or use the applyUpdatesToInstances method. */ properties: outputs.compute.beta.InstancePropertiesPatchResponse; } interface InstanceGroupManagerAutoHealingPolicyResponse { /** * The URL for the health check that signals autohealing. */ healthCheck: string; /** * The initial delay is the number of seconds that a new VM takes to initialize and run its startup script. During a VM's initial delay period, the MIG ignores unsuccessful health checks because the VM might be in the startup process. This prevents the MIG from prematurely recreating a VM. If the health check receives a healthy response during the initial delay, it indicates that the startup process is complete and the VM is ready. The value of initial delay must be between 0 and 3600 seconds. The default value is 0. */ initialDelaySec: number; } interface InstanceGroupManagerInstanceFlexibilityPolicyResponse { /** * Named instance selections configuring properties that the group will use when creating new VMs. */ instanceSelectionLists: { [key: string]: string; }; } interface InstanceGroupManagerInstanceLifecyclePolicyResponse { /** * The action that a MIG performs on a failed or an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid values are - REPAIR (default): MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG. - DO_NOTHING: MIG does not repair a failed or an unhealthy VM. */ defaultActionOnFailure: string; /** * A bit indicating whether to forcefully apply the group's latest configuration when repairing a VM. Valid options are: - NO (default): If configuration updates are available, they are not forcefully applied during repair. Instead, configuration updates are applied according to the group's update policy. - YES: If configuration updates are available, they are applied during repair. */ forceUpdateOnRepair: string; } interface InstanceGroupManagerResizeRequestStatusErrorErrorsItemErrorDetailsItemResponse { errorInfo: outputs.compute.beta.ErrorInfoResponse; help: outputs.compute.beta.HelpResponse; localizedMessage: outputs.compute.beta.LocalizedMessageResponse; quotaInfo: outputs.compute.beta.QuotaExceededInfoResponse; } interface InstanceGroupManagerResizeRequestStatusErrorErrorsItemResponse { /** * The error type identifier for this error. */ code: string; /** * An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. */ errorDetails: outputs.compute.beta.InstanceGroupManagerResizeRequestStatusErrorErrorsItemErrorDetailsItemResponse[]; /** * Indicates the field in the request that caused the error. This property is optional. */ location: string; /** * An optional, human-readable error message. */ message: string; } /** * Errors encountered during the queueing or provisioning phases of the ResizeRequest. */ interface InstanceGroupManagerResizeRequestStatusErrorResponse { /** * The array of errors encountered while processing this operation. */ errors: outputs.compute.beta.InstanceGroupManagerResizeRequestStatusErrorErrorsItemResponse[]; } interface InstanceGroupManagerResizeRequestStatusResponse { /** * Errors encountered during the queueing or provisioning phases of the ResizeRequest. */ error: outputs.compute.beta.InstanceGroupManagerResizeRequestStatusErrorResponse; } interface InstanceGroupManagerStandbyPolicyResponse { initialDelaySec: number; /** * Defines behaviour of using instances from standby pool to resize MIG. */ mode: string; } interface InstanceGroupManagerStatusAllInstancesConfigResponse { /** * Current all-instances configuration revision. This value is in RFC3339 text format. */ currentRevision: string; /** * A bit indicating whether this configuration has been applied to all managed instances in the group. */ effective: boolean; } interface InstanceGroupManagerStatusResponse { /** * [Output only] Status of all-instances configuration on the group. */ allInstancesConfig: outputs.compute.beta.InstanceGroupManagerStatusAllInstancesConfigResponse; /** * The URL of the Autoscaler that targets this instance group manager. */ autoscaler: string; /** * A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified. */ isStable: boolean; /** * Stateful status of the given Instance Group Manager. */ stateful: outputs.compute.beta.InstanceGroupManagerStatusStatefulResponse; /** * A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager. */ versionTarget: outputs.compute.beta.InstanceGroupManagerStatusVersionTargetResponse; } interface InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse { /** * A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs. */ allEffective: boolean; } interface InstanceGroupManagerStatusStatefulResponse { /** * A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. */ hasStatefulConfig: boolean; /** * A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. This field is deprecated in favor of has_stateful_config. * * @deprecated [Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. This field is deprecated in favor of has_stateful_config. */ isStateful: boolean; /** * Status of per-instance configurations on the instance. */ perInstanceConfigs: outputs.compute.beta.InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse; } interface InstanceGroupManagerStatusVersionTargetResponse { /** * A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager. */ isReached: boolean; } interface InstanceGroupManagerUpdatePolicyResponse { /** * The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. */ instanceRedistributionType: string; /** * The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge. */ maxSurge: outputs.compute.beta.FixedOrPercentResponse; /** * The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable. */ maxUnavailable: outputs.compute.beta.FixedOrPercentResponse; /** * Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]. */ minReadySec: number; /** * Minimal action to be taken on an instance. Use this option to minimize disruption as much as possible or to apply a more disruptive action than is necessary. - To limit disruption as much as possible, set the minimal action to REFRESH. If your update requires a more disruptive action, Compute Engine performs the necessary action to execute the update. - To apply a more disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For example, Compute Engine does not need to restart a VM to change its metadata. But if your application reads instance metadata only when a VM is restarted, you can set the minimal action to RESTART in order to pick up metadata changes. */ minimalAction: string; /** * Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to avoid restarting the VM and to limit disruption as much as possible. RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all. */ mostDisruptiveAllowedAction: string; /** * What action should be used to replace instances. See minimal_action.REPLACE */ replacementMethod: string; /** * The type of update process. You can specify either PROACTIVE so that the MIG automatically updates VMs to the latest configurations or OPPORTUNISTIC so that you can select the VMs that you want to update. */ type: string; } interface InstanceGroupManagerVersionResponse { /** * The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached. */ instanceTemplate: string; /** * Name of the version. Unique among all versions in the scope of this managed instance group. */ name: string; /** * Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information. */ targetSize: outputs.compute.beta.FixedOrPercentResponse; } /** * Additional instance params. */ interface InstanceParamsResponse { /** * Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; } /** * Represents the change that you want to make to the instance properties. */ interface InstancePropertiesPatchResponse { /** * The label key-value pairs that you want to patch onto the instance. */ labels: { [key: string]: string; }; /** * The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata. */ metadata: { [key: string]: string; }; } interface InstancePropertiesResponse { /** * Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet. */ advancedMachineFeatures: outputs.compute.beta.AdvancedMachineFeaturesResponse; /** * Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. */ canIpForward: boolean; /** * Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet. */ confidentialInstanceConfig: outputs.compute.beta.ConfidentialInstanceConfigResponse; /** * An optional text description for the instances that are created from these properties. */ description: string; /** * An array of disks that are associated with the instances that are created from these properties. */ disks: outputs.compute.beta.AttachedDiskResponse[]; /** * Display Device properties to enable support for remote display products like: Teradici, VNC and TeamViewer Note that for MachineImage, this is not supported yet. */ displayDevice: outputs.compute.beta.DisplayDeviceResponse; /** * A list of guest accelerator cards' type and count to use for instances created from these properties. */ guestAccelerators: outputs.compute.beta.AcceleratorConfigResponse[]; /** * KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. */ keyRevocationActionType: string; /** * Labels to apply to instances that are created from these properties. */ labels: { [key: string]: string; }; /** * The machine type to use for instances that are created from these properties. */ machineType: string; /** * The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. */ metadata: outputs.compute.beta.MetadataResponse; /** * Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. */ minCpuPlatform: string; /** * An array of network access configurations for this interface. */ networkInterfaces: outputs.compute.beta.NetworkInterfaceResponse[]; /** * Note that for MachineImage, this is not supported yet. */ networkPerformanceConfig: outputs.compute.beta.NetworkPerformanceConfigResponse; /** * PostKeyRevocationActionType of the instance. */ postKeyRevocationActionType: string; /** * The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet. */ privateIpv6GoogleAccess: string; /** * Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet. */ reservationAffinity: outputs.compute.beta.ReservationAffinityResponse; /** * Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; /** * Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet. */ resourcePolicies: string[]; /** * Specifies the scheduling options for the instances that are created from these properties. */ scheduling: outputs.compute.beta.SchedulingResponse; /** * A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances. */ serviceAccounts: outputs.compute.beta.ServiceAccountResponse[]; /** * Note that for MachineImage, this is not supported yet. */ shieldedInstanceConfig: outputs.compute.beta.ShieldedInstanceConfigResponse; /** * Specifies the Shielded VM options for the instances that are created from these properties. */ shieldedVmConfig: outputs.compute.beta.ShieldedVmConfigResponse; /** * A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. */ tags: outputs.compute.beta.TagsResponse; } interface InstantSnapshotResourceStatusResponse { /** * The storage size of this instant snapshot. */ storageSizeBytes: string; } /** * HttpRouteRuleMatch criteria for field values that must stay within the specified integer range. */ interface Int64RangeMatchResponse { /** * The end of the range (exclusive) in signed long integer format. */ rangeEnd: string; /** * The start of the range (inclusive) in signed long integer format. */ rangeStart: string; } interface InterconnectAttachmentConfigurationConstraintsBgpPeerASNRangeResponse { max: number; min: number; } interface InterconnectAttachmentConfigurationConstraintsResponse { /** * Whether the attachment's BGP session requires/allows/disallows BGP MD5 authentication. This can take one of the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud Interconnect connection to a remote cloud provider that requires BGP MD5 authentication has the interconnectRemoteLocation attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and that property is propagated to the attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is returned if MD5 is requested. */ bgpMd5: string; /** * List of ASN ranges that the remote location is known to support. Formatted as an array of inclusive ranges {min: min-value, max: max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}] allows the peer ASN to be 123 or anything in the range 64512-65534. This field is only advisory. Although the API accepts other ranges, these are the ranges that we recommend. */ bgpPeerAsnRanges: outputs.compute.beta.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRangeResponse[]; } /** * Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments. */ interface InterconnectAttachmentPartnerMetadataResponse { /** * Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance "Chicago 1". This value may be validated to match approved Partner values. */ interconnectName: string; /** * Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values. */ partnerName: string; /** * URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values. */ portalUrl: string; } /** * Information for an interconnect attachment when this belongs to an interconnect of type DEDICATED. */ interface InterconnectAttachmentPrivateInfoResponse { /** * 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region. */ tag8021q: number; } /** * Describes a single physical circuit between the Customer and Google. CircuitInfo objects are created by Google, so all fields are output only. */ interface InterconnectCircuitInfoResponse { /** * Customer-side demarc ID for this circuit. */ customerDemarcId: string; /** * Google-assigned unique ID for this circuit. Assigned at circuit turn-up. */ googleCircuitId: string; /** * Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by Google to the customer in the LOA. */ googleDemarcId: string; } /** * Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode. */ interface InterconnectMacsecPreSharedKeyResponse { /** * A name for this pre-shared key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * A RFC3339 timestamp on or after which the key is valid. startTime can be in the future. If the keychain has a single key, startTime can be omitted. If the keychain has multiple keys, startTime is mandatory for each key. The start times of keys must be in increasing order. The start times of two consecutive keys must be at least 6 hours apart. */ startTime: string; } /** * Configuration information for enabling Media Access Control security (MACsec) on this Cloud Interconnect connection between Google and your on-premises router. */ interface InterconnectMacsecResponse { /** * If set to true, the Interconnect connection is configured with a should-secure MACsec security policy, that allows the Google router to fallback to cleartext traffic if the MKA session cannot be established. By default, the Interconnect connection is configured with a must-secure security policy that drops all traffic if the MKA session cannot be established with your router. */ failOpen: boolean; /** * A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link. */ preSharedKeys: outputs.compute.beta.InterconnectMacsecPreSharedKeyResponse[]; } /** * Description of a planned outage on this Interconnect. */ interface InterconnectOutageNotificationResponse { /** * If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected. */ affectedCircuits: string[]; /** * A description about the purpose of the outage. */ description: string; /** * Scheduled end time for the outage (milliseconds since Unix epoch). */ endTime: string; /** * Form this outage is expected to take, which can take one of the following values: - OUTAGE: The Interconnect may be completely out of service for some or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain up, but with reduced bandwidth. Note that the versions of this enum prefixed with "IT_" have been deprecated in favor of the unprefixed values. */ issueType: string; /** * Unique identifier for this outage notification. */ name: string; /** * The party that generated this notification, which can take the following value: - GOOGLE: this notification as generated by Google. Note that the value of NSRC_GOOGLE has been deprecated in favor of GOOGLE. */ source: string; /** * Scheduled start time for the outage (milliseconds since Unix epoch). */ startTime: string; /** * State of this notification, which can take one of the following values: - ACTIVE: This outage notification is active. The event could be in the past, present, or future. See start_time and end_time for scheduling. - CANCELLED: The outage associated with this notification was cancelled before the outage was due to start. - COMPLETED: The outage associated with this notification is complete. Note that the versions of this enum prefixed with "NS_" have been deprecated in favor of the unprefixed values. */ state: string; } /** * Commitment for a particular license resource. */ interface LicenseResourceCommitmentResponse { /** * The number of licenses purchased. */ amount: string; /** * Specifies the core range of the instance for which this license applies. */ coresPerLicense: string; /** * Any applicable license URI. */ license: string; } interface LicenseResourceRequirementsResponse { /** * Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start. */ minGuestCpuCount: number; /** * Minimum memory required to use the Instance. Enforced at Instance creation and Instance start. */ minMemoryMb: number; } interface LocalDiskResponse { /** * Specifies the number of such disks. */ diskCount: number; /** * Specifies the size of the disk in base-2 GB. */ diskSizeGb: number; /** * Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. */ diskType: string; } /** * Provides a localized error message that is safe to return to the user which can be attached to an RPC error. */ interface LocalizedMessageResponse { /** * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" */ locale: string; /** * The localized error message in the above locale. */ message: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigCloudAuditOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ authorizationLoggingOptions: outputs.compute.beta.AuthorizationLoggingOptionsResponse; /** * This is deprecated and has no effect. Do not use. */ logName: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigCounterOptionsCustomFieldResponse { /** * This is deprecated and has no effect. Do not use. */ name: string; /** * This is deprecated and has no effect. Do not use. */ value: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigCounterOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ customFields: outputs.compute.beta.LogConfigCounterOptionsCustomFieldResponse[]; /** * This is deprecated and has no effect. Do not use. */ field: string; /** * This is deprecated and has no effect. Do not use. */ metric: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigDataAccessOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ logMode: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigResponse { /** * This is deprecated and has no effect. Do not use. */ cloudAudit: outputs.compute.beta.LogConfigCloudAuditOptionsResponse; /** * This is deprecated and has no effect. Do not use. */ counter: outputs.compute.beta.LogConfigCounterOptionsResponse; /** * This is deprecated and has no effect. Do not use. */ dataAccess: outputs.compute.beta.LogConfigDataAccessOptionsResponse; } /** * MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer. */ interface MetadataFilterLabelMatchResponse { /** * Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long. */ name: string; /** * The value of the label must match the specified value. value can have a maximum length of 1024 characters. */ value: string; } /** * Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers. */ interface MetadataFilterResponse { /** * The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries. */ filterLabels: outputs.compute.beta.MetadataFilterLabelMatchResponse[]; /** * Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. */ filterMatchCriteria: string; } /** * Metadata */ interface MetadataItemsItemResponse { /** * Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project. */ key: string; /** * Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB). */ value: string; } /** * A metadata key/value entry. */ interface MetadataResponse { /** * Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource. */ fingerprint: string; /** * Array of key/value pairs. The total size of all keys and values must be less than 512 KB. */ items: outputs.compute.beta.MetadataItemsItemResponse[]; /** * Type of the resource. Always compute#metadata for metadata. */ kind: string; } /** * The named port. For example: <"http", 80>. */ interface NamedPortResponse { /** * The name for this named port. The name must be 1-63 characters long, and comply with RFC1035. */ name: string; /** * The port number, which can be a value between 1 and 65535. */ port: number; } /** * [Output Only] A connection connected to this network attachment. */ interface NetworkAttachmentConnectedEndpointResponse { /** * The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless. */ ipAddress: string; /** * The IPv6 address assigned to the producer instance network interface. This is only assigned when the stack types of both the instance network interface and the consumer subnet are IPv4_IPv6. */ ipv6Address: string; /** * The project id or number of the interface to which the IP was assigned. */ projectIdOrNum: string; /** * Alias IP ranges from the same subnetwork. */ secondaryIpCidrRanges: string[]; /** * The status of a connected endpoint to this network attachment. */ status: string; /** * The subnetwork used to assign the IP to the producer instance network interface. */ subnetwork: string; /** * The CIDR range of the subnet from which the IPv4 internal IP was allocated from. */ subnetworkCidrRange: string; } /** * Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupAppEngineResponse { /** * Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: "default", "my-service". */ service: string; /** * A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. */ urlMask: string; /** * Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: "v1", "v2". */ version: string; } /** * Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupCloudFunctionResponse { /** * A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: "func1". */ function: string; /** * A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs " mydomain.com/function1" and "mydomain.com/function2" can be backed by the same Serverless NEG with URL mask "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. */ urlMask: string; } /** * Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupCloudRunResponse { /** * Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: "run-service". */ service: string; /** * Optional Cloud Run tag represents the "named-revision" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: "revision-0010". */ tag: string; /** * A template to parse and fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. */ urlMask: string; } /** * Load balancing specific fields for network endpoint group. */ interface NetworkEndpointGroupLbNetworkEndpointGroupResponse { /** * The default port used if the port number is not specified in the network endpoint. [Deprecated] This field is deprecated. * * @deprecated The default port used if the port number is not specified in the network endpoint. [Deprecated] This field is deprecated. */ defaultPort: number; /** * The URL of the network to which all network endpoints in the NEG belong. Uses "default" project network if unspecified. [Deprecated] This field is deprecated. * * @deprecated The URL of the network to which all network endpoints in the NEG belong. Uses "default" project network if unspecified. [Deprecated] This field is deprecated. */ network: string; /** * Optional URL of the subnetwork to which all network endpoints in the NEG belong. [Deprecated] This field is deprecated. * * @deprecated Optional URL of the subnetwork to which all network endpoints in the NEG belong. [Deprecated] This field is deprecated. */ subnetwork: string; /** * The URL of the zone where the network endpoint group is located. [Deprecated] This field is deprecated. * * @deprecated [Output Only] The URL of the zone where the network endpoint group is located. [Deprecated] This field is deprecated. */ zone: string; } /** * All data that is specifically relevant to only network endpoint groups of type PRIVATE_SERVICE_CONNECT. */ interface NetworkEndpointGroupPscDataResponse { /** * Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB. */ consumerPscAddress: string; /** * The PSC connection id of the PSC Network Endpoint Group Consumer. */ pscConnectionId: string; /** * The connection status of the PSC Forwarding Rule. */ pscConnectionStatus: string; } /** * Configuration for a serverless network endpoint group (NEG). The platform must be provided. Note: The target backend service must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupServerlessDeploymentResponse { /** * The platform of the backend target(s) of this NEG. The only supported value is API Gateway: apigateway.googleapis.com. */ platform: string; /** * The user-defined name of the workload/instance. This value must be provided explicitly or in the urlMask. The resource identified by this value is platform-specific and is as follows: 1. API Gateway: The gateway ID 2. App Engine: The service name 3. Cloud Functions: The function name 4. Cloud Run: The service name */ resource: string; /** * A template to parse platform-specific fields from a request URL. URL mask allows for routing to multiple resources on the same serverless platform without having to create multiple Network Endpoint Groups and backend resources. The fields parsed by this template are platform-specific and are as follows: 1. API Gateway: The gateway ID 2. App Engine: The service and version 3. Cloud Functions: The function name 4. Cloud Run: The service and tag */ urlMask: string; /** * The optional resource version. The version identified by this value is platform-specific and is follows: 1. API Gateway: Unused 2. App Engine: The service version 3. Cloud Functions: Unused 4. Cloud Run: The service tag */ version: string; } /** * A network interface resource attached to an instance. */ interface NetworkInterfaceResponse { /** * An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access. */ accessConfigs: outputs.compute.beta.AccessConfigResponse[]; /** * An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks. */ aliasIpRanges: outputs.compute.beta.AliasIpRangeResponse[]; /** * Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface. The request will fail with error 400 Bad Request if the fingerprint is not provided, or 412 Precondition Failed if the fingerprint is out of date. */ fingerprint: string; /** * The prefix length of the primary internal IPv6 range. */ internalIpv6PrefixLength: number; /** * An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. */ ipv6AccessConfigs: outputs.compute.beta.AccessConfigResponse[]; /** * One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork. Valid only if stackType is IPV4_IPV6. */ ipv6AccessType: string; /** * An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork. */ ipv6Address: string; /** * Type of the resource. Always compute#networkInterface for network interfaces. */ kind: string; /** * The name of the network interface, which is generated by the server. For a VM, the network interface uses the nicN naming format. Where N is a value between 0 and 7. The default interface value is nic0. */ name: string; /** * URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default */ network: string; /** * The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}. */ networkAttachment: string; /** * An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system. */ networkIP: string; /** * The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. */ nicType: string; /** * The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users. */ queueCount: number; /** * The stack type for this network interface. To assign only IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set at instance creation and update network interface operations. */ stackType: string; /** * The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork */ subnetwork: string; } /** * A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering. */ interface NetworkPeeringResponse { /** * This field will be deprecated soon. Use the exchange_subnet_routes field instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE. */ autoCreateRoutes: boolean; /** * Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE. */ exchangeSubnetRoutes: boolean; /** * Whether to export the custom routes to peer network. The default value is false. */ exportCustomRoutes: boolean; /** * Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. IPv4 special-use ranges are always exported to peers and are not controlled by this field. */ exportSubnetRoutesWithPublicIp: boolean; /** * Whether to import the custom routes from peer network. The default value is false. */ importCustomRoutes: boolean; /** * Whether subnet routes with public IP range are imported. The default value is false. IPv4 special-use ranges are always imported from peers and are not controlled by this field. */ importSubnetRoutesWithPublicIp: boolean; /** * Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network. */ network: string; /** * Maximum Transmission Unit in bytes. */ peerMtu: number; /** * Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY. */ stackType: string; /** * State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network. */ state: string; /** * Details about the current state of the peering. */ stateDetails: string; } interface NetworkPerformanceConfigResponse { totalEgressBandwidthTier: string; } /** * A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. */ interface NetworkRoutingConfigResponse { /** * The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions. */ routingMode: string; } interface NodeGroupAutoscalingPolicyResponse { /** * The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100. */ maxNodes: number; /** * The minimum number of nodes that the group should have. */ minNodes: number; /** * The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes. */ mode: string; } /** * Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window. */ interface NodeGroupMaintenanceWindowResponse { /** * [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. */ maintenanceDuration: outputs.compute.beta.DurationResponse; /** * Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. */ startTime: string; } interface NodeTemplateNodeTypeFlexibilityResponse { cpus: string; localSsd: string; memory: string; } /** * Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint. */ interface NotificationEndpointGrpcSettingsResponse { /** * Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3 */ authority: string; /** * Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name. */ endpoint: string; /** * Optional. If specified, this field is used to populate the "name" field in gRPC requests. */ payloadName: string; /** * Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. Can only be set for regional notification endpoints. */ resendInterval: outputs.compute.beta.DurationResponse; /** * How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number. */ retryDurationSec: number; } /** * Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. */ interface OutlierDetectionResponse { /** * The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a backend endpoint is returned back to the load balancing pool, it can be ejected again in another ejection analysis. Thus, the total ejection time is equal to the base ejection time multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or 30s. */ baseEjectionTime: outputs.compute.beta.DurationResponse; /** * Number of consecutive errors before a backend endpoint is ejected from the load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. */ consecutiveErrors: number; /** * The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. */ consecutiveGatewayFailure: number; /** * The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. */ enforcingConsecutiveErrors: number; /** * The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. */ enforcingConsecutiveGatewayFailure: number; /** * The percentage chance that a backend endpoint will be ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service uses Serverless NEG. */ enforcingSuccessRate: number; /** * Time interval between ejection analysis sweeps. This can result in both new ejections and backend endpoints being returned to service. The interval is equal to the number of seconds as defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in outlierDetection.interval.nanos. Defaults to 1 second. */ interval: outputs.compute.beta.DurationResponse; /** * Maximum percentage of backend endpoints in the load balancing pool for the backend service that can be ejected if the ejection conditions are met. Defaults to 50%. */ maxEjectionPercent: number; /** * The number of backend endpoints in the load balancing pool that must have enough request volume to detect success rate outliers. If the number of backend endpoints is fewer than this setting, outlier detection via success rate statistics is not performed for any backend endpoint in the load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG. */ successRateMinimumHosts: number; /** * The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this backend endpoint in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that backend endpoint. Defaults to 100. Not supported when the backend service uses Serverless NEG. */ successRateRequestVolume: number; /** * This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * successRateStdevFactor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. Not supported when the backend service uses Serverless NEG. */ successRateStdevFactor: number; } interface PacketMirroringFilterResponse { /** * IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. */ cidrRanges: string[]; /** * Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH. */ direction: string; /** * Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. */ ipProtocols: string[]; } interface PacketMirroringForwardingRuleInfoResponse { /** * Unique identifier for the forwarding rule; defined by the server. */ canonicalUrl: string; /** * Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic. */ url: string; } interface PacketMirroringMirroredResourceInfoInstanceInfoResponse { /** * Unique identifier for the instance; defined by the server. */ canonicalUrl: string; /** * Resource URL to the virtual machine instance which is being mirrored. */ url: string; } interface PacketMirroringMirroredResourceInfoResponse { /** * A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances. */ instances: outputs.compute.beta.PacketMirroringMirroredResourceInfoInstanceInfoResponse[]; /** * A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks. */ subnetworks: outputs.compute.beta.PacketMirroringMirroredResourceInfoSubnetInfoResponse[]; /** * A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored. */ tags: string[]; } interface PacketMirroringMirroredResourceInfoSubnetInfoResponse { /** * Unique identifier for the subnetwork; defined by the server. */ canonicalUrl: string; /** * Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored. */ url: string; } interface PacketMirroringNetworkInfoResponse { /** * Unique identifier for the network; defined by the server. */ canonicalUrl: string; /** * URL of the network resource. */ url: string; } /** * A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used. */ interface PathMatcherResponse { /** * defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. This policy takes effect at the PathMatcher level and applies only when no policy has been defined for the error code at lower levels like RouteRule and PathRule within this PathMatcher. If an error code does not have a policy defined in defaultCustomErrorResponsePolicy, then a policy defined for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client. defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers. */ defaultCustomErrorResponsePolicy: outputs.compute.beta.CustomErrorResponsePolicyResponse; /** * defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction. */ defaultRouteAction: outputs.compute.beta.HttpRouteActionResponse; /** * The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use */ defaultService: string; /** * When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. */ defaultUrlRedirect: outputs.compute.beta.HttpRedirectActionResponse; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ headerAction: outputs.compute.beta.HttpHeaderActionResponse; /** * The name to which this PathMatcher is referred by the HostRule. */ name: string; /** * The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set. */ pathRules: outputs.compute.beta.PathRuleResponse[]; /** * The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules. */ routeRules: outputs.compute.beta.HttpRouteRuleResponse[]; } /** * A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL. */ interface PathRuleResponse { /** * customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. If a policy for an error code is not configured for the PathRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider a UrlMap with the following configuration: - UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors - A PathRule for /coming_soon/ is configured for the error code 404. If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in PathRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect. customErrorResponsePolicy is supported only for global external Application Load Balancers. */ customErrorResponsePolicy: outputs.compute.beta.CustomErrorResponsePolicyResponse; /** * The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here. */ paths: string[]; /** * In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path rule's routeAction. */ routeAction: outputs.compute.beta.HttpRouteActionResponse; /** * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. */ service: string; /** * When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. */ urlRedirect: outputs.compute.beta.HttpRedirectActionResponse; } /** * Represents a CIDR range which can be used to assign addresses. */ interface PublicAdvertisedPrefixPublicDelegatedPrefixResponse { /** * The IP address range of the public delegated prefix */ ipRange: string; /** * The name of the public delegated prefix */ name: string; /** * The project number of the public delegated prefix */ project: string; /** * The region of the public delegated prefix if it is regional. If absent, the prefix is global. */ region: string; /** * The status of the public delegated prefix. Possible values are: INITIALIZING: The public delegated prefix is being initialized and addresses cannot be created yet. ANNOUNCED: The public delegated prefix is active. */ status: string; } /** * Represents a sub PublicDelegatedPrefix. */ interface PublicDelegatedPrefixPublicDelegatedSubPrefixResponse { /** * Name of the project scoping this PublicDelegatedSubPrefix. */ delegateeProject: string; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * The IP address range, in CIDR format, represented by this sub public delegated prefix. */ ipCidrRange: string; /** * Whether the sub prefix is delegated to create Address resources in the delegatee project. */ isAddress: boolean; /** * The name of the sub public delegated prefix. */ name: string; /** * The region of the sub public delegated prefix if it is regional. If absent, the sub prefix is global. */ region: string; /** * The status of the sub public delegated prefix. */ status: string; } /** * Additional details for quota exceeded error for resource quota. */ interface QuotaExceededInfoResponse { /** * The map holding related quota dimensions. */ dimensions: { [key: string]: string; }; /** * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. */ futureLimit: number; /** * Current effective quota limit. The limit's unit depends on the quota type or metric. */ limit: number; /** * The name of the quota limit. */ limitName: string; /** * The Compute Engine quota metric name. */ metricName: string; /** * Rollout status of the future quota limit. */ rolloutStatus: string; } interface RegionSslPolicyWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface RegionSslPolicyWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.compute.beta.RegionSslPolicyWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow. */ interface RequestMirrorPolicyResponse { /** * The full or partial URL to the BackendService resource being mirrored to. The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. Serverless NEG backends are not currently supported as a mirrored backend service. */ backendService: string; } /** * Specifies the reservations that this instance can consume from. */ interface ReservationAffinityResponse { /** * Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples. */ consumeReservationType: string; /** * Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value. */ key: string; /** * Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project. */ values: string[]; } /** * Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources. */ interface ReservationResponse { /** * Reservation for aggregated resources, providing shape flexibility. */ aggregateReservation: outputs.compute.beta.AllocationAggregateReservationResponse; /** * Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment. */ commitment: string; /** * Creation timestamp in RFC3339 text format. */ creationTimestamp: string; /** * Duration time relative to reservation creation when GCE will automatically delete this resource. */ deleteAfterDuration: outputs.compute.beta.DurationResponse; /** * Absolute time in future when the reservation will be auto-deleted by GCE. Timestamp is represented in RFC3339 text format. */ deleteAtTime: string; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * Type of the resource. Always compute#reservations for reservations. */ kind: string; /** * The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * Resource policies to be added to this reservation. The key is defined by user, and the value is resource policy url. This is to define placement policy with reservation. */ resourcePolicies: { [key: string]: string; }; /** * Status information for Reservation resource. */ resourceStatus: outputs.compute.beta.AllocationResourceStatusResponse; /** * Reserved for future use. */ satisfiesPzs: boolean; /** * Server-defined fully-qualified URL for this resource. */ selfLink: string; /** * Specify share-settings to create a shared reservation. This property is optional. For more information about the syntax and options for this field and its subfields, see the guide for creating a shared reservation. */ shareSettings: outputs.compute.beta.ShareSettingsResponse; /** * Reservation for instances with specific machine shapes. */ specificReservation: outputs.compute.beta.AllocationSpecificSKUReservationResponse; /** * Indicates whether the reservation can be consumed by VMs with affinity for "any" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation. */ specificReservationRequired: boolean; /** * The status of the reservation. */ status: string; /** * Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment. */ zone: string; } /** * Commitment for a particular resource (a Commitment is composed of one or more of these). */ interface ResourceCommitmentResponse { /** * Name of the accelerator type resource. Applicable only when the type is ACCELERATOR. */ acceleratorType: string; /** * The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU. */ amount: string; /** * Type of resource for which this commitment applies. Possible values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR. */ type: string; } /** * Time window specified for daily operations. */ interface ResourcePolicyDailyCycleResponse { /** * Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. */ daysInCycle: number; /** * [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. */ duration: string; /** * Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. */ startTime: string; } /** * Resource policy for disk consistency groups. */ interface ResourcePolicyDiskConsistencyGroupPolicyResponse { } /** * A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality */ interface ResourcePolicyGroupPlacementPolicyResponse { /** * The number of availability domains to spread instances across. If two instances are in different availability domain, they are not in the same low latency network. */ availabilityDomainCount: number; /** * Specifies network collocation */ collocation: string; /** * Specifies the number of max logical switches. */ maxDistance: number; /** * Specifies the number of slices in a multislice workload. */ sliceCount: number; /** * Specifies the shape of the TPU slice */ tpuTopology: string; /** * Number of VMs in this placement group. Google does not recommend that you use this field unless you use a compact policy and you want your policy to work only if it contains this exact number of VMs. */ vmCount: number; } /** * Time window specified for hourly operations. */ interface ResourcePolicyHourlyCycleResponse { /** * [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. */ duration: string; /** * Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle. */ hoursInCycle: number; /** * Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. */ startTime: string; } /** * An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance. */ interface ResourcePolicyInstanceSchedulePolicyResponse { /** * The expiration time of the schedule. The timestamp is an RFC3339 string. */ expirationTime: string; /** * The start time of the schedule. The timestamp is an RFC3339 string. */ startTime: string; /** * Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: https://wikipedia.org/wiki/Tz_database. */ timeZone: string; /** * Specifies the schedule for starting instances. */ vmStartSchedule: outputs.compute.beta.ResourcePolicyInstanceSchedulePolicyScheduleResponse; /** * Specifies the schedule for stopping instances. */ vmStopSchedule: outputs.compute.beta.ResourcePolicyInstanceSchedulePolicyScheduleResponse; } /** * Schedule for an instance operation. */ interface ResourcePolicyInstanceSchedulePolicyScheduleResponse { /** * Specifies the frequency for the operation, using the unix-cron format. */ schedule: string; } interface ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse { /** * The last time the schedule successfully ran. The timestamp is an RFC3339 string. */ lastRunStartTime: string; /** * The next time the schedule is planned to run. The actual time might be slightly different. The timestamp is an RFC3339 string. */ nextRunStartTime: string; } /** * Contains output only fields. Use this sub-message for all output fields set on ResourcePolicy. The internal structure of this "status" field should mimic the structure of ResourcePolicy proto specification. */ interface ResourcePolicyResourceStatusResponse { /** * Specifies a set of output values reffering to the instance_schedule_policy system status. This field should have the same name as corresponding policy field. */ instanceSchedulePolicy: outputs.compute.beta.ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse; } /** * A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained. */ interface ResourcePolicySnapshotSchedulePolicyResponse { /** * Retention policy applied to snapshots created by this resource policy. */ retentionPolicy: outputs.compute.beta.ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse; /** * A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy. */ schedule: outputs.compute.beta.ResourcePolicySnapshotSchedulePolicyScheduleResponse; /** * Properties with which snapshots are created such as labels, encryption keys. */ snapshotProperties: outputs.compute.beta.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse; } /** * Policy for retention of scheduled snapshots. */ interface ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse { /** * Maximum age of the snapshot that is allowed to be kept. */ maxRetentionDays: number; /** * Specifies the behavior to apply to scheduled snapshots when the source disk is deleted. */ onSourceDiskDelete: string; } /** * A schedule for disks where the schedueled operations are performed. */ interface ResourcePolicySnapshotSchedulePolicyScheduleResponse { dailySchedule: outputs.compute.beta.ResourcePolicyDailyCycleResponse; hourlySchedule: outputs.compute.beta.ResourcePolicyHourlyCycleResponse; weeklySchedule: outputs.compute.beta.ResourcePolicyWeeklyCycleResponse; } /** * Specified snapshot properties for scheduled snapshots created by this policy. */ interface ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse { /** * Chain name that the snapshot is created in. */ chainName: string; /** * Indication to perform a 'guest aware' snapshot. */ guestFlush: boolean; /** * Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty. */ labels: { [key: string]: string; }; /** * Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional). */ storageLocations: string[]; } interface ResourcePolicyWeeklyCycleDayOfWeekResponse { /** * Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. */ day: string; /** * [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. */ duration: string; /** * Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. */ startTime: string; } /** * Time window specified for weekly operations. */ interface ResourcePolicyWeeklyCycleResponse { /** * Up to 7 intervals/windows, one for each day of the week. */ dayOfWeeks: outputs.compute.beta.ResourcePolicyWeeklyCycleDayOfWeekResponse[]; } /** * Contains output only fields. Use this sub-message for actual values set on Instance attributes as compared to the value requested by the user (intent) in their instance CRUD calls. */ interface ResourceStatusResponse { /** * An opaque ID of the host on which the VM is running. */ physicalHost: string; scheduling: outputs.compute.beta.ResourceStatusSchedulingResponse; upcomingMaintenance: outputs.compute.beta.UpcomingMaintenanceResponse; } interface ResourceStatusSchedulingResponse { /** * Time in future when the instance will be terminated in RFC3339 text format. */ terminationTimestamp: string; } /** * A rollout policy configuration. */ interface RolloutPolicyResponse { /** * An optional RFC3339 timestamp on or after which the update is considered rolled out to any zone that is not explicitly stated. */ defaultRolloutTime: string; /** * Location based rollout policies to apply to the resource. Currently only zone names are supported and must be represented as valid URLs, like: zones/us-central1-a. The value expects an RFC3339 timestamp on or after which the update is considered rolled out to the specified location. */ locationRolloutPolicies: { [key: string]: string; }; } interface RouteAsPathResponse { /** * The AS numbers of the AS Path. */ asLists: number[]; /** * The type of the AS Path, which can be one of the following values: - 'AS_SET': unordered set of autonomous systems that the route in has traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed */ pathSegmentType: string; } interface RouteWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface RouteWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.compute.beta.RouteWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * Description-tagged IP ranges for the router to advertise. */ interface RouterAdvertisedIpRangeResponse { /** * User-specified description for the IP range. */ description: string; /** * The IP range to advertise. The value must be a CIDR-formatted string. */ range: string; } interface RouterBgpPeerBfdResponse { /** * The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. */ minReceiveInterval: number; /** * The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. */ minTransmitInterval: number; /** * The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5. */ multiplier: number; /** * The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is DISABLED. */ sessionInitializationMode: string; } interface RouterBgpPeerCustomLearnedIpRangeResponse { /** * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`. */ range: string; } interface RouterBgpPeerResponse { /** * User-specified flag to indicate which mode to use for advertisement. */ advertiseMode: string; /** * User-specified list of prefix groups to advertise in custom mode, which currently supports the following option: - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This excludes any routes learned for subnets that use VPC Network Peering. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. */ advertisedGroups: string[]; /** * User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. */ advertisedIpRanges: outputs.compute.beta.RouterAdvertisedIpRangeResponse[]; /** * The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win. */ advertisedRoutePriority: number; /** * BFD configuration for the BGP peering. */ bfd: outputs.compute.beta.RouterBgpPeerBfdResponse; /** * A list of user-defined custom learned route IP address ranges for a BGP session. */ customLearnedIpRanges: outputs.compute.beta.RouterBgpPeerCustomLearnedIpRangeResponse[]; /** * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route ranges for the session. You can choose a value from `0` to `65335`. If you don't provide a value, Google Cloud assigns a priority of `100` to the ranges. */ customLearnedRoutePriority: number; /** * The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE. */ enable: string; /** * Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. */ enableIpv4: boolean; /** * Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. */ enableIpv6: boolean; /** * Name of the interface the BGP peer is associated with. */ interfaceName: string; /** * IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. */ ipAddress: string; /** * IPv4 address of the interface inside Google Cloud Platform. */ ipv4NexthopAddress: string; /** * IPv6 address of the interface inside Google Cloud Platform. */ ipv6NexthopAddress: string; /** * The resource that configures and manages this BGP peer. - MANAGED_BY_USER is the default value and can be managed by you or other users - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud Interconnect, specifically by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of BGP peer when the PARTNER InterconnectAttachment is created, updated, or deleted. */ managementType: string; /** * Present if MD5 authentication is enabled for the peering. Must be the name of one of the entries in the Router.md5_authentication_keys. The field must comply with RFC1035. */ md5AuthenticationKeyName: string; /** * Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. */ peerAsn: number; /** * IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. */ peerIpAddress: string; /** * IPv4 address of the BGP interface outside Google Cloud Platform. */ peerIpv4NexthopAddress: string; /** * IPv6 address of the BGP interface outside Google Cloud Platform. */ peerIpv6NexthopAddress: string; /** * URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session. */ routerApplianceInstance: string; } interface RouterBgpResponse { /** * User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM. */ advertiseMode: string; /** * User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. */ advertisedGroups: string[]; /** * User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. */ advertisedIpRanges: outputs.compute.beta.RouterAdvertisedIpRangeResponse[]; /** * Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. */ asn: number; /** * Explicitly specifies a range of valid BGP Identifiers for this Router. It is provided as a link-local IPv4 range (from 169.254.0.0/16), of size at least /30, even if the BGP sessions are over IPv6. It must not overlap with any IPv4 BGP session ranges. Other vendors commonly call this "router ID". */ identifierRange: string; /** * The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. */ keepaliveInterval: number; } interface RouterInterfaceResponse { /** * IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface. */ ipRange: string; /** * IP version of this interface. */ ipVersion: string; /** * URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork. */ linkedInterconnectAttachment: string; /** * URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork. */ linkedVpnTunnel: string; /** * The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by users. - MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud Interconnect, specifically, by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of interface when the PARTNER InterconnectAttachment is created, updated, or deleted. */ managementType: string; /** * Name of this interface entry. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM. */ privateIpAddress: string; /** * Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ redundantInterface: string; /** * The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. */ subnetwork: string; } interface RouterMd5AuthenticationKeyResponse { /** * [Input only] Value of the key. For patch and update calls, it can be skipped to copy the value from the previous configuration. This is allowed if the key with the same name existed before the operation. Maximum length is 80 characters. Can only contain printable ASCII characters. */ key: string; /** * Name used to identify the key. Must be unique within a router. Must be referenced by exactly one bgpPeer. Must comply with RFC1035. */ name: string; } /** * Configuration of logging on a NAT. */ interface RouterNatLogConfigResponse { /** * Indicates whether or not to export logs. This is false by default. */ enable: boolean; /** * Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. */ filter: string; } /** * Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided. */ interface RouterNatResponse { /** * The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used. */ autoNetworkTier: string; /** * A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only. */ drainNatIps: string[]; /** * Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. */ enableDynamicPortAllocation: boolean; enableEndpointIndependentMapping: boolean; /** * List of NAT-ted endpoint types supported by the Nat Gateway. If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM */ endpointTypes: string[]; /** * Timeout (in seconds) for ICMP connections. Defaults to 30s if not set. */ icmpIdleTimeoutSec: number; /** * Configure logging on this NAT. */ logConfig: outputs.compute.beta.RouterNatLogConfigResponse; /** * Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config. */ maxPortsPerVm: number; /** * Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM. */ minPortsPerVm: number; /** * Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035. */ name: string; /** * Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. */ natIpAllocateOption: string; /** * A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project. */ natIps: string[]; /** * A list of rules associated with this NAT. */ rules: outputs.compute.beta.RouterNatRuleResponse[]; /** * Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other Router.Nat section in any Router for this network in this region. */ sourceSubnetworkIpRangesToNat: string; /** * A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above. */ subnetworks: outputs.compute.beta.RouterNatSubnetworkToNatResponse[]; /** * Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set. */ tcpEstablishedIdleTimeoutSec: number; /** * Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set. */ tcpTimeWaitTimeoutSec: number; /** * Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set. */ tcpTransitoryIdleTimeoutSec: number; /** * Indicates whether this NAT is used for public or private IP translation. If unspecified, it defaults to PUBLIC. */ type: string; /** * Timeout (in seconds) for UDP connections. Defaults to 30s if not set. */ udpIdleTimeoutSec: number; } interface RouterNatRuleActionResponse { /** * A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT. */ sourceNatActiveIps: string[]; /** * A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT. */ sourceNatActiveRanges: string[]; /** * A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT. */ sourceNatDrainIps: string[]; /** * A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT. */ sourceNatDrainRanges: string[]; } interface RouterNatRuleResponse { /** * The action to be enforced for traffic that matches this rule. */ action: outputs.compute.beta.RouterNatRuleActionResponse; /** * An optional description of this rule. */ description: string; /** * CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The following example is a valid match expression for private NAT: "nexthop.hub == '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'" */ match: string; /** * An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. */ ruleNumber: number; } /** * Defines the IP ranges that want to use NAT for a subnetwork. */ interface RouterNatSubnetworkToNatResponse { /** * URL for the subnetwork resource that will use NAT. */ name: string; /** * A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" is one of the values in source_ip_ranges_to_nat. */ secondaryIpRangeNames: string[]; /** * Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] Default: [ALL_IP_RANGES] */ sourceIpRangesToNat: string[]; } /** * This is deprecated and has no effect. Do not use. */ interface RuleResponse { /** * This is deprecated and has no effect. Do not use. */ action: string; /** * This is deprecated and has no effect. Do not use. */ conditions: outputs.compute.beta.ConditionResponse[]; /** * This is deprecated and has no effect. Do not use. */ description: string; /** * This is deprecated and has no effect. Do not use. */ ins: string[]; /** * This is deprecated and has no effect. Do not use. */ logConfigs: outputs.compute.beta.LogConfigResponse[]; /** * This is deprecated and has no effect. Do not use. */ notIns: string[]; /** * This is deprecated and has no effect. Do not use. */ permissions: string[]; } interface SSLHealthCheckResponse { /** * The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection and SSL handshake. */ request: string; /** * Creates a content-based SSL health check. In addition to establishing a TCP connection and the TLS handshake, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp */ response: string; } /** * DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk resource. */ interface SavedAttachedDiskResponse { /** * Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. */ boot: boolean; /** * Specifies the name of the disk attached to the source instance. */ deviceName: string; /** * The encryption key for the disk. */ diskEncryptionKey: outputs.compute.beta.CustomerEncryptionKeyResponse; /** * The size of the disk in base-2 GB. */ diskSizeGb: string; /** * URL of the disk type resource. For example: projects/project /zones/zone/diskTypes/pd-standard or pd-ssd */ diskType: string; /** * A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. */ guestOsFeatures: outputs.compute.beta.GuestOsFeatureResponse[]; /** * Specifies zero-based index of the disk that is attached to the source instance. */ index: number; /** * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. */ interface: string; /** * Type of the resource. Always compute#attachedDisk for attached disks. */ kind: string; /** * Any valid publicly visible licenses. */ licenses: string[]; /** * The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY. */ mode: string; /** * Specifies a URL of the disk attached to the source instance. */ source: string; /** * A size of the storage used by the disk's snapshot by this machine image. */ storageBytes: string; /** * An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date. */ storageBytesStatus: string; /** * Specifies the type of the attached disk, either SCRATCH or PERSISTENT. */ type: string; } /** * An instance-attached disk resource. */ interface SavedDiskResponse { /** * The architecture of the attached disk. */ architecture: string; /** * Type of the resource. Always compute#savedDisk for attached disks. */ kind: string; /** * Specifies a URL of the disk attached to the source instance. */ sourceDisk: string; /** * Size of the individual disk snapshot used by this machine image. */ storageBytes: string; /** * An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date. */ storageBytesStatus: string; } /** * Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. */ interface SchedulingNodeAffinityResponse { /** * Corresponds to the label key of Node resource. */ key: string; /** * Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity. */ operator: string; /** * Corresponds to the label values of Node resource. */ values: string[]; } /** * Sets the scheduling options for an Instance. */ interface SchedulingResponse { /** * Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine. */ automaticRestart: boolean; /** * Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used. */ hostErrorTimeoutSeconds: number; /** * Specifies the termination action for the instance. */ instanceTerminationAction: string; /** * Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour. */ localSsdRecoveryTimeout: outputs.compute.beta.DurationResponse; /** * An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API. */ locationHint: string; /** * Specifies the number of hours after VM instance creation where the VM won't be scheduled for maintenance. */ maintenanceFreezeDurationHours: number; /** * Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`. */ maintenanceInterval: string; /** * Specifies the max run duration for the given instance. If specified, the instance termination action will be performed at the end of the run duration. */ maxRunDuration: outputs.compute.beta.DurationResponse; /** * The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. */ minNodeCpus: number; /** * A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity. */ nodeAffinities: outputs.compute.beta.SchedulingNodeAffinityResponse[]; /** * Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM host maintenance policy. */ onHostMaintenance: string; /** * Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. */ preemptible: boolean; /** * Specifies the provisioning model of the instance. */ provisioningModel: string; /** * Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time. */ terminationTime: string; } /** * Configuration options for Adaptive Protection auto-deploy feature. */ interface SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigResponse { confidenceThreshold: number; expirationSec: number; impactedBaselineThreshold: number; loadThreshold: number; } /** * Configuration options for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ interface SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse { /** * If set to true, enables CAAP for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ enable: boolean; /** * Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ ruleVisibility: string; /** * Configuration options for layer7 adaptive protection for various customizable thresholds. */ thresholdConfigs: outputs.compute.beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigResponse[]; } interface SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigResponse { autoDeployConfidenceThreshold: number; autoDeployExpirationSec: number; autoDeployImpactedBaselineThreshold: number; autoDeployLoadThreshold: number; /** * The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy. */ name: string; } /** * Configuration options for Cloud Armor Adaptive Protection (CAAP). */ interface SecurityPolicyAdaptiveProtectionConfigResponse { autoDeployConfig: outputs.compute.beta.SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigResponse; /** * If set to true, enables Cloud Armor Machine Learning. */ layer7DdosDefenseConfig: outputs.compute.beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse; } interface SecurityPolicyAdvancedOptionsConfigJsonCustomConfigResponse { /** * A list of custom Content-Type header values to apply the JSON parsing. As per RFC 1341, a Content-Type header value has the following format: Content-Type := type "/" subtype *[";" parameter] When configuring a custom Content-Type header value, only the type/subtype needs to be specified, and the parameters should be excluded. */ contentTypes: string[]; } interface SecurityPolicyAdvancedOptionsConfigResponse { /** * Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD. */ jsonCustomConfig: outputs.compute.beta.SecurityPolicyAdvancedOptionsConfigJsonCustomConfigResponse; jsonParsing: string; logLevel: string; /** * An optional list of case-insensitive request header names to use for resolving the callers client IP address. */ userIpRequestHeaders: string[]; } interface SecurityPolicyAssociationResponse { /** * The resource that the security policy is attached to. */ attachmentId: string; /** * The display name of the security policy of the association. */ displayName: string; /** * The name for an association. */ name: string; /** * The security policy ID of the association. */ securityPolicyId: string; } interface SecurityPolicyDdosProtectionConfigResponse { ddosProtection: string; } interface SecurityPolicyRecaptchaOptionsConfigResponse { /** * An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ redirectSiteKey: string; } interface SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse { /** * The name of the header to set. */ headerName: string; /** * The value to set the named header to. */ headerValue: string; } interface SecurityPolicyRuleHttpHeaderActionResponse { /** * The list of request headers to add or overwrite if they're already present. */ requestHeadersToAdds: outputs.compute.beta.SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse[]; } interface SecurityPolicyRuleMatcherConfigLayer4ConfigResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. This field may only be specified when versioned_expr is set to FIREWALL. */ ports: string[]; } interface SecurityPolicyRuleMatcherConfigResponse { /** * CIDR IP address range. This field may only be specified when versioned_expr is set to FIREWALL. */ destIpRanges: string[]; /** * Pairs of IP protocols and ports that the rule should match. This field may only be specified when versioned_expr is set to FIREWALL. */ layer4Configs: outputs.compute.beta.SecurityPolicyRuleMatcherConfigLayer4ConfigResponse[]; /** * CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. */ srcIpRanges: string[]; } interface SecurityPolicyRuleMatcherExprOptionsRecaptchaOptionsResponse { /** * A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. */ actionTokenSiteKeys: string[]; /** * A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. */ sessionTokenSiteKeys: string[]; } interface SecurityPolicyRuleMatcherExprOptionsResponse { /** * reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field will have no effect. */ recaptchaOptions: outputs.compute.beta.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptionsResponse; } /** * Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. */ interface SecurityPolicyRuleMatcherResponse { /** * The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified. */ config: outputs.compute.beta.SecurityPolicyRuleMatcherConfigResponse; /** * User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. Expressions containing `evaluateThreatIntelligence` require Cloud Armor Managed Protection Plus tier and are not supported in Edge Policies nor in Regional Policies. Expressions containing `evaluatePreconfiguredExpr('sourceiplist-*')` require Cloud Armor Managed Protection Plus tier and are only supported in Global Security Policies. */ expr: outputs.compute.beta.ExprResponse; /** * The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). */ exprOptions: outputs.compute.beta.SecurityPolicyRuleMatcherExprOptionsResponse; /** * Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config. */ versionedExpr: string; } /** * Represents a match condition that incoming network traffic is evaluated against. */ interface SecurityPolicyRuleNetworkMatcherResponse { /** * Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. */ destIpRanges: string[]; /** * Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). */ destPorts: string[]; /** * IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". */ ipProtocols: string[]; /** * BGP Autonomous System Number associated with the source IP address. */ srcAsns: number[]; /** * Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. */ srcIpRanges: string[]; /** * Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). */ srcPorts: string[]; /** * Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. */ srcRegionCodes: string[]; /** * User-defined fields. Each element names a defined field and lists the matching values for that field. */ userDefinedFields: outputs.compute.beta.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatchResponse[]; } interface SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatchResponse { /** * Name of the user-defined field, as given in the definition. */ name: string; /** * Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-0x7ff"). */ values: string[]; } interface SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse { /** * The match operator for the field. */ op: string; /** * The value of the field. */ val: string; } interface SecurityPolicyRulePreconfiguredWafConfigExclusionResponse { /** * A list of request cookie names whose value will be excluded from inspection during preconfigured WAF evaluation. */ requestCookiesToExclude: outputs.compute.beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of request header names whose value will be excluded from inspection during preconfigured WAF evaluation. */ requestHeadersToExclude: outputs.compute.beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of request query parameter names whose value will be excluded from inspection during preconfigured WAF evaluation. Note that the parameter can be in the query string or in the POST body. */ requestQueryParamsToExclude: outputs.compute.beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of request URIs from the request line to be excluded from inspection during preconfigured WAF evaluation. When specifying this field, the query or fragment part should be excluded. */ requestUrisToExclude: outputs.compute.beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. If omitted, it refers to all the rule IDs under the WAF rule set. */ targetRuleIds: string[]; /** * Target WAF rule set to apply the preconfigured WAF exclusion. */ targetRuleSet: string; } interface SecurityPolicyRulePreconfiguredWafConfigResponse { /** * A list of exclusions to apply during preconfigured WAF evaluation. */ exclusions: outputs.compute.beta.SecurityPolicyRulePreconfiguredWafConfigExclusionResponse[]; } interface SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigResponse { /** * Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. */ enforceOnKeyName: string; /** * Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. */ enforceOnKeyType: string; } interface SecurityPolicyRuleRateLimitOptionsResponse { /** * Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. */ banDurationSec: number; /** * Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'. */ banThreshold: outputs.compute.beta.SecurityPolicyRuleRateLimitOptionsThresholdResponse; /** * Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. */ conformAction: string; /** * Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. */ enforceOnKey: string; /** * If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which ratelimit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If enforce_on_key_configs is specified, enforce_on_key must not be specified. */ enforceOnKeyConfigs: outputs.compute.beta.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigResponse[]; /** * Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. */ enforceOnKeyName: string; /** * Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are `deny(STATUS)`, where valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the redirect parameters come from `exceedRedirectOptions` below. The `redirect` action is only supported in Global Security Policies of type CLOUD_ARMOR. */ exceedAction: string; /** * Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ exceedRedirectOptions: outputs.compute.beta.SecurityPolicyRuleRedirectOptionsResponse; /** * Threshold at which to begin ratelimiting. */ rateLimitThreshold: outputs.compute.beta.SecurityPolicyRuleRateLimitOptionsThresholdResponse; } interface SecurityPolicyRuleRateLimitOptionsThresholdResponse { /** * Number of HTTP(S) requests for calculating the threshold. */ count: number; /** * Interval over which the threshold is computed. */ intervalSec: number; } interface SecurityPolicyRuleRedirectOptionsResponse { /** * Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. */ target: string; /** * Type of the redirect action. */ type: string; } /** * Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). */ interface SecurityPolicyRuleResponse { /** * The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. */ action: string; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL. */ direction: string; /** * Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. This field may only be specified when the versioned_expr is set to FIREWALL. */ enableLogging: boolean; /** * Optional, additional actions that are performed on headers. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ headerAction: outputs.compute.beta.SecurityPolicyRuleHttpHeaderActionResponse; /** * [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules */ kind: string; /** * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. */ match: outputs.compute.beta.SecurityPolicyRuleMatcherResponse; /** * A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. Example: networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive. */ networkMatch: outputs.compute.beta.SecurityPolicyRuleNetworkMatcherResponse; /** * Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. */ preconfiguredWafConfig: outputs.compute.beta.SecurityPolicyRulePreconfiguredWafConfigResponse; /** * If set to true, the specified action is not enforced. */ preview: boolean; /** * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. */ priority: number; /** * Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. */ rateLimitOptions: outputs.compute.beta.SecurityPolicyRuleRateLimitOptionsResponse; /** * Parameters defining the redirect action. Cannot be specified for any other actions. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ redirectOptions: outputs.compute.beta.SecurityPolicyRuleRedirectOptionsResponse; /** * Identifier for the rule. This is only unique within the given security policy. This can only be set during rule creation, if rule number is not specified it will be generated by the server. */ ruleNumber: string; /** * Calculation of the complexity of a single firewall security policy rule. */ ruleTupleCount: number; /** * A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. This field may only be specified when versioned_expr is set to FIREWALL. */ targetResources: string[]; /** * A list of service accounts indicating the sets of instances that are applied with this rule. */ targetServiceAccounts: string[]; } interface SecurityPolicyUserDefinedFieldResponse { /** * The base relative to which 'offset' is measured. Possible values are: - IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. required */ base: string; /** * If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. Encoded as a hexadecimal number (starting with "0x"). The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. */ mask: string; /** * The name of this field. Must be unique within the policy. */ name: string; /** * Offset of the first byte of the field (in network byte order) relative to 'base'. */ offset: number; /** * Size of the field in bytes. Valid values: 1-4. */ size: number; } /** * The authentication and authorization settings for a BackendService. */ interface SecuritySettingsResponse { /** * [Deprecated] Use clientTlsPolicy instead. * * @deprecated [Deprecated] Use clientTlsPolicy instead. */ authentication: string; /** * The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. */ awsV4Authentication: outputs.compute.beta.AWSV4SignatureResponse; /** * Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. */ clientTlsPolicy: string; /** * Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). */ subjectAltNames: string[]; } interface ServerBindingResponse { type: string; } /** * A service account. */ interface ServiceAccountResponse { /** * Email address of the service account. */ email: string; /** * The list of scopes to be made available for this service account. */ scopes: string[]; } /** * [Output Only] A connection connected to this service attachment. */ interface ServiceAttachmentConnectedEndpointResponse { /** * The url of the consumer network. */ consumerNetwork: string; /** * The url of a connected endpoint. */ endpoint: string; /** * The PSC connection id of the connected endpoint. */ pscConnectionId: string; /** * The status of a connected endpoint to this service attachment. */ status: string; } interface ServiceAttachmentConsumerProjectLimitResponse { /** * The value of the limit to set. */ connectionLimit: number; /** * The network URL for the network to set the limit for. */ networkUrl: string; /** * The project id or number for the project to set the limit for. */ projectIdOrNum: string; } /** * Use to configure this PSC connection in tunneling mode. In tunneling mode traffic from consumer to producer will be encapsulated as it crosses the VPC boundary and traffic from producer to consumer will be decapsulated in the same manner. */ interface ServiceAttachmentTunnelingConfigResponse { /** * Specify the encapsulation protocol and what metadata to include in incoming encapsulated packet headers. */ encapsulationProfile: string; /** * How this Service Attachment will treat traffic sent to the tunnel_ip, destined for the consumer network. */ routingMode: string; } /** * The share setting for reservations and sole tenancy node groups. */ interface ShareSettingsResponse { /** * A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS. */ projectMap: { [key: string]: string; }; /** * A List of Project names to specify consumer projects for this shared-reservation. This is only valid when share_type's value is SPECIFIC_PROJECTS. */ projects: string[]; /** * Type of sharing for this shared-reservation */ shareType: string; } /** * A set of Shielded Instance options. */ interface ShieldedInstanceConfigResponse { /** * Defines whether the instance has integrity monitoring enabled. Enabled by default. */ enableIntegrityMonitoring: boolean; /** * Defines whether the instance has Secure Boot enabled. Disabled by default. */ enableSecureBoot: boolean; /** * Defines whether the instance has the vTPM enabled. Enabled by default. */ enableVtpm: boolean; } /** * The policy describes the baseline against which Instance boot integrity is measured. */ interface ShieldedInstanceIntegrityPolicyResponse { /** * Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. */ updateAutoLearnPolicy: boolean; } /** * A set of Shielded VM options. */ interface ShieldedVmConfigResponse { /** * Defines whether the instance has integrity monitoring enabled. */ enableIntegrityMonitoring: boolean; /** * Defines whether the instance has Secure Boot enabled. */ enableSecureBoot: boolean; /** * Defines whether the instance has the vTPM enabled. */ enableVtpm: boolean; } /** * The policy describes the baseline against which VM instance boot integrity is measured. */ interface ShieldedVmIntegrityPolicyResponse { /** * Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. */ updateAutoLearnPolicy: boolean; } interface SourceDiskEncryptionKeyResponse { /** * The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key. */ diskEncryptionKey: outputs.compute.beta.CustomerEncryptionKeyResponse; /** * URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk */ sourceDisk: string; } /** * A specification of the parameters to use when creating the instance template from a source instance. */ interface SourceInstanceParamsResponse { /** * Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, the source images for each disk will be used. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes. */ diskConfigs: outputs.compute.beta.DiskInstantiationConfigResponse[]; } /** * DEPRECATED: Please use compute#instanceProperties instead. New properties will not be added to this field. */ interface SourceInstancePropertiesResponse { /** * Enables instances created based on this machine image to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. */ canIpForward: boolean; /** * Whether the instance created from this machine image should be protected against deletion. */ deletionProtection: boolean; /** * An optional text description for the instances that are created from this machine image. */ description: string; /** * An array of disks that are associated with the instances that are created from this machine image. */ disks: outputs.compute.beta.SavedAttachedDiskResponse[]; /** * A list of guest accelerator cards' type and count to use for instances created from this machine image. */ guestAccelerators: outputs.compute.beta.AcceleratorConfigResponse[]; /** * KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. */ keyRevocationActionType: string; /** * Labels to apply to instances that are created from this machine image. */ labels: { [key: string]: string; }; /** * The machine type to use for instances that are created from this machine image. */ machineType: string; /** * The metadata key/value pairs to assign to instances that are created from this machine image. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. */ metadata: outputs.compute.beta.MetadataResponse; /** * Minimum cpu/platform to be used by instances created from this machine image. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. */ minCpuPlatform: string; /** * An array of network access configurations for this interface. */ networkInterfaces: outputs.compute.beta.NetworkInterfaceResponse[]; /** * PostKeyRevocationActionType of the instance. */ postKeyRevocationActionType: string; /** * Specifies the scheduling options for the instances that are created from this machine image. */ scheduling: outputs.compute.beta.SchedulingResponse; /** * A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this machine image. Use metadata queries to obtain the access tokens for these instances. */ serviceAccounts: outputs.compute.beta.ServiceAccountResponse[]; /** * A list of tags to apply to the instances that are created from this machine image. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. */ tags: outputs.compute.beta.TagsResponse; } /** * Configuration and status of a managed SSL certificate. */ interface SslCertificateManagedSslCertificateResponse { /** * [Output only] Detailed statuses of the domains specified for managed certificate resource. */ domainStatus: { [key: string]: string; }; /** * The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates). */ domains: string[]; /** * [Output only] Status of the managed certificate resource. */ status: string; } /** * Configuration and status of a self-managed SSL certificate. */ interface SslCertificateSelfManagedSslCertificateResponse { /** * A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert. */ certificate: string; /** * A write-only private key in PEM format. Only insert requests will include this field. */ privateKey: string; } interface SslPolicyWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface SslPolicyWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.compute.beta.SslPolicyWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * Configuration of preserved resources. */ interface StatefulPolicyPreservedStateResponse { /** * Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks. */ disks: { [key: string]: string; }; /** * External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. */ externalIPs: { [key: string]: string; }; /** * Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. */ internalIPs: { [key: string]: string; }; } interface StatefulPolicyResponse { preservedState: outputs.compute.beta.StatefulPolicyPreservedStateResponse; } /** * The available logging options for this subnetwork. */ interface SubnetworkLogConfigResponse { /** * Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection. */ aggregationInterval: string; /** * Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Flow logging isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY. */ enable: boolean; /** * Can only be specified if VPC flow logs for this subnetwork is enabled. The filter expression is used to define which VPC flow logs should be exported to Cloud Logging. */ filterExpr: string; /** * Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the 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. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported. */ flowSampling: number; /** * Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. */ metadata: string; /** * Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" was set to CUSTOM_METADATA. */ metadataFields: string[]; } /** * Represents a secondary IP range of a subnetwork. */ interface SubnetworkSecondaryRangeResponse { /** * The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list. */ ipCidrRange: string; /** * The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork. */ rangeName: string; /** * The URL of the reserved internal range. */ reservedInternalRange: string; } /** * Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director. */ interface SubsettingResponse { policy: string; /** * The number of backends per backend group assigned to each proxy instance or each service mesh client. An input parameter to the `CONSISTENT_HASH_SUBSETTING` algorithm. Can only be set if `policy` is set to `CONSISTENT_HASH_SUBSETTING`. Can only be set if load balancing scheme is `INTERNAL_MANAGED` or `INTERNAL_SELF_MANAGED`. `subset_size` is optional for Internal HTTP(S) load balancing and required for Traffic Director. If you do not provide this value, Cloud Load Balancing will calculate it dynamically to optimize the number of proxies/clients visible to each backend and vice versa. Must be greater than 0. If `subset_size` is larger than the number of backends/endpoints, then subsetting is disabled. */ subsetSize: number; } interface TCPHealthCheckResponse { /** * The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection. */ request: string; /** * Creates a content-based TCP health check. In addition to establishing a TCP connection, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp */ response: string; } /** * A set of instance tags. */ interface TagsResponse { /** * Specifies a fingerprint for this request, which is essentially a hash of the tags' contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update tags. You must always provide an up-to-date fingerprint hash in order to update or change tags. To see the latest fingerprint, make get() request to the instance. */ fingerprint: string; /** * An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035. */ items: string[]; } interface Uint128Response { high: string; low: string; } /** * Upcoming Maintenance notification information. */ interface UpcomingMaintenanceResponse { /** * Indicates if the maintenance can be customer triggered. */ canReschedule: boolean; /** * The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format. */ latestWindowStartTime: string; maintenanceStatus: string; /** * Defines the type of maintenance. */ type: string; /** * The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format. */ windowEndTime: string; /** * The current start time of the maintenance window. This timestamp value is in RFC3339 text format. */ windowStartTime: string; } /** * HTTP headers used in UrlMapTests. */ interface UrlMapTestHeaderResponse { /** * Header name. */ name: string; /** * Header value. */ value: string; } /** * Message for the expected URL mappings. */ interface UrlMapTestResponse { /** * Description of this test case. */ description: string; /** * The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified. */ expectedOutputUrl: string; /** * For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set. */ expectedRedirectResponseCode: number; /** * HTTP headers for this request. If headers contains a host header, then host must also match the header value. */ headers: outputs.compute.beta.UrlMapTestHeaderResponse[]; /** * Host portion of the URL. If headers contains a host header, then host must also match the header value. */ host: string; /** * Path portion of the URL. */ path: string; /** * Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set. */ service: string; } /** * The spec for modifying the path before sending the request to the matched backend service. */ interface UrlRewriteResponse { /** * Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters. */ hostRewrite: string; /** * Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters. */ pathPrefixRewrite: string; /** * If specified, the pattern rewrites the URL path (based on the :path header) using the HTTP template syntax. A corresponding path_template_match must be specified. Any template variables must exist in the path_template_match field. - -At least one variable must be specified in the path_template_match field - You can omit variables from the rewritten URL - The * and ** operators cannot be matched unless they have a corresponding variable name - e.g. {format=*} or {var=**}. For example, a path_template_match of /static/{format=**} could be rewritten as /static/content/{format} to prefix /content to the URL. Variables can also be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be rewritten as /content/{format}/{country}/{suffix}. At least one non-empty routeRules[].matchRules[].path_template_match is required. Only one of path_prefix_rewrite or path_template_rewrite may be specified. */ pathTemplateRewrite: string; } /** * A VPN gateway interface. */ interface VpnGatewayVpnGatewayInterfaceResponse { /** * URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for HA VPN over Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. */ interconnectAttachment: string; /** * IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address. */ ipAddress: string; /** * IPv6 address for this VPN interface associated with the VPN gateway. The IPv6 address must be a regional external IPv6 address. The format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). */ ipv6Address: string; } /** * In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService */ interface WeightedBackendServiceResponse { /** * The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. */ backendService: string; /** * Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ headerAction: outputs.compute.beta.HttpHeaderActionResponse; /** * Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000. */ weight: number; } } namespace v1 { /** * Contains the configurations necessary to generate a signature for access to private storage buckets that support Signature Version 4 for authentication. The service name for generating the authentication header will always default to 's3'. */ interface AWSV4SignatureResponse { /** * The access key used for s3 bucket authentication. Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request. @InputOnly */ accessKey: string; /** * The identifier of an access key used for s3 bucket authentication. */ accessKeyId: string; /** * The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. */ accessKeyVersion: string; /** * The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin. For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. */ originRegion: string; } /** * A specification of the type and number of accelerator cards attached to the instance. */ interface AcceleratorConfigResponse { /** * The number of the guest accelerator cards exposed to this instance. */ acceleratorCount: number; /** * Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types. */ acceleratorType: string; } /** * An access configuration attached to an instance's network interface. Only one access config per instance is supported. */ interface AccessConfigResponse { /** * Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork. */ externalIpv6: string; /** * Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range. */ externalIpv6PrefixLength: number; /** * Type of the resource. Always compute#accessConfig for access configs. */ kind: string; /** * The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. In ipv6AccessConfigs, the recommend name is External IPv6. */ name: string; /** * Applies to accessConfigs (IPv4) only. An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance. */ natIP: string; /** * This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP. */ networkTier: string; /** * The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range. */ publicPtrDomainName: string; /** * The resource URL for the security policy associated with this access config. */ securityPolicy: string; /** * Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated. */ setPublicPtr: boolean; /** * The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6. */ type: string; } /** * Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). */ interface AdvancedMachineFeaturesResponse { /** * Whether to enable nested virtualization or not (default is false). */ enableNestedVirtualization: boolean; /** * Whether to enable UEFI networking for instance creation. */ enableUefiNetworking: boolean; /** * The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. */ threadsPerCore: number; /** * The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance's nominal CPU count and the underlying platform's SMT width. */ visibleCoreCount: number; } /** * An alias IP range attached to an instance's network interface. */ interface AliasIpRangeResponse { /** * The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24). */ ipCidrRange: string; /** * The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used. */ subnetworkRangeName: string; } /** * [Output Only] Contains output only fields. */ interface AllocationResourceStatusResponse { /** * Allocation Properties of this reservation. */ specificSkuAllocation: outputs.compute.v1.AllocationResourceStatusSpecificSKUAllocationResponse; } /** * Contains Properties set for the reservation. */ interface AllocationResourceStatusSpecificSKUAllocationResponse { /** * ID of the instance template used to populate reservation properties. */ sourceInstanceTemplateId: string; } interface AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse { /** * Specifies the size of the disk in base-2 GB. */ diskSizeGb: string; /** * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. */ interface: string; } /** * Properties of the SKU instances being reserved. Next ID: 9 */ interface AllocationSpecificSKUAllocationReservedInstancePropertiesResponse { /** * Specifies accelerator type and count. */ guestAccelerators: outputs.compute.v1.AcceleratorConfigResponse[]; /** * Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd. */ localSsds: outputs.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse[]; /** * An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API. */ locationHint: string; /** * Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. */ machineType: string; /** * Minimum cpu platform the reservation. */ minCpuPlatform: string; } /** * This reservation type allows to pre allocate specific instance configuration. Next ID: 6 */ interface AllocationSpecificSKUReservationResponse { /** * Indicates how many instances are actually usable currently. */ assuredCount: string; /** * Specifies the number of resources that are allocated. */ count: string; /** * Indicates how many instances are in use. */ inUseCount: string; /** * The instance properties for the reservation. */ instanceProperties: outputs.compute.v1.AllocationSpecificSKUAllocationReservedInstancePropertiesResponse; /** * Specifies the instance template to create the reservation. If you use this field, you must exclude the instanceProperties field. This field is optional, and it can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate */ sourceInstanceTemplate: string; } /** * [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. */ interface AttachedDiskInitializeParamsResponse { /** * The architecture of the attached disk. Valid values are arm64 or x86_64. */ architecture: string; /** * An optional description. Provide this property when creating the disk. */ description: string; /** * Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created. */ diskName: string; /** * Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB. */ diskSizeGb: string; /** * Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you specify this field when creating a VM, you can provide either the full or partial URL. For example, the following values are valid: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType If you specify this field when creating or updating an instance template or all-instances configuration, specify the type of the disk, not the URL. For example: pd-standard. */ diskType: string; /** * Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. */ labels: { [key: string]: string; }; /** * A list of publicly visible licenses. Reserved for Google's use. */ licenses: string[]; /** * Specifies which action to take on instance update with this disk. Default is to use the existing disk. */ onUpdateAction: string; /** * Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. */ provisionedIops: string; /** * Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be between 1 and 7,124. */ provisionedThroughput: string; /** * Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone. */ replicaZones: string[]; /** * Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; /** * Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name. */ resourcePolicies: string[]; /** * The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set. */ sourceImage: string; /** * The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. InstanceTemplate and InstancePropertiesPatch do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. */ sourceImageEncryptionKey: outputs.compute.v1.CustomerEncryptionKeyResponse; /** * The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. */ sourceSnapshot: string; /** * The customer-supplied encryption key of the source snapshot. */ sourceSnapshotEncryptionKey: outputs.compute.v1.CustomerEncryptionKeyResponse; } /** * An instance-attached disk resource. */ interface AttachedDiskResponse { /** * The architecture of the attached disk. Valid values are ARM64 or X86_64. */ architecture: string; /** * Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. */ boot: boolean; /** * Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. */ deviceName: string; /** * Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. */ diskEncryptionKey: outputs.compute.v1.CustomerEncryptionKeyResponse; /** * The size of the disk in GB. */ diskSizeGb: string; /** * [Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. */ forceAttach: boolean; /** * A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. */ guestOsFeatures: outputs.compute.v1.GuestOsFeatureResponse[]; /** * A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. */ index: number; /** * [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. */ initializeParams: outputs.compute.v1.AttachedDiskInitializeParamsResponse; /** * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks. */ interface: string; /** * Type of the resource. Always compute#attachedDisk for attached disks. */ kind: string; /** * Any valid publicly visible licenses. */ licenses: string[]; /** * The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. */ mode: string; /** * For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api. */ savedState: string; /** * shielded vm initial state stored on disk */ shieldedInstanceInitialState: outputs.compute.v1.InitialStateConfigResponse; /** * Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk. */ source: string; /** * Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. */ type: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.compute.v1.AuditLogConfigResponse[]; /** * This is deprecated and has no effect. Do not use. */ exemptedMembers: string[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * This is deprecated and has no effect. Do not use. */ ignoreChildExemptions: boolean; /** * The log type that this config enables. */ logType: string; } /** * This is deprecated and has no effect. Do not use. */ interface AuthorizationLoggingOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ permissionType: string; } interface AutoscalerStatusDetailsResponse { /** * The status message. */ message: string; /** * The type of error, warning, or notice returned. Current set of possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are unhealthy (not in RUNNING state). - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size greater than maxNumReplicas. - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples are not exported often enough to be a credible base for autoscaling. - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not exist or does not have the necessary labels. - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group. - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive any data from the custom metric configured for autoscaling. - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer. - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved. - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only out" mode. The autoscaler can add instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be autoscaled because it has more than one backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for the necessary resources, such as CPU or number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional autoscalers: there is a resource stockout in the chosen region. - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not exist. - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout. New values might be added in the future. Some of the values might not be available in all API versions. */ type: string; } /** * CPU utilization policy. */ interface AutoscalingPolicyCpuUtilizationResponse { /** * Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand. */ predictiveMethod: string; /** * The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization. */ utilizationTarget: number; } /** * Custom utilization metric policy. */ interface AutoscalingPolicyCustomMetricUtilizationResponse { /** * A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value. */ filter: string; /** * The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE. */ metric: string; /** * If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead. */ singleInstanceAssignment: number; /** * The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances. */ utilizationTarget: number; /** * Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. */ utilizationTargetType: string; } /** * Configuration parameters of autoscaling based on load balancing. */ interface AutoscalingPolicyLoadBalancingUtilizationResponse { /** * Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8. */ utilizationTarget: number; } /** * Cloud Autoscaler policy. */ interface AutoscalingPolicyResponse { /** * The number of seconds that your application takes to initialize on a VM instance. This is referred to as the [initialization period](/compute/docs/autoscaler#cool_down_period). Specifying an accurate initialization period improves autoscaler decisions. For example, when scaling out, the autoscaler ignores data from VMs that are still initializing because those VMs might not yet represent normal usage of your application. The default initialization period is 60 seconds. Initialization periods might vary because of numerous factors. We recommend that you test how long your application takes to initialize. To do this, create a VM and time your application's startup process. */ coolDownPeriodSec: number; /** * Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group. */ cpuUtilization: outputs.compute.v1.AutoscalingPolicyCpuUtilizationResponse; /** * Configuration parameters of autoscaling based on a custom metric. */ customMetricUtilizations: outputs.compute.v1.AutoscalingPolicyCustomMetricUtilizationResponse[]; /** * Configuration parameters of autoscaling based on load balancer. */ loadBalancingUtilization: outputs.compute.v1.AutoscalingPolicyLoadBalancingUtilizationResponse; /** * The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas. */ maxNumReplicas: number; /** * The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed. */ minNumReplicas: number; /** * Defines the operating mode for this policy. The following modes are available: - OFF: Disables the autoscaler but maintains its configuration. - ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON: Enables all autoscaler activities according to its policy. For more information, see "Turning off or restricting an autoscaler" */ mode: string; scaleInControl: outputs.compute.v1.AutoscalingPolicyScaleInControlResponse; /** * Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed. */ scalingSchedules: { [key: string]: string; }; } /** * Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below. */ interface AutoscalingPolicyScaleInControlResponse { /** * Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. */ maxScaledInReplicas: outputs.compute.v1.FixedOrPercentResponse; /** * How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. */ timeWindowSec: number; } /** * Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. */ interface BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse { /** * The header field name to match on when bypassing cache. Values are case-insensitive. */ headerName: string; } /** * Message containing what to include in the cache key for a request for Cloud CDN. */ interface BackendBucketCdnPolicyCacheKeyPolicyResponse { /** * Allows HTTP request headers (by name) to be used in the cache key. */ includeHttpHeaders: string[]; /** * Names of query string parameters to include in cache keys. Default parameters are always included. '&' and '=' will be percent encoded and not treated as delimiters. */ queryStringWhitelist: string[]; } /** * Specify CDN TTLs for response error codes. */ interface BackendBucketCdnPolicyNegativeCachingPolicyResponse { /** * The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. */ code: number; /** * The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ ttl: number; } /** * Message containing Cloud CDN configuration for a backend bucket. */ interface BackendBucketCdnPolicyResponse { /** * Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. */ bypassCacheOnRequestHeaders: outputs.compute.v1.BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse[]; /** * The CacheKeyPolicy for this CdnPolicy. */ cacheKeyPolicy: outputs.compute.v1.BackendBucketCdnPolicyCacheKeyPolicyResponse; /** * Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. */ cacheMode: string; /** * Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). */ clientTtl: number; /** * Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ defaultTtl: number; /** * Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ maxTtl: number; /** * Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. */ negativeCaching: boolean; /** * Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. */ negativeCachingPolicy: outputs.compute.v1.BackendBucketCdnPolicyNegativeCachingPolicyResponse[]; /** * If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. */ requestCoalescing: boolean; /** * Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. */ serveWhileStale: number; /** * Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. */ signedUrlCacheMaxAgeSec: string; /** * Names of the keys for signing request URLs. */ signedUrlKeyNames: string[]; } /** * Message containing information of one individual backend. */ interface BackendResponse { /** * Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected. */ balancingMode: string; /** * A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. Not available with backends that don't support using a balancingMode. This includes backends such as global internet NEGs, regional serverless NEGs, and PSC NEGs. */ capacityScaler: number; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService. */ failover: boolean; /** * The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported. */ group: string; /** * Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. */ maxConnections: number; /** * Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. */ maxConnectionsPerEndpoint: number; /** * Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. */ maxConnectionsPerInstance: number; /** * Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. */ maxRate: number; /** * Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. */ maxRatePerEndpoint: number; /** * Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. */ maxRatePerInstance: number; /** * Optional parameter to define a target capacity for the UTILIZATION balancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode. */ maxUtilization: number; } /** * Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. */ interface BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse { /** * The header field name to match on when bypassing cache. Values are case-insensitive. */ headerName: string; } /** * Specify CDN TTLs for response error codes. */ interface BackendServiceCdnPolicyNegativeCachingPolicyResponse { /** * The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. */ code: number; /** * The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ ttl: number; } /** * Message containing Cloud CDN configuration for a backend service. */ interface BackendServiceCdnPolicyResponse { /** * Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. */ bypassCacheOnRequestHeaders: outputs.compute.v1.BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse[]; /** * The CacheKeyPolicy for this CdnPolicy. */ cacheKeyPolicy: outputs.compute.v1.CacheKeyPolicyResponse; /** * Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. */ cacheMode: string; /** * Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). */ clientTtl: number; /** * Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ defaultTtl: number; /** * Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. */ maxTtl: number; /** * Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. */ negativeCaching: boolean; /** * Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. */ negativeCachingPolicy: outputs.compute.v1.BackendServiceCdnPolicyNegativeCachingPolicyResponse[]; /** * If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. */ requestCoalescing: boolean; /** * Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. */ serveWhileStale: number; /** * Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. */ signedUrlCacheMaxAgeSec: string; /** * Names of the keys for signing request URLs. */ signedUrlKeyNames: string[]; } /** * Connection Tracking configuration for this BackendService. */ interface BackendServiceConnectionTrackingPolicyResponse { /** * Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence). */ connectionPersistenceOnUnhealthyBackends: string; /** * Enable Strong Session Affinity for Network Load Balancing. This option is not available publicly. */ enableStrongAffinity: boolean; /** * Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For Network Load Balancer the default is 60 seconds. This option is not available publicly. */ idleTimeoutSec: number; /** * Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode). */ trackingMode: string; } /** * For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). */ interface BackendServiceFailoverPolicyResponse { /** * This can be set to true only if the protocol is TCP. The default is false. */ disableConnectionDrainOnFailover: boolean; /** * If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false. */ dropTrafficIfUnhealthy: boolean; /** * The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). */ failoverRatio: number; } /** * Identity-Aware Proxy */ interface BackendServiceIAPResponse { /** * Whether the serving infrastructure will authenticate and authorize all incoming requests. */ enabled: boolean; /** * OAuth2 client ID to use for the authentication flow. */ oauth2ClientId: string; /** * OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly */ oauth2ClientSecret: string; /** * SHA256 hash value for the field oauth2_client_secret above. */ oauth2ClientSecretSha256: string; } /** * The configuration for a custom policy implemented by the user and deployed with the client. */ interface BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyResponse { /** * An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation. */ data: string; /** * Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy. */ name: string; } /** * The configuration for a built-in load balancing policy. */ interface BackendServiceLocalityLoadBalancingPolicyConfigPolicyResponse { /** * The name of a locality load-balancing policy. Valid values include ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about these values, see the description of localityLbPolicy. Do not specify the same policy more than once for a backend. If you do, the configuration is rejected. */ name: string; } /** * Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user. */ interface BackendServiceLocalityLoadBalancingPolicyConfigResponse { customPolicy: outputs.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyResponse; policy: outputs.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigPolicyResponse; } /** * The available logging options for the load balancer traffic served by this backend service. */ interface BackendServiceLogConfigResponse { /** * Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false. */ enable: boolean; /** * This field can only be specified if logging is enabled for this backend service and "logConfig.optionalMode" was set to CUSTOM. Contains a list of optional fields you want to include in the logs. For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace */ optionalFields: string[]; /** * This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL. */ optionalMode: string; /** * This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0. */ sampleRate: number; } interface BackendServiceUsedByResponse { reference: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * This is deprecated and has no effect. Do not use. */ bindingId: string; /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.compute.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Message containing what to include in the cache key for a request for Cloud CDN. */ interface CacheKeyPolicyResponse { /** * If true, requests to different hosts will be cached separately. */ includeHost: boolean; /** * Allows HTTP request headers (by name) to be used in the cache key. */ includeHttpHeaders: string[]; /** * Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates. */ includeNamedCookies: string[]; /** * If true, http and https requests will be cached separately. */ includeProtocol: boolean; /** * If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely. */ includeQueryString: boolean; /** * Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. */ queryStringBlacklist: string[]; /** * Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. */ queryStringWhitelist: string[]; } /** * Settings controlling the volume of requests, connections and retries to this backend service. */ interface CircuitBreakersResponse { /** * The maximum number of connections to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxConnections: number; /** * The maximum number of pending requests allowed to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxPendingRequests: number; /** * The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit. */ maxRequests: number; /** * Maximum requests for a single connection to the backend service. This parameter is respected by both the HTTP/1.1 and HTTP/2 implementations. If not specified, there is no limit. Setting this parameter to 1 will effectively disable keep alive. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxRequestsPerConnection: number; /** * The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ maxRetries: number; } /** * This is deprecated and has no effect. Do not use. */ interface ConditionResponse { /** * This is deprecated and has no effect. Do not use. */ iam: string; /** * This is deprecated and has no effect. Do not use. */ op: string; /** * This is deprecated and has no effect. Do not use. */ svc: string; /** * This is deprecated and has no effect. Do not use. */ sys: string; /** * This is deprecated and has no effect. Do not use. */ values: string[]; } /** * A set of Confidential Instance options. */ interface ConfidentialInstanceConfigResponse { /** * Defines whether the instance should have confidential compute enabled. */ enableConfidentialCompute: boolean; } /** * Message containing connection draining configuration. */ interface ConnectionDrainingResponse { /** * Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining. */ drainingTimeoutSec: number; } /** * The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash. */ interface ConsistentHashLoadBalancerSettingsHttpCookieResponse { /** * Name of the cookie. */ name: string; /** * Path to set for the cookie. */ path: string; /** * Lifetime of the cookie. */ ttl: outputs.compute.v1.DurationResponse; } /** * This message defines settings for a consistent hash style load balancer. */ interface ConsistentHashLoadBalancerSettingsResponse { /** * Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. */ httpCookie: outputs.compute.v1.ConsistentHashLoadBalancerSettingsHttpCookieResponse; /** * The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD. */ httpHeaderName: string; /** * The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node. */ minimumRingSize: string; } /** * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. */ interface CorsPolicyResponse { /** * In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false. */ allowCredentials: boolean; /** * Specifies the content for the Access-Control-Allow-Headers header. */ allowHeaders: string[]; /** * Specifies the content for the Access-Control-Allow-Methods header. */ allowMethods: string[]; /** * Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ allowOriginRegexes: string[]; /** * Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. */ allowOrigins: string[]; /** * If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. */ disabled: boolean; /** * Specifies the content for the Access-Control-Expose-Headers header. */ exposeHeaders: string[]; /** * Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header. */ maxAge: number; } interface CustomerEncryptionKeyResponse { /** * The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 */ kmsKeyName: string; /** * The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ */ kmsKeyServiceAccount: string; /** * Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" */ rawKey: string; /** * Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem */ rsaEncryptedKey: string; /** * [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource. */ sha256: string; } /** * Deprecation status for a public resource. */ interface DeprecationStatusResponse { /** * An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it. */ deleted: string; /** * An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it. */ deprecated: string; /** * An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it. */ obsolete: string; /** * The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource. */ replacement: string; /** * The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error. */ state: string; } interface DiskAsyncReplicationResponse { /** * URL of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group. */ consistencyGroupPolicy: string; /** * ID of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group. */ consistencyGroupPolicyId: string; /** * The other disk asynchronously replicated to or from the current disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk */ disk: string; /** * The unique ID of the other disk asynchronously replicated to or from the current disk. This value identifies the exact disk that was used to create this replication. For example, if you started replicating the persistent disk from a disk that was later deleted and recreated under the same name, the disk ID would identify the exact version of the disk that was used. */ diskId: string; } /** * A specification of the desired way to instantiate a disk in the instance template when its created from a source instance. */ interface DiskInstantiationConfigResponse { /** * Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * The custom source image to be used to restore this disk when instantiating this instance template. */ customImage: string; /** * Specifies the device name of the disk to which the configurations apply to. */ deviceName: string; /** * Specifies whether to include the disk and what image to use. Possible values are: - source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. - attach-read-only: to attach a read-only disk. Applicable to read-only disks. - do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks. */ instantiateFrom: string; } /** * Additional disk params. */ interface DiskParamsResponse { /** * Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; } interface DiskResourceStatusAsyncReplicationStatusResponse { state: string; } interface DiskResourceStatusResponse { asyncPrimaryDisk: outputs.compute.v1.DiskResourceStatusAsyncReplicationStatusResponse; /** * Key: disk, value: AsyncReplicationStatus message */ asyncSecondaryDisks: { [key: string]: string; }; } /** * A set of Display Device options */ interface DisplayDeviceResponse { /** * Defines whether the instance has Display enabled. */ enableDisplay: boolean; } interface DistributionPolicyResponse { /** * The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType). */ targetShape: string; /** * Zones where the regional managed instance group will create and manage its instances. */ zones: outputs.compute.v1.DistributionPolicyZoneConfigurationResponse[]; } interface DistributionPolicyZoneConfigurationResponse { /** * The URL of the zone. The zone must exist in the region where the managed instance group is located. */ zone: string; } /** * A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. */ interface DurationResponse { /** * Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive. */ nanos: number; /** * Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years */ seconds: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * The interface for the external VPN gateway. */ interface ExternalVpnGatewayInterfaceResponse { /** * IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. */ ipAddress: string; } interface FileContentBufferResponse { /** * The raw content in the secure keys file. */ content: string; /** * The file type of source file. */ fileType: string; } interface FirewallAllowedItemResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports: string[]; } interface FirewallDeniedItemResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports: string[]; } /** * The available logging options for a firewall rule. */ interface FirewallLogConfigResponse { /** * This field denotes whether to enable logging for a particular firewall rule. */ enable: boolean; /** * This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs. */ metadata: string; } interface FirewallPolicyAssociationResponse { /** * The target that the firewall policy is attached to. */ attachmentTarget: string; /** * Deprecated, please use short name instead. The display name of the firewall policy of the association. */ displayName: string; /** * The firewall policy ID of the association. */ firewallPolicyId: string; /** * The name for an association. */ name: string; /** * The short name of the firewall policy of the association. */ shortName: string; } interface FirewallPolicyRuleMatcherLayer4ConfigResponse { /** * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. */ ipProtocol: string; /** * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports: string[]; } /** * Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. */ interface FirewallPolicyRuleMatcherResponse { /** * Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. */ destAddressGroups: string[]; /** * Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. */ destFqdns: string[]; /** * CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. */ destIpRanges: string[]; /** * Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. */ destRegionCodes: string[]; /** * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. */ destThreatIntelligences: string[]; /** * Pairs of IP protocols and ports that the rule should match. */ layer4Configs: outputs.compute.v1.FirewallPolicyRuleMatcherLayer4ConfigResponse[]; /** * Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. */ srcAddressGroups: string[]; /** * Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. */ srcFqdns: string[]; /** * CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. */ srcIpRanges: string[]; /** * Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. */ srcRegionCodes: string[]; /** * List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum number of source tag values allowed is 256. */ srcSecureTags: outputs.compute.v1.FirewallPolicyRuleSecureTagResponse[]; /** * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. */ srcThreatIntelligences: string[]; } /** * Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). */ interface FirewallPolicyRuleResponse { /** * The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny" and "goto_next". */ action: string; /** * An optional description for this resource. */ description: string; /** * The direction in which this rule applies. */ direction: string; /** * Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. */ disabled: boolean; /** * Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. */ enableLogging: boolean; /** * [Output only] Type of the resource. Always compute#firewallPolicyRule for firewall policy rules */ kind: string; /** * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. */ match: outputs.compute.v1.FirewallPolicyRuleMatcherResponse; /** * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. */ priority: number; /** * An optional name for the rule. This field is not a unique identifier and can be updated. */ ruleName: string; /** * Calculation of the complexity of a single firewall policy rule. */ ruleTupleCount: number; /** * A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. */ targetResources: string[]; /** * A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the target_secure_tag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule applies to all instances on the specified network. Maximum number of target label tags allowed is 256. */ targetSecureTags: outputs.compute.v1.FirewallPolicyRuleSecureTagResponse[]; /** * A list of service accounts indicating the sets of instances that are applied with this rule. */ targetServiceAccounts: string[]; } interface FirewallPolicyRuleSecureTagResponse { /** * Name of the secure tag, created with TagManager's TagValue API. */ name: string; /** * State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted. */ state: string; } /** * Encapsulates numeric value that can be either absolute or relative. */ interface FixedOrPercentResponse { /** * Absolute value of VM instances calculated based on the specific mode. - If the value is fixed, then the calculated value is equal to the fixed value. - If the value is a percent, then the calculated value is percent/100 * targetSize. For example, the calculated value of a 80% of a managed instance group with 150 instances would be (80/100 * 150) = 120 VM instances. If there is a remainder, the number is rounded. */ calculated: number; /** * Specifies a fixed number of VM instances. This must be a positive integer. */ fixed: number; /** * Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. */ percent: number; } /** * Describes the auto-registration of the Forwarding Rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this Forwarding Rule. */ interface ForwardingRuleServiceDirectoryRegistrationResponse { /** * Service Directory namespace to register the forwarding rule under. */ namespace: string; /** * Service Directory service to register the forwarding rule under. */ service: string; /** * [Optional] Service Directory region to register this global forwarding rule under. Default to "us-central1". Only used for PSC for Google APIs. All PSC for Google APIs Forwarding Rules on the same network should use the same Service Directory region. */ serviceDirectoryRegion: string; } interface GRPCHealthCheckResponse { /** * The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII. */ grpcServiceName: string; /** * The TCP port number to which the health check prober sends packets. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; } /** * Guest OS features. */ interface GuestOsFeatureResponse { /** * The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE For more information, see Enabling guest operating system features. */ type: string; } interface HTTP2HealthCheckResponse { /** * The value of the host header in the HTTP/2 health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest */ host: string; /** * The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * The request path of the HTTP/2 health check request. The default value is /. */ requestPath: string; /** * Creates a content-based HTTP/2 health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http */ response: string; } interface HTTPHealthCheckResponse { /** * The value of the host header in the HTTP health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest */ host: string; /** * The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Also supported in legacy HTTP health checks for target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * The request path of the HTTP health check request. The default value is /. */ requestPath: string; /** * Creates a content-based HTTP health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http */ response: string; } interface HTTPSHealthCheckResponse { /** * The value of the host header in the HTTPS health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest */ host: string; /** * The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * The request path of the HTTPS health check request. The default value is /. */ requestPath: string; /** * Creates a content-based HTTPS health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http */ response: string; } /** * Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver. */ interface HealthCheckLogConfigResponse { /** * Indicates whether or not to export logs. This is false by default, which means no health check logging will be done. */ enable: boolean; } /** * UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService. */ interface HostRuleResponse { /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character, and if followed by anything, the immediate following character must be either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ hosts: string[]; /** * The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion. */ pathMatcher: string; } /** * Specification for how requests are aborted as part of fault injection. */ interface HttpFaultAbortResponse { /** * The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director. */ httpStatus: number; /** * The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive. */ percentage: number; } /** * Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection. */ interface HttpFaultDelayResponse { /** * Specifies the value of the fixed delay interval. */ fixedDelay: outputs.compute.v1.DurationResponse; /** * The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive. */ percentage: number; } /** * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. */ interface HttpFaultInjectionResponse { /** * The specification for how client requests are aborted as part of fault injection. */ abort: outputs.compute.v1.HttpFaultAbortResponse; /** * The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. */ delay: outputs.compute.v1.HttpFaultDelayResponse; } /** * The request and response header transformations that take effect before the request is passed along to the selected backendService. */ interface HttpHeaderActionResponse { /** * Headers to add to a matching request before forwarding the request to the backendService. */ requestHeadersToAdd: outputs.compute.v1.HttpHeaderOptionResponse[]; /** * A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. */ requestHeadersToRemove: string[]; /** * Headers to add the response before sending the response back to the client. */ responseHeadersToAdd: outputs.compute.v1.HttpHeaderOptionResponse[]; /** * A list of header names for headers that need to be removed from the response before sending the response back to the client. */ responseHeadersToRemove: string[]; } /** * matchRule criteria for request header matches. */ interface HttpHeaderMatchResponse { /** * The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ exactMatch: string; /** * The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name ":authority". For matching a request's method, use the headerName ":method". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`. */ headerName: string; /** * If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. */ invertMatch: boolean; /** * The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ prefixMatch: string; /** * A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ presentMatch: boolean; /** * The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL. */ rangeMatch: outputs.compute.v1.Int64RangeMatchResponse; /** * The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ regexMatch: string; /** * The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. */ suffixMatch: string; } /** * Specification determining how headers are added to requests or responses. */ interface HttpHeaderOptionResponse { /** * The name of the header. */ headerName: string; /** * The value of the header to add. */ headerValue: string; /** * If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. */ replace: boolean; } /** * HttpRouteRuleMatch criteria for a request's query parameter. */ interface HttpQueryParameterMatchResponse { /** * The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. */ exactMatch: string; /** * The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails. */ name: string; /** * Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. */ presentMatch: boolean; /** * The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ regexMatch: string; } /** * Specifies settings for an HTTP redirect. */ interface HttpRedirectActionResponse { /** * The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters. */ hostRedirect: string; /** * If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false. */ httpsRedirect: boolean; /** * The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. */ pathRedirect: string; /** * The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. */ prefixRedirect: string; /** * The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. */ redirectResponseCode: string; /** * If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. */ stripQuery: boolean; } /** * The retry policy associates with HttpRouteRule */ interface HttpRetryPolicyResponse { /** * Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. */ numRetries: number; /** * Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ perTryTimeout: outputs.compute.v1.DurationResponse; /** * Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable */ retryConditions: string[]; } interface HttpRouteActionResponse { /** * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy. */ corsPolicy: outputs.compute.v1.CorsPolicyResponse; /** * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the classic Application Load Balancer . To see which load balancers support fault injection, see Load balancing: Routing and traffic management features. */ faultInjectionPolicy: outputs.compute.v1.HttpFaultInjectionResponse; /** * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. */ maxStreamDuration: outputs.compute.v1.DurationResponse; /** * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ requestMirrorPolicy: outputs.compute.v1.RequestMirrorPolicyResponse; /** * Specifies the retry policy associated with this route. */ retryPolicy: outputs.compute.v1.HttpRetryPolicyResponse; /** * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ timeout: outputs.compute.v1.DurationResponse; /** * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for classic Application Load Balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. */ urlRewrite: outputs.compute.v1.UrlRewriteResponse; /** * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. */ weightedBackendServices: outputs.compute.v1.WeightedBackendServiceResponse[]; } /** * HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur. */ interface HttpRouteRuleMatchResponse { /** * For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. */ fullPathMatch: string; /** * Specifies a list of header match criteria, all of which must match corresponding headers in the request. */ headerMatches: outputs.compute.v1.HttpHeaderMatchResponse[]; /** * Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy. */ ignoreCase: boolean; /** * Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ metadataFilters: outputs.compute.v1.MetadataFilterResponse[]; /** * If specified, the route is a pattern match expression that must match the :path header once the query string is removed. A pattern match allows you to match - The value must be between 1 and 1024 characters - The pattern must start with a leading slash ("/") - There may be no more than 5 operators in pattern Precisely one of prefix_match, full_path_match, regex_match or path_template_match must be set. */ pathTemplateMatch: string; /** * For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. */ prefixMatch: string; /** * Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy. */ queryParameterMatches: outputs.compute.v1.HttpQueryParameterMatchResponse[]; /** * For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. */ regexMatch: string; } /** * The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform. */ interface HttpRouteRuleResponse { /** * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters. */ description: string; /** * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ headerAction: outputs.compute.v1.HttpHeaderActionResponse; /** * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule. */ matchRules: outputs.compute.v1.HttpRouteRuleMatchResponse[]; /** * For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules. */ priority: number; /** * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a route rule's routeAction. */ routeAction: outputs.compute.v1.HttpRouteActionResponse; /** * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. */ service: string; /** * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. */ urlRedirect: outputs.compute.v1.HttpRedirectActionResponse; } /** * The parameters of the raw disk image. */ interface ImageRawDiskResponse { /** * The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created. */ containerType: string; /** * [Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created. * * @deprecated [Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created. */ sha1Checksum: string; /** * The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL */ source: string; } /** * Initial State for shielded instance, these are public keys which are safe to store in public */ interface InitialStateConfigResponse { /** * The Key Database (db). */ dbs: outputs.compute.v1.FileContentBufferResponse[]; /** * The forbidden key database (dbx). */ dbxs: outputs.compute.v1.FileContentBufferResponse[]; /** * The Key Exchange Key (KEK). */ keks: outputs.compute.v1.FileContentBufferResponse[]; /** * The Platform Key (PK). */ pk: outputs.compute.v1.FileContentBufferResponse; } interface InstanceGroupManagerActionsSummaryResponse { /** * The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it. */ abandoning: number; /** * The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully. If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated. */ creating: number; /** * The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly. */ creatingWithoutRetries: number; /** * The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted. */ deleting: number; /** * The number of instances in the managed instance group that are running and have no scheduled actions. */ none: number; /** * The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template. */ recreating: number; /** * The number of instances in the managed instance group that are being reconfigured with properties that do not require a restart or a recreate action. For example, setting or removing target pools for the instance. */ refreshing: number; /** * The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted. */ restarting: number; /** * The number of instances in the managed instance group that are scheduled to be resumed or are currently being resumed. */ resuming: number; /** * The number of instances in the managed instance group that are scheduled to be started or are currently being started. */ starting: number; /** * The number of instances in the managed instance group that are scheduled to be stopped or are currently being stopped. */ stopping: number; /** * The number of instances in the managed instance group that are scheduled to be suspended or are currently being suspended. */ suspending: number; /** * The number of instances in the managed instance group that are being verified. See the managedInstances[].currentAction property in the listManagedInstances method documentation. */ verifying: number; } interface InstanceGroupManagerAutoHealingPolicyResponse { /** * The URL for the health check that signals autohealing. */ healthCheck: string; /** * The initial delay is the number of seconds that a new VM takes to initialize and run its startup script. During a VM's initial delay period, the MIG ignores unsuccessful health checks because the VM might be in the startup process. This prevents the MIG from prematurely recreating a VM. If the health check receives a healthy response during the initial delay, it indicates that the startup process is complete and the VM is ready. The value of initial delay must be between 0 and 3600 seconds. The default value is 0. */ initialDelaySec: number; } interface InstanceGroupManagerInstanceLifecyclePolicyResponse { /** * A bit indicating whether to forcefully apply the group's latest configuration when repairing a VM. Valid options are: - NO (default): If configuration updates are available, they are not forcefully applied during repair. Instead, configuration updates are applied according to the group's update policy. - YES: If configuration updates are available, they are applied during repair. */ forceUpdateOnRepair: string; } interface InstanceGroupManagerStatusResponse { /** * The URL of the Autoscaler that targets this instance group manager. */ autoscaler: string; /** * A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified. */ isStable: boolean; /** * Stateful status of the given Instance Group Manager. */ stateful: outputs.compute.v1.InstanceGroupManagerStatusStatefulResponse; /** * A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager. */ versionTarget: outputs.compute.v1.InstanceGroupManagerStatusVersionTargetResponse; } interface InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse { /** * A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs. */ allEffective: boolean; } interface InstanceGroupManagerStatusStatefulResponse { /** * A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. */ hasStatefulConfig: boolean; /** * Status of per-instance configurations on the instance. */ perInstanceConfigs: outputs.compute.v1.InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse; } interface InstanceGroupManagerStatusVersionTargetResponse { /** * A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager. */ isReached: boolean; } interface InstanceGroupManagerUpdatePolicyResponse { /** * The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. */ instanceRedistributionType: string; /** * The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge. */ maxSurge: outputs.compute.v1.FixedOrPercentResponse; /** * The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable. */ maxUnavailable: outputs.compute.v1.FixedOrPercentResponse; /** * Minimal action to be taken on an instance. Use this option to minimize disruption as much as possible or to apply a more disruptive action than is necessary. - To limit disruption as much as possible, set the minimal action to REFRESH. If your update requires a more disruptive action, Compute Engine performs the necessary action to execute the update. - To apply a more disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For example, Compute Engine does not need to restart a VM to change its metadata. But if your application reads instance metadata only when a VM is restarted, you can set the minimal action to RESTART in order to pick up metadata changes. */ minimalAction: string; /** * Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to avoid restarting the VM and to limit disruption as much as possible. RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all. */ mostDisruptiveAllowedAction: string; /** * What action should be used to replace instances. See minimal_action.REPLACE */ replacementMethod: string; /** * The type of update process. You can specify either PROACTIVE so that the MIG automatically updates VMs to the latest configurations or OPPORTUNISTIC so that you can select the VMs that you want to update. */ type: string; } interface InstanceGroupManagerVersionResponse { /** * The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached. */ instanceTemplate: string; /** * Name of the version. Unique among all versions in the scope of this managed instance group. */ name: string; /** * Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information. */ targetSize: outputs.compute.v1.FixedOrPercentResponse; } /** * Additional instance params. */ interface InstanceParamsResponse { /** * Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; } interface InstancePropertiesResponse { /** * Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet. */ advancedMachineFeatures: outputs.compute.v1.AdvancedMachineFeaturesResponse; /** * Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. */ canIpForward: boolean; /** * Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet. */ confidentialInstanceConfig: outputs.compute.v1.ConfidentialInstanceConfigResponse; /** * An optional text description for the instances that are created from these properties. */ description: string; /** * An array of disks that are associated with the instances that are created from these properties. */ disks: outputs.compute.v1.AttachedDiskResponse[]; /** * A list of guest accelerator cards' type and count to use for instances created from these properties. */ guestAccelerators: outputs.compute.v1.AcceleratorConfigResponse[]; /** * KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. */ keyRevocationActionType: string; /** * Labels to apply to instances that are created from these properties. */ labels: { [key: string]: string; }; /** * The machine type to use for instances that are created from these properties. */ machineType: string; /** * The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. */ metadata: outputs.compute.v1.MetadataResponse; /** * Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. */ minCpuPlatform: string; /** * An array of network access configurations for this interface. */ networkInterfaces: outputs.compute.v1.NetworkInterfaceResponse[]; /** * Note that for MachineImage, this is not supported yet. */ networkPerformanceConfig: outputs.compute.v1.NetworkPerformanceConfigResponse; /** * The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet. */ privateIpv6GoogleAccess: string; /** * Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet. */ reservationAffinity: outputs.compute.v1.ReservationAffinityResponse; /** * Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. */ resourceManagerTags: { [key: string]: string; }; /** * Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet. */ resourcePolicies: string[]; /** * Specifies the scheduling options for the instances that are created from these properties. */ scheduling: outputs.compute.v1.SchedulingResponse; /** * A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances. */ serviceAccounts: outputs.compute.v1.ServiceAccountResponse[]; /** * Note that for MachineImage, this is not supported yet. */ shieldedInstanceConfig: outputs.compute.v1.ShieldedInstanceConfigResponse; /** * A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. */ tags: outputs.compute.v1.TagsResponse; } /** * HttpRouteRuleMatch criteria for field values that must stay within the specified integer range. */ interface Int64RangeMatchResponse { /** * The end of the range (exclusive) in signed long integer format. */ rangeEnd: string; /** * The start of the range (inclusive) in signed long integer format. */ rangeStart: string; } interface InterconnectAttachmentConfigurationConstraintsBgpPeerASNRangeResponse { max: number; min: number; } interface InterconnectAttachmentConfigurationConstraintsResponse { /** * Whether the attachment's BGP session requires/allows/disallows BGP MD5 authentication. This can take one of the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud Interconnect connection to a remote cloud provider that requires BGP MD5 authentication has the interconnectRemoteLocation attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and that property is propagated to the attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is returned if MD5 is requested. */ bgpMd5: string; /** * List of ASN ranges that the remote location is known to support. Formatted as an array of inclusive ranges {min: min-value, max: max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}] allows the peer ASN to be 123 or anything in the range 64512-65534. This field is only advisory. Although the API accepts other ranges, these are the ranges that we recommend. */ bgpPeerAsnRanges: outputs.compute.v1.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRangeResponse[]; } /** * Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments. */ interface InterconnectAttachmentPartnerMetadataResponse { /** * Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance "Chicago 1". This value may be validated to match approved Partner values. */ interconnectName: string; /** * Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values. */ partnerName: string; /** * URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values. */ portalUrl: string; } /** * Information for an interconnect attachment when this belongs to an interconnect of type DEDICATED. */ interface InterconnectAttachmentPrivateInfoResponse { /** * 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region. */ tag8021q: number; } /** * Describes a single physical circuit between the Customer and Google. CircuitInfo objects are created by Google, so all fields are output only. */ interface InterconnectCircuitInfoResponse { /** * Customer-side demarc ID for this circuit. */ customerDemarcId: string; /** * Google-assigned unique ID for this circuit. Assigned at circuit turn-up. */ googleCircuitId: string; /** * Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by Google to the customer in the LOA. */ googleDemarcId: string; } /** * Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode. */ interface InterconnectMacsecPreSharedKeyResponse { /** * A name for this pre-shared key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * A RFC3339 timestamp on or after which the key is valid. startTime can be in the future. If the keychain has a single key, startTime can be omitted. If the keychain has multiple keys, startTime is mandatory for each key. The start times of keys must be in increasing order. The start times of two consecutive keys must be at least 6 hours apart. */ startTime: string; } /** * Configuration information for enabling Media Access Control security (MACsec) on this Cloud Interconnect connection between Google and your on-premises router. */ interface InterconnectMacsecResponse { /** * If set to true, the Interconnect connection is configured with a should-secure MACsec security policy, that allows the Google router to fallback to cleartext traffic if the MKA session cannot be established. By default, the Interconnect connection is configured with a must-secure security policy that drops all traffic if the MKA session cannot be established with your router. */ failOpen: boolean; /** * A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link. */ preSharedKeys: outputs.compute.v1.InterconnectMacsecPreSharedKeyResponse[]; } /** * Description of a planned outage on this Interconnect. */ interface InterconnectOutageNotificationResponse { /** * If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected. */ affectedCircuits: string[]; /** * A description about the purpose of the outage. */ description: string; /** * Scheduled end time for the outage (milliseconds since Unix epoch). */ endTime: string; /** * Form this outage is expected to take, which can take one of the following values: - OUTAGE: The Interconnect may be completely out of service for some or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain up, but with reduced bandwidth. Note that the versions of this enum prefixed with "IT_" have been deprecated in favor of the unprefixed values. */ issueType: string; /** * Unique identifier for this outage notification. */ name: string; /** * The party that generated this notification, which can take the following value: - GOOGLE: this notification as generated by Google. Note that the value of NSRC_GOOGLE has been deprecated in favor of GOOGLE. */ source: string; /** * Scheduled start time for the outage (milliseconds since Unix epoch). */ startTime: string; /** * State of this notification, which can take one of the following values: - ACTIVE: This outage notification is active. The event could be in the past, present, or future. See start_time and end_time for scheduling. - CANCELLED: The outage associated with this notification was cancelled before the outage was due to start. - COMPLETED: The outage associated with this notification is complete. Note that the versions of this enum prefixed with "NS_" have been deprecated in favor of the unprefixed values. */ state: string; } /** * Commitment for a particular license resource. */ interface LicenseResourceCommitmentResponse { /** * The number of licenses purchased. */ amount: string; /** * Specifies the core range of the instance for which this license applies. */ coresPerLicense: string; /** * Any applicable license URI. */ license: string; } interface LicenseResourceRequirementsResponse { /** * Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start. */ minGuestCpuCount: number; /** * Minimum memory required to use the Instance. Enforced at Instance creation and Instance start. */ minMemoryMb: number; } interface LocalDiskResponse { /** * Specifies the number of such disks. */ diskCount: number; /** * Specifies the size of the disk in base-2 GB. */ diskSizeGb: number; /** * Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. */ diskType: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigCloudAuditOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ authorizationLoggingOptions: outputs.compute.v1.AuthorizationLoggingOptionsResponse; /** * This is deprecated and has no effect. Do not use. */ logName: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigCounterOptionsCustomFieldResponse { /** * This is deprecated and has no effect. Do not use. */ name: string; /** * This is deprecated and has no effect. Do not use. */ value: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigCounterOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ customFields: outputs.compute.v1.LogConfigCounterOptionsCustomFieldResponse[]; /** * This is deprecated and has no effect. Do not use. */ field: string; /** * This is deprecated and has no effect. Do not use. */ metric: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigDataAccessOptionsResponse { /** * This is deprecated and has no effect. Do not use. */ logMode: string; } /** * This is deprecated and has no effect. Do not use. */ interface LogConfigResponse { /** * This is deprecated and has no effect. Do not use. */ cloudAudit: outputs.compute.v1.LogConfigCloudAuditOptionsResponse; /** * This is deprecated and has no effect. Do not use. */ counter: outputs.compute.v1.LogConfigCounterOptionsResponse; /** * This is deprecated and has no effect. Do not use. */ dataAccess: outputs.compute.v1.LogConfigDataAccessOptionsResponse; } /** * MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer. */ interface MetadataFilterLabelMatchResponse { /** * Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long. */ name: string; /** * The value of the label must match the specified value. value can have a maximum length of 1024 characters. */ value: string; } /** * Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers. */ interface MetadataFilterResponse { /** * The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries. */ filterLabels: outputs.compute.v1.MetadataFilterLabelMatchResponse[]; /** * Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. */ filterMatchCriteria: string; } /** * Metadata */ interface MetadataItemsItemResponse { /** * Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project. */ key: string; /** * Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB). */ value: string; } /** * A metadata key/value entry. */ interface MetadataResponse { /** * Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource. */ fingerprint: string; /** * Array of key/value pairs. The total size of all keys and values must be less than 512 KB. */ items: outputs.compute.v1.MetadataItemsItemResponse[]; /** * Type of the resource. Always compute#metadata for metadata. */ kind: string; } /** * The named port. For example: <"http", 80>. */ interface NamedPortResponse { /** * The name for this named port. The name must be 1-63 characters long, and comply with RFC1035. */ name: string; /** * The port number, which can be a value between 1 and 65535. */ port: number; } /** * [Output Only] A connection connected to this network attachment. */ interface NetworkAttachmentConnectedEndpointResponse { /** * The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless. */ ipAddress: string; /** * The IPv6 address assigned to the producer instance network interface. This is only assigned when the stack types of both the instance network interface and the consumer subnet are IPv4_IPv6. */ ipv6Address: string; /** * The project id or number of the interface to which the IP was assigned. */ projectIdOrNum: string; /** * Alias IP ranges from the same subnetwork. */ secondaryIpCidrRanges: string[]; /** * The status of a connected endpoint to this network attachment. */ status: string; /** * The subnetwork used to assign the IP to the producer instance network interface. */ subnetwork: string; /** * The CIDR range of the subnet from which the IPv4 internal IP was allocated from. */ subnetworkCidrRange: string; } /** * Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupAppEngineResponse { /** * Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: "default", "my-service". */ service: string; /** * A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. */ urlMask: string; /** * Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: "v1", "v2". */ version: string; } /** * Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupCloudFunctionResponse { /** * A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: "func1". */ function: string; /** * A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs " mydomain.com/function1" and "mydomain.com/function2" can be backed by the same Serverless NEG with URL mask "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. */ urlMask: string; } /** * Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG. */ interface NetworkEndpointGroupCloudRunResponse { /** * Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: "run-service". */ service: string; /** * Optional Cloud Run tag represents the "named-revision" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: "revision-0010". */ tag: string; /** * A template to parse and fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. */ urlMask: string; } /** * All data that is specifically relevant to only network endpoint groups of type PRIVATE_SERVICE_CONNECT. */ interface NetworkEndpointGroupPscDataResponse { /** * Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB. */ consumerPscAddress: string; /** * The PSC connection id of the PSC Network Endpoint Group Consumer. */ pscConnectionId: string; /** * The connection status of the PSC Forwarding Rule. */ pscConnectionStatus: string; } /** * A network interface resource attached to an instance. */ interface NetworkInterfaceResponse { /** * An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access. */ accessConfigs: outputs.compute.v1.AccessConfigResponse[]; /** * An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks. */ aliasIpRanges: outputs.compute.v1.AliasIpRangeResponse[]; /** * Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface. The request will fail with error 400 Bad Request if the fingerprint is not provided, or 412 Precondition Failed if the fingerprint is out of date. */ fingerprint: string; /** * The prefix length of the primary internal IPv6 range. */ internalIpv6PrefixLength: number; /** * An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. */ ipv6AccessConfigs: outputs.compute.v1.AccessConfigResponse[]; /** * One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork. Valid only if stackType is IPV4_IPV6. */ ipv6AccessType: string; /** * An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork. */ ipv6Address: string; /** * Type of the resource. Always compute#networkInterface for network interfaces. */ kind: string; /** * The name of the network interface, which is generated by the server. For a VM, the network interface uses the nicN naming format. Where N is a value between 0 and 7. The default interface value is nic0. */ name: string; /** * URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default */ network: string; /** * The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}. */ networkAttachment: string; /** * An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system. */ networkIP: string; /** * The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. */ nicType: string; /** * The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users. */ queueCount: number; /** * The stack type for this network interface. To assign only IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set at instance creation and update network interface operations. */ stackType: string; /** * The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork */ subnetwork: string; } /** * A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering. */ interface NetworkPeeringResponse { /** * This field will be deprecated soon. Use the exchange_subnet_routes field instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE. */ autoCreateRoutes: boolean; /** * Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE. */ exchangeSubnetRoutes: boolean; /** * Whether to export the custom routes to peer network. The default value is false. */ exportCustomRoutes: boolean; /** * Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. IPv4 special-use ranges are always exported to peers and are not controlled by this field. */ exportSubnetRoutesWithPublicIp: boolean; /** * Whether to import the custom routes from peer network. The default value is false. */ importCustomRoutes: boolean; /** * Whether subnet routes with public IP range are imported. The default value is false. IPv4 special-use ranges are always imported from peers and are not controlled by this field. */ importSubnetRoutesWithPublicIp: boolean; /** * Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network. */ network: string; /** * Maximum Transmission Unit in bytes. */ peerMtu: number; /** * Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY. */ stackType: string; /** * State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network. */ state: string; /** * Details about the current state of the peering. */ stateDetails: string; } interface NetworkPerformanceConfigResponse { totalEgressBandwidthTier: string; } /** * A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. */ interface NetworkRoutingConfigResponse { /** * The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions. */ routingMode: string; } interface NodeGroupAutoscalingPolicyResponse { /** * The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100. */ maxNodes: number; /** * The minimum number of nodes that the group should have. */ minNodes: number; /** * The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes. */ mode: string; } /** * Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window. */ interface NodeGroupMaintenanceWindowResponse { /** * [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. */ maintenanceDuration: outputs.compute.v1.DurationResponse; /** * Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. */ startTime: string; } interface NodeTemplateNodeTypeFlexibilityResponse { cpus: string; localSsd: string; memory: string; } /** * Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint. */ interface NotificationEndpointGrpcSettingsResponse { /** * Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3 */ authority: string; /** * Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name. */ endpoint: string; /** * Optional. If specified, this field is used to populate the "name" field in gRPC requests. */ payloadName: string; /** * Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. Can only be set for regional notification endpoints. */ resendInterval: outputs.compute.v1.DurationResponse; /** * How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number. */ retryDurationSec: number; } /** * Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. */ interface OutlierDetectionResponse { /** * The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a backend endpoint is returned back to the load balancing pool, it can be ejected again in another ejection analysis. Thus, the total ejection time is equal to the base ejection time multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or 30s. */ baseEjectionTime: outputs.compute.v1.DurationResponse; /** * Number of consecutive errors before a backend endpoint is ejected from the load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. */ consecutiveErrors: number; /** * The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. */ consecutiveGatewayFailure: number; /** * The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. */ enforcingConsecutiveErrors: number; /** * The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. */ enforcingConsecutiveGatewayFailure: number; /** * The percentage chance that a backend endpoint will be ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service uses Serverless NEG. */ enforcingSuccessRate: number; /** * Time interval between ejection analysis sweeps. This can result in both new ejections and backend endpoints being returned to service. The interval is equal to the number of seconds as defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in outlierDetection.interval.nanos. Defaults to 1 second. */ interval: outputs.compute.v1.DurationResponse; /** * Maximum percentage of backend endpoints in the load balancing pool for the backend service that can be ejected if the ejection conditions are met. Defaults to 50%. */ maxEjectionPercent: number; /** * The number of backend endpoints in the load balancing pool that must have enough request volume to detect success rate outliers. If the number of backend endpoints is fewer than this setting, outlier detection via success rate statistics is not performed for any backend endpoint in the load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG. */ successRateMinimumHosts: number; /** * The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this backend endpoint in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that backend endpoint. Defaults to 100. Not supported when the backend service uses Serverless NEG. */ successRateRequestVolume: number; /** * This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * successRateStdevFactor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. Not supported when the backend service uses Serverless NEG. */ successRateStdevFactor: number; } interface PacketMirroringFilterResponse { /** * IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. */ cidrRanges: string[]; /** * Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH. */ direction: string; /** * Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. */ ipProtocols: string[]; } interface PacketMirroringForwardingRuleInfoResponse { /** * Unique identifier for the forwarding rule; defined by the server. */ canonicalUrl: string; /** * Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic. */ url: string; } interface PacketMirroringMirroredResourceInfoInstanceInfoResponse { /** * Unique identifier for the instance; defined by the server. */ canonicalUrl: string; /** * Resource URL to the virtual machine instance which is being mirrored. */ url: string; } interface PacketMirroringMirroredResourceInfoResponse { /** * A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances. */ instances: outputs.compute.v1.PacketMirroringMirroredResourceInfoInstanceInfoResponse[]; /** * A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks. */ subnetworks: outputs.compute.v1.PacketMirroringMirroredResourceInfoSubnetInfoResponse[]; /** * A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored. */ tags: string[]; } interface PacketMirroringMirroredResourceInfoSubnetInfoResponse { /** * Unique identifier for the subnetwork; defined by the server. */ canonicalUrl: string; /** * Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored. */ url: string; } interface PacketMirroringNetworkInfoResponse { /** * Unique identifier for the network; defined by the server. */ canonicalUrl: string; /** * URL of the network resource. */ url: string; } /** * A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used. */ interface PathMatcherResponse { /** * defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction. */ defaultRouteAction: outputs.compute.v1.HttpRouteActionResponse; /** * The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use */ defaultService: string; /** * When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. */ defaultUrlRedirect: outputs.compute.v1.HttpRedirectActionResponse; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ headerAction: outputs.compute.v1.HttpHeaderActionResponse; /** * The name to which this PathMatcher is referred by the HostRule. */ name: string; /** * The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set. */ pathRules: outputs.compute.v1.PathRuleResponse[]; /** * The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules. */ routeRules: outputs.compute.v1.HttpRouteRuleResponse[]; } /** * A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL. */ interface PathRuleResponse { /** * The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here. */ paths: string[]; /** * In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path rule's routeAction. */ routeAction: outputs.compute.v1.HttpRouteActionResponse; /** * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. */ service: string; /** * When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. */ urlRedirect: outputs.compute.v1.HttpRedirectActionResponse; } /** * Represents a CIDR range which can be used to assign addresses. */ interface PublicAdvertisedPrefixPublicDelegatedPrefixResponse { /** * The IP address range of the public delegated prefix */ ipRange: string; /** * The name of the public delegated prefix */ name: string; /** * The project number of the public delegated prefix */ project: string; /** * The region of the public delegated prefix if it is regional. If absent, the prefix is global. */ region: string; /** * The status of the public delegated prefix. Possible values are: INITIALIZING: The public delegated prefix is being initialized and addresses cannot be created yet. ANNOUNCED: The public delegated prefix is active. */ status: string; } /** * Represents a sub PublicDelegatedPrefix. */ interface PublicDelegatedPrefixPublicDelegatedSubPrefixResponse { /** * Name of the project scoping this PublicDelegatedSubPrefix. */ delegateeProject: string; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * The IP address range, in CIDR format, represented by this sub public delegated prefix. */ ipCidrRange: string; /** * Whether the sub prefix is delegated to create Address resources in the delegatee project. */ isAddress: boolean; /** * The name of the sub public delegated prefix. */ name: string; /** * The region of the sub public delegated prefix if it is regional. If absent, the sub prefix is global. */ region: string; /** * The status of the sub public delegated prefix. */ status: string; } interface RegionSslPolicyWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface RegionSslPolicyWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.compute.v1.RegionSslPolicyWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow. */ interface RequestMirrorPolicyResponse { /** * The full or partial URL to the BackendService resource being mirrored to. The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. Serverless NEG backends are not currently supported as a mirrored backend service. */ backendService: string; } /** * Specifies the reservations that this instance can consume from. */ interface ReservationAffinityResponse { /** * Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples. */ consumeReservationType: string; /** * Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value. */ key: string; /** * Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project. */ values: string[]; } /** * Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources. */ interface ReservationResponse { /** * Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment. */ commitment: string; /** * Creation timestamp in RFC3339 text format. */ creationTimestamp: string; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * Type of the resource. Always compute#reservations for reservations. */ kind: string; /** * The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * Resource policies to be added to this reservation. The key is defined by user, and the value is resource policy url. This is to define placement policy with reservation. */ resourcePolicies: { [key: string]: string; }; /** * Status information for Reservation resource. */ resourceStatus: outputs.compute.v1.AllocationResourceStatusResponse; /** * Reserved for future use. */ satisfiesPzs: boolean; /** * Server-defined fully-qualified URL for this resource. */ selfLink: string; /** * Specify share-settings to create a shared reservation. This property is optional. For more information about the syntax and options for this field and its subfields, see the guide for creating a shared reservation. */ shareSettings: outputs.compute.v1.ShareSettingsResponse; /** * Reservation for instances with specific machine shapes. */ specificReservation: outputs.compute.v1.AllocationSpecificSKUReservationResponse; /** * Indicates whether the reservation can be consumed by VMs with affinity for "any" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation. */ specificReservationRequired: boolean; /** * The status of the reservation. */ status: string; /** * Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment. */ zone: string; } /** * Commitment for a particular resource (a Commitment is composed of one or more of these). */ interface ResourceCommitmentResponse { /** * Name of the accelerator type resource. Applicable only when the type is ACCELERATOR. */ acceleratorType: string; /** * The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU. */ amount: string; /** * Type of resource for which this commitment applies. Possible values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR. */ type: string; } /** * Time window specified for daily operations. */ interface ResourcePolicyDailyCycleResponse { /** * Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. */ daysInCycle: number; /** * [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. */ duration: string; /** * Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. */ startTime: string; } /** * Resource policy for disk consistency groups. */ interface ResourcePolicyDiskConsistencyGroupPolicyResponse { } /** * A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality */ interface ResourcePolicyGroupPlacementPolicyResponse { /** * The number of availability domains to spread instances across. If two instances are in different availability domain, they are not in the same low latency network. */ availabilityDomainCount: number; /** * Specifies network collocation */ collocation: string; /** * Number of VMs in this placement group. Google does not recommend that you use this field unless you use a compact policy and you want your policy to work only if it contains this exact number of VMs. */ vmCount: number; } /** * Time window specified for hourly operations. */ interface ResourcePolicyHourlyCycleResponse { /** * [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. */ duration: string; /** * Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle. */ hoursInCycle: number; /** * Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. */ startTime: string; } /** * An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance. */ interface ResourcePolicyInstanceSchedulePolicyResponse { /** * The expiration time of the schedule. The timestamp is an RFC3339 string. */ expirationTime: string; /** * The start time of the schedule. The timestamp is an RFC3339 string. */ startTime: string; /** * Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: https://wikipedia.org/wiki/Tz_database. */ timeZone: string; /** * Specifies the schedule for starting instances. */ vmStartSchedule: outputs.compute.v1.ResourcePolicyInstanceSchedulePolicyScheduleResponse; /** * Specifies the schedule for stopping instances. */ vmStopSchedule: outputs.compute.v1.ResourcePolicyInstanceSchedulePolicyScheduleResponse; } /** * Schedule for an instance operation. */ interface ResourcePolicyInstanceSchedulePolicyScheduleResponse { /** * Specifies the frequency for the operation, using the unix-cron format. */ schedule: string; } interface ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse { /** * The last time the schedule successfully ran. The timestamp is an RFC3339 string. */ lastRunStartTime: string; /** * The next time the schedule is planned to run. The actual time might be slightly different. The timestamp is an RFC3339 string. */ nextRunStartTime: string; } /** * Contains output only fields. Use this sub-message for all output fields set on ResourcePolicy. The internal structure of this "status" field should mimic the structure of ResourcePolicy proto specification. */ interface ResourcePolicyResourceStatusResponse { /** * Specifies a set of output values reffering to the instance_schedule_policy system status. This field should have the same name as corresponding policy field. */ instanceSchedulePolicy: outputs.compute.v1.ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse; } /** * A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained. */ interface ResourcePolicySnapshotSchedulePolicyResponse { /** * Retention policy applied to snapshots created by this resource policy. */ retentionPolicy: outputs.compute.v1.ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse; /** * A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy. */ schedule: outputs.compute.v1.ResourcePolicySnapshotSchedulePolicyScheduleResponse; /** * Properties with which snapshots are created such as labels, encryption keys. */ snapshotProperties: outputs.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse; } /** * Policy for retention of scheduled snapshots. */ interface ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse { /** * Maximum age of the snapshot that is allowed to be kept. */ maxRetentionDays: number; /** * Specifies the behavior to apply to scheduled snapshots when the source disk is deleted. */ onSourceDiskDelete: string; } /** * A schedule for disks where the schedueled operations are performed. */ interface ResourcePolicySnapshotSchedulePolicyScheduleResponse { dailySchedule: outputs.compute.v1.ResourcePolicyDailyCycleResponse; hourlySchedule: outputs.compute.v1.ResourcePolicyHourlyCycleResponse; weeklySchedule: outputs.compute.v1.ResourcePolicyWeeklyCycleResponse; } /** * Specified snapshot properties for scheduled snapshots created by this policy. */ interface ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse { /** * Chain name that the snapshot is created in. */ chainName: string; /** * Indication to perform a 'guest aware' snapshot. */ guestFlush: boolean; /** * Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty. */ labels: { [key: string]: string; }; /** * Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional). */ storageLocations: string[]; } interface ResourcePolicyWeeklyCycleDayOfWeekResponse { /** * Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. */ day: string; /** * [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. */ duration: string; /** * Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. */ startTime: string; } /** * Time window specified for weekly operations. */ interface ResourcePolicyWeeklyCycleResponse { /** * Up to 7 intervals/windows, one for each day of the week. */ dayOfWeeks: outputs.compute.v1.ResourcePolicyWeeklyCycleDayOfWeekResponse[]; } /** * Contains output only fields. Use this sub-message for actual values set on Instance attributes as compared to the value requested by the user (intent) in their instance CRUD calls. */ interface ResourceStatusResponse { /** * An opaque ID of the host on which the VM is running. */ physicalHost: string; upcomingMaintenance: outputs.compute.v1.UpcomingMaintenanceResponse; } interface RouteAsPathResponse { /** * The AS numbers of the AS Path. */ asLists: number[]; /** * The type of the AS Path, which can be one of the following values: - 'AS_SET': unordered set of autonomous systems that the route in has traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed */ pathSegmentType: string; } interface RouteWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface RouteWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.compute.v1.RouteWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * Description-tagged IP ranges for the router to advertise. */ interface RouterAdvertisedIpRangeResponse { /** * User-specified description for the IP range. */ description: string; /** * The IP range to advertise. The value must be a CIDR-formatted string. */ range: string; } interface RouterBgpPeerBfdResponse { /** * The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. */ minReceiveInterval: number; /** * The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. */ minTransmitInterval: number; /** * The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5. */ multiplier: number; /** * The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is DISABLED. */ sessionInitializationMode: string; } interface RouterBgpPeerCustomLearnedIpRangeResponse { /** * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`. */ range: string; } interface RouterBgpPeerResponse { /** * User-specified flag to indicate which mode to use for advertisement. */ advertiseMode: string; /** * User-specified list of prefix groups to advertise in custom mode, which currently supports the following option: - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This excludes any routes learned for subnets that use VPC Network Peering. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. */ advertisedGroups: string[]; /** * User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. */ advertisedIpRanges: outputs.compute.v1.RouterAdvertisedIpRangeResponse[]; /** * The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win. */ advertisedRoutePriority: number; /** * BFD configuration for the BGP peering. */ bfd: outputs.compute.v1.RouterBgpPeerBfdResponse; /** * A list of user-defined custom learned route IP address ranges for a BGP session. */ customLearnedIpRanges: outputs.compute.v1.RouterBgpPeerCustomLearnedIpRangeResponse[]; /** * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route ranges for the session. You can choose a value from `0` to `65335`. If you don't provide a value, Google Cloud assigns a priority of `100` to the ranges. */ customLearnedRoutePriority: number; /** * The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE. */ enable: string; /** * Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. */ enableIpv6: boolean; /** * Name of the interface the BGP peer is associated with. */ interfaceName: string; /** * IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. */ ipAddress: string; /** * IPv6 address of the interface inside Google Cloud Platform. */ ipv6NexthopAddress: string; /** * The resource that configures and manages this BGP peer. - MANAGED_BY_USER is the default value and can be managed by you or other users - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud Interconnect, specifically by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of BGP peer when the PARTNER InterconnectAttachment is created, updated, or deleted. */ managementType: string; /** * Present if MD5 authentication is enabled for the peering. Must be the name of one of the entries in the Router.md5_authentication_keys. The field must comply with RFC1035. */ md5AuthenticationKeyName: string; /** * Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. */ peerAsn: number; /** * IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. */ peerIpAddress: string; /** * IPv6 address of the BGP interface outside Google Cloud Platform. */ peerIpv6NexthopAddress: string; /** * URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session. */ routerApplianceInstance: string; } interface RouterBgpResponse { /** * User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM. */ advertiseMode: string; /** * User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. */ advertisedGroups: string[]; /** * User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. */ advertisedIpRanges: outputs.compute.v1.RouterAdvertisedIpRangeResponse[]; /** * Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. */ asn: number; /** * The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. */ keepaliveInterval: number; } interface RouterInterfaceResponse { /** * IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface. */ ipRange: string; /** * URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork. */ linkedInterconnectAttachment: string; /** * URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork. */ linkedVpnTunnel: string; /** * The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by users. - MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud Interconnect, specifically, by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of interface when the PARTNER InterconnectAttachment is created, updated, or deleted. */ managementType: string; /** * Name of this interface entry. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ name: string; /** * The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM. */ privateIpAddress: string; /** * Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. */ redundantInterface: string; /** * The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. */ subnetwork: string; } interface RouterMd5AuthenticationKeyResponse { /** * [Input only] Value of the key. For patch and update calls, it can be skipped to copy the value from the previous configuration. This is allowed if the key with the same name existed before the operation. Maximum length is 80 characters. Can only contain printable ASCII characters. */ key: string; /** * Name used to identify the key. Must be unique within a router. Must be referenced by exactly one bgpPeer. Must comply with RFC1035. */ name: string; } /** * Configuration of logging on a NAT. */ interface RouterNatLogConfigResponse { /** * Indicates whether or not to export logs. This is false by default. */ enable: boolean; /** * Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. */ filter: string; } /** * Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided. */ interface RouterNatResponse { /** * The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used. */ autoNetworkTier: string; /** * A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only. */ drainNatIps: string[]; /** * Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. */ enableDynamicPortAllocation: boolean; enableEndpointIndependentMapping: boolean; /** * List of NAT-ted endpoint types supported by the Nat Gateway. If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM */ endpointTypes: string[]; /** * Timeout (in seconds) for ICMP connections. Defaults to 30s if not set. */ icmpIdleTimeoutSec: number; /** * Configure logging on this NAT. */ logConfig: outputs.compute.v1.RouterNatLogConfigResponse; /** * Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config. */ maxPortsPerVm: number; /** * Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM. */ minPortsPerVm: number; /** * Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035. */ name: string; /** * Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. */ natIpAllocateOption: string; /** * A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project. */ natIps: string[]; /** * A list of rules associated with this NAT. */ rules: outputs.compute.v1.RouterNatRuleResponse[]; /** * Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other Router.Nat section in any Router for this network in this region. */ sourceSubnetworkIpRangesToNat: string; /** * A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above. */ subnetworks: outputs.compute.v1.RouterNatSubnetworkToNatResponse[]; /** * Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set. */ tcpEstablishedIdleTimeoutSec: number; /** * Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set. */ tcpTimeWaitTimeoutSec: number; /** * Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set. */ tcpTransitoryIdleTimeoutSec: number; /** * Indicates whether this NAT is used for public or private IP translation. If unspecified, it defaults to PUBLIC. */ type: string; /** * Timeout (in seconds) for UDP connections. Defaults to 30s if not set. */ udpIdleTimeoutSec: number; } interface RouterNatRuleActionResponse { /** * A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT. */ sourceNatActiveIps: string[]; /** * A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT. */ sourceNatActiveRanges: string[]; /** * A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT. */ sourceNatDrainIps: string[]; /** * A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT. */ sourceNatDrainRanges: string[]; } interface RouterNatRuleResponse { /** * The action to be enforced for traffic that matches this rule. */ action: outputs.compute.v1.RouterNatRuleActionResponse; /** * An optional description of this rule. */ description: string; /** * CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The following example is a valid match expression for private NAT: "nexthop.hub == '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'" */ match: string; /** * An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. */ ruleNumber: number; } /** * Defines the IP ranges that want to use NAT for a subnetwork. */ interface RouterNatSubnetworkToNatResponse { /** * URL for the subnetwork resource that will use NAT. */ name: string; /** * A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" is one of the values in source_ip_ranges_to_nat. */ secondaryIpRangeNames: string[]; /** * Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] Default: [ALL_IP_RANGES] */ sourceIpRangesToNat: string[]; } /** * This is deprecated and has no effect. Do not use. */ interface RuleResponse { /** * This is deprecated and has no effect. Do not use. */ action: string; /** * This is deprecated and has no effect. Do not use. */ conditions: outputs.compute.v1.ConditionResponse[]; /** * This is deprecated and has no effect. Do not use. */ description: string; /** * This is deprecated and has no effect. Do not use. */ ins: string[]; /** * This is deprecated and has no effect. Do not use. */ logConfigs: outputs.compute.v1.LogConfigResponse[]; /** * This is deprecated and has no effect. Do not use. */ notIns: string[]; /** * This is deprecated and has no effect. Do not use. */ permissions: string[]; } interface SSLHealthCheckResponse { /** * The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection and SSL handshake. */ request: string; /** * Creates a content-based SSL health check. In addition to establishing a TCP connection and the TLS handshake, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp */ response: string; } /** * DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk resource. */ interface SavedAttachedDiskResponse { /** * Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. */ boot: boolean; /** * Specifies the name of the disk attached to the source instance. */ deviceName: string; /** * The encryption key for the disk. */ diskEncryptionKey: outputs.compute.v1.CustomerEncryptionKeyResponse; /** * The size of the disk in base-2 GB. */ diskSizeGb: string; /** * URL of the disk type resource. For example: projects/project /zones/zone/diskTypes/pd-standard or pd-ssd */ diskType: string; /** * A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. */ guestOsFeatures: outputs.compute.v1.GuestOsFeatureResponse[]; /** * Specifies zero-based index of the disk that is attached to the source instance. */ index: number; /** * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. */ interface: string; /** * Type of the resource. Always compute#attachedDisk for attached disks. */ kind: string; /** * Any valid publicly visible licenses. */ licenses: string[]; /** * The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY. */ mode: string; /** * Specifies a URL of the disk attached to the source instance. */ source: string; /** * A size of the storage used by the disk's snapshot by this machine image. */ storageBytes: string; /** * An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date. */ storageBytesStatus: string; /** * Specifies the type of the attached disk, either SCRATCH or PERSISTENT. */ type: string; } /** * An instance-attached disk resource. */ interface SavedDiskResponse { /** * The architecture of the attached disk. */ architecture: string; /** * Type of the resource. Always compute#savedDisk for attached disks. */ kind: string; /** * Specifies a URL of the disk attached to the source instance. */ sourceDisk: string; /** * Size of the individual disk snapshot used by this machine image. */ storageBytes: string; /** * An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date. */ storageBytesStatus: string; } /** * Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. */ interface SchedulingNodeAffinityResponse { /** * Corresponds to the label key of Node resource. */ key: string; /** * Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity. */ operator: string; /** * Corresponds to the label values of Node resource. */ values: string[]; } /** * Sets the scheduling options for an Instance. */ interface SchedulingResponse { /** * Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine. */ automaticRestart: boolean; /** * Specifies the termination action for the instance. */ instanceTerminationAction: string; /** * Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour. */ localSsdRecoveryTimeout: outputs.compute.v1.DurationResponse; /** * An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API. */ locationHint: string; /** * The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. */ minNodeCpus: number; /** * A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity. */ nodeAffinities: outputs.compute.v1.SchedulingNodeAffinityResponse[]; /** * Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM host maintenance policy. */ onHostMaintenance: string; /** * Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. */ preemptible: boolean; /** * Specifies the provisioning model of the instance. */ provisioningModel: string; } /** * Configuration options for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ interface SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse { /** * If set to true, enables CAAP for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ enable: boolean; /** * Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ ruleVisibility: string; /** * Configuration options for layer7 adaptive protection for various customizable thresholds. */ thresholdConfigs: outputs.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigResponse[]; } interface SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigResponse { autoDeployConfidenceThreshold: number; autoDeployExpirationSec: number; autoDeployImpactedBaselineThreshold: number; autoDeployLoadThreshold: number; /** * The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy. */ name: string; } /** * Configuration options for Cloud Armor Adaptive Protection (CAAP). */ interface SecurityPolicyAdaptiveProtectionConfigResponse { /** * If set to true, enables Cloud Armor Machine Learning. */ layer7DdosDefenseConfig: outputs.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse; } interface SecurityPolicyAdvancedOptionsConfigJsonCustomConfigResponse { /** * A list of custom Content-Type header values to apply the JSON parsing. As per RFC 1341, a Content-Type header value has the following format: Content-Type := type "/" subtype *[";" parameter] When configuring a custom Content-Type header value, only the type/subtype needs to be specified, and the parameters should be excluded. */ contentTypes: string[]; } interface SecurityPolicyAdvancedOptionsConfigResponse { /** * Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD. */ jsonCustomConfig: outputs.compute.v1.SecurityPolicyAdvancedOptionsConfigJsonCustomConfigResponse; jsonParsing: string; logLevel: string; /** * An optional list of case-insensitive request header names to use for resolving the callers client IP address. */ userIpRequestHeaders: string[]; } interface SecurityPolicyDdosProtectionConfigResponse { ddosProtection: string; } interface SecurityPolicyRecaptchaOptionsConfigResponse { /** * An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ redirectSiteKey: string; } interface SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse { /** * The name of the header to set. */ headerName: string; /** * The value to set the named header to. */ headerValue: string; } interface SecurityPolicyRuleHttpHeaderActionResponse { /** * The list of request headers to add or overwrite if they're already present. */ requestHeadersToAdds: outputs.compute.v1.SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse[]; } interface SecurityPolicyRuleMatcherConfigResponse { /** * CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. */ srcIpRanges: string[]; } /** * Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. */ interface SecurityPolicyRuleMatcherResponse { /** * The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified. */ config: outputs.compute.v1.SecurityPolicyRuleMatcherConfigResponse; /** * User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. Expressions containing `evaluateThreatIntelligence` require Cloud Armor Managed Protection Plus tier and are not supported in Edge Policies nor in Regional Policies. Expressions containing `evaluatePreconfiguredExpr('sourceiplist-*')` require Cloud Armor Managed Protection Plus tier and are only supported in Global Security Policies. */ expr: outputs.compute.v1.ExprResponse; /** * Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config. */ versionedExpr: string; } /** * Represents a match condition that incoming network traffic is evaluated against. */ interface SecurityPolicyRuleNetworkMatcherResponse { /** * Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. */ destIpRanges: string[]; /** * Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). */ destPorts: string[]; /** * IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". */ ipProtocols: string[]; /** * BGP Autonomous System Number associated with the source IP address. */ srcAsns: number[]; /** * Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. */ srcIpRanges: string[]; /** * Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). */ srcPorts: string[]; /** * Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. */ srcRegionCodes: string[]; /** * User-defined fields. Each element names a defined field and lists the matching values for that field. */ userDefinedFields: outputs.compute.v1.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatchResponse[]; } interface SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatchResponse { /** * Name of the user-defined field, as given in the definition. */ name: string; /** * Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-0x7ff"). */ values: string[]; } interface SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse { /** * The match operator for the field. */ op: string; /** * The value of the field. */ val: string; } interface SecurityPolicyRulePreconfiguredWafConfigExclusionResponse { /** * A list of request cookie names whose value will be excluded from inspection during preconfigured WAF evaluation. */ requestCookiesToExclude: outputs.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of request header names whose value will be excluded from inspection during preconfigured WAF evaluation. */ requestHeadersToExclude: outputs.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of request query parameter names whose value will be excluded from inspection during preconfigured WAF evaluation. Note that the parameter can be in the query string or in the POST body. */ requestQueryParamsToExclude: outputs.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of request URIs from the request line to be excluded from inspection during preconfigured WAF evaluation. When specifying this field, the query or fragment part should be excluded. */ requestUrisToExclude: outputs.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParamsResponse[]; /** * A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. If omitted, it refers to all the rule IDs under the WAF rule set. */ targetRuleIds: string[]; /** * Target WAF rule set to apply the preconfigured WAF exclusion. */ targetRuleSet: string; } interface SecurityPolicyRulePreconfiguredWafConfigResponse { /** * A list of exclusions to apply during preconfigured WAF evaluation. */ exclusions: outputs.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionResponse[]; } interface SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigResponse { /** * Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. */ enforceOnKeyName: string; /** * Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. */ enforceOnKeyType: string; } interface SecurityPolicyRuleRateLimitOptionsResponse { /** * Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. */ banDurationSec: number; /** * Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'. */ banThreshold: outputs.compute.v1.SecurityPolicyRuleRateLimitOptionsThresholdResponse; /** * Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. */ conformAction: string; /** * Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. */ enforceOnKey: string; /** * If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which ratelimit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If enforce_on_key_configs is specified, enforce_on_key must not be specified. */ enforceOnKeyConfigs: outputs.compute.v1.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigResponse[]; /** * Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. */ enforceOnKeyName: string; /** * Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are `deny(STATUS)`, where valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the redirect parameters come from `exceedRedirectOptions` below. The `redirect` action is only supported in Global Security Policies of type CLOUD_ARMOR. */ exceedAction: string; /** * Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ exceedRedirectOptions: outputs.compute.v1.SecurityPolicyRuleRedirectOptionsResponse; /** * Threshold at which to begin ratelimiting. */ rateLimitThreshold: outputs.compute.v1.SecurityPolicyRuleRateLimitOptionsThresholdResponse; } interface SecurityPolicyRuleRateLimitOptionsThresholdResponse { /** * Number of HTTP(S) requests for calculating the threshold. */ count: number; /** * Interval over which the threshold is computed. */ intervalSec: number; } interface SecurityPolicyRuleRedirectOptionsResponse { /** * Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. */ target: string; /** * Type of the redirect action. */ type: string; } /** * Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). */ interface SecurityPolicyRuleResponse { /** * The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. */ action: string; /** * An optional description of this resource. Provide this property when you create the resource. */ description: string; /** * Optional, additional actions that are performed on headers. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ headerAction: outputs.compute.v1.SecurityPolicyRuleHttpHeaderActionResponse; /** * [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules */ kind: string; /** * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. */ match: outputs.compute.v1.SecurityPolicyRuleMatcherResponse; /** * A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. Example: networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive. */ networkMatch: outputs.compute.v1.SecurityPolicyRuleNetworkMatcherResponse; /** * Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. */ preconfiguredWafConfig: outputs.compute.v1.SecurityPolicyRulePreconfiguredWafConfigResponse; /** * If set to true, the specified action is not enforced. */ preview: boolean; /** * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. */ priority: number; /** * Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. */ rateLimitOptions: outputs.compute.v1.SecurityPolicyRuleRateLimitOptionsResponse; /** * Parameters defining the redirect action. Cannot be specified for any other actions. This field is only supported in Global Security Policies of type CLOUD_ARMOR. */ redirectOptions: outputs.compute.v1.SecurityPolicyRuleRedirectOptionsResponse; } interface SecurityPolicyUserDefinedFieldResponse { /** * The base relative to which 'offset' is measured. Possible values are: - IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. required */ base: string; /** * If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. Encoded as a hexadecimal number (starting with "0x"). The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. */ mask: string; /** * The name of this field. Must be unique within the policy. */ name: string; /** * Offset of the first byte of the field (in network byte order) relative to 'base'. */ offset: number; /** * Size of the field in bytes. Valid values: 1-4. */ size: number; } /** * The authentication and authorization settings for a BackendService. */ interface SecuritySettingsResponse { /** * The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. */ awsV4Authentication: outputs.compute.v1.AWSV4SignatureResponse; /** * Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. */ clientTlsPolicy: string; /** * Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). */ subjectAltNames: string[]; } interface ServerBindingResponse { type: string; } /** * A service account. */ interface ServiceAccountResponse { /** * Email address of the service account. */ email: string; /** * The list of scopes to be made available for this service account. */ scopes: string[]; } /** * [Output Only] A connection connected to this service attachment. */ interface ServiceAttachmentConnectedEndpointResponse { /** * The url of the consumer network. */ consumerNetwork: string; /** * The url of a connected endpoint. */ endpoint: string; /** * The PSC connection id of the connected endpoint. */ pscConnectionId: string; /** * The status of a connected endpoint to this service attachment. */ status: string; } interface ServiceAttachmentConsumerProjectLimitResponse { /** * The value of the limit to set. */ connectionLimit: number; /** * The network URL for the network to set the limit for. */ networkUrl: string; /** * The project id or number for the project to set the limit for. */ projectIdOrNum: string; } /** * The share setting for reservations and sole tenancy node groups. */ interface ShareSettingsResponse { /** * A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS. */ projectMap: { [key: string]: string; }; /** * Type of sharing for this shared-reservation */ shareType: string; } /** * A set of Shielded Instance options. */ interface ShieldedInstanceConfigResponse { /** * Defines whether the instance has integrity monitoring enabled. Enabled by default. */ enableIntegrityMonitoring: boolean; /** * Defines whether the instance has Secure Boot enabled. Disabled by default. */ enableSecureBoot: boolean; /** * Defines whether the instance has the vTPM enabled. Enabled by default. */ enableVtpm: boolean; } /** * The policy describes the baseline against which Instance boot integrity is measured. */ interface ShieldedInstanceIntegrityPolicyResponse { /** * Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. */ updateAutoLearnPolicy: boolean; } interface SourceDiskEncryptionKeyResponse { /** * The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key. */ diskEncryptionKey: outputs.compute.v1.CustomerEncryptionKeyResponse; /** * URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk */ sourceDisk: string; } /** * A specification of the parameters to use when creating the instance template from a source instance. */ interface SourceInstanceParamsResponse { /** * Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, the source images for each disk will be used. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes. */ diskConfigs: outputs.compute.v1.DiskInstantiationConfigResponse[]; } /** * DEPRECATED: Please use compute#instanceProperties instead. New properties will not be added to this field. */ interface SourceInstancePropertiesResponse { /** * Enables instances created based on this machine image to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. */ canIpForward: boolean; /** * Whether the instance created from this machine image should be protected against deletion. */ deletionProtection: boolean; /** * An optional text description for the instances that are created from this machine image. */ description: string; /** * An array of disks that are associated with the instances that are created from this machine image. */ disks: outputs.compute.v1.SavedAttachedDiskResponse[]; /** * A list of guest accelerator cards' type and count to use for instances created from this machine image. */ guestAccelerators: outputs.compute.v1.AcceleratorConfigResponse[]; /** * KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified. */ keyRevocationActionType: string; /** * Labels to apply to instances that are created from this machine image. */ labels: { [key: string]: string; }; /** * The machine type to use for instances that are created from this machine image. */ machineType: string; /** * The metadata key/value pairs to assign to instances that are created from this machine image. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. */ metadata: outputs.compute.v1.MetadataResponse; /** * Minimum cpu/platform to be used by instances created from this machine image. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. */ minCpuPlatform: string; /** * An array of network access configurations for this interface. */ networkInterfaces: outputs.compute.v1.NetworkInterfaceResponse[]; /** * Specifies the scheduling options for the instances that are created from this machine image. */ scheduling: outputs.compute.v1.SchedulingResponse; /** * A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this machine image. Use metadata queries to obtain the access tokens for these instances. */ serviceAccounts: outputs.compute.v1.ServiceAccountResponse[]; /** * A list of tags to apply to the instances that are created from this machine image. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. */ tags: outputs.compute.v1.TagsResponse; } /** * Configuration and status of a managed SSL certificate. */ interface SslCertificateManagedSslCertificateResponse { /** * [Output only] Detailed statuses of the domains specified for managed certificate resource. */ domainStatus: { [key: string]: string; }; /** * The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates). */ domains: string[]; /** * [Output only] Status of the managed certificate resource. */ status: string; } /** * Configuration and status of a self-managed SSL certificate. */ interface SslCertificateSelfManagedSslCertificateResponse { /** * A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert. */ certificate: string; /** * A write-only private key in PEM format. Only insert requests will include this field. */ privateKey: string; } interface SslPolicyWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface SslPolicyWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.compute.v1.SslPolicyWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * Configuration of preserved resources. */ interface StatefulPolicyPreservedStateResponse { /** * Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks. */ disks: { [key: string]: string; }; /** * External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. */ externalIPs: { [key: string]: string; }; /** * Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. */ internalIPs: { [key: string]: string; }; } interface StatefulPolicyResponse { preservedState: outputs.compute.v1.StatefulPolicyPreservedStateResponse; } /** * The available logging options for this subnetwork. */ interface SubnetworkLogConfigResponse { /** * Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection. */ aggregationInterval: string; /** * Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Flow logging isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY. */ enable: boolean; /** * Can only be specified if VPC flow logs for this subnetwork is enabled. The filter expression is used to define which VPC flow logs should be exported to Cloud Logging. */ filterExpr: string; /** * Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the 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. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported. */ flowSampling: number; /** * Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. */ metadata: string; /** * Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" was set to CUSTOM_METADATA. */ metadataFields: string[]; } /** * Represents a secondary IP range of a subnetwork. */ interface SubnetworkSecondaryRangeResponse { /** * The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list. */ ipCidrRange: string; /** * The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork. */ rangeName: string; } /** * Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director. */ interface SubsettingResponse { policy: string; } interface TCPHealthCheckResponse { /** * The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535. */ port: number; /** * Not supported. */ portName: string; /** * Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports. */ portSpecification: string; /** * Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. */ proxyHeader: string; /** * Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection. */ request: string; /** * Creates a content-based TCP health check. In addition to establishing a TCP connection, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp */ response: string; } /** * A set of instance tags. */ interface TagsResponse { /** * Specifies a fingerprint for this request, which is essentially a hash of the tags' contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update tags. You must always provide an up-to-date fingerprint hash in order to update or change tags. To see the latest fingerprint, make get() request to the instance. */ fingerprint: string; /** * An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035. */ items: string[]; } interface Uint128Response { high: string; low: string; } /** * Upcoming Maintenance notification information. */ interface UpcomingMaintenanceResponse { /** * Indicates if the maintenance can be customer triggered. */ canReschedule: boolean; /** * The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format. */ latestWindowStartTime: string; maintenanceStatus: string; /** * Defines the type of maintenance. */ type: string; /** * The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format. */ windowEndTime: string; /** * The current start time of the maintenance window. This timestamp value is in RFC3339 text format. */ windowStartTime: string; } /** * HTTP headers used in UrlMapTests. */ interface UrlMapTestHeaderResponse { /** * Header name. */ name: string; /** * Header value. */ value: string; } /** * Message for the expected URL mappings. */ interface UrlMapTestResponse { /** * Description of this test case. */ description: string; /** * The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified. */ expectedOutputUrl: string; /** * For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set. */ expectedRedirectResponseCode: number; /** * HTTP headers for this request. If headers contains a host header, then host must also match the header value. */ headers: outputs.compute.v1.UrlMapTestHeaderResponse[]; /** * Host portion of the URL. If headers contains a host header, then host must also match the header value. */ host: string; /** * Path portion of the URL. */ path: string; /** * Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set. */ service: string; } /** * The spec for modifying the path before sending the request to the matched backend service. */ interface UrlRewriteResponse { /** * Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters. */ hostRewrite: string; /** * Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters. */ pathPrefixRewrite: string; /** * If specified, the pattern rewrites the URL path (based on the :path header) using the HTTP template syntax. A corresponding path_template_match must be specified. Any template variables must exist in the path_template_match field. - -At least one variable must be specified in the path_template_match field - You can omit variables from the rewritten URL - The * and ** operators cannot be matched unless they have a corresponding variable name - e.g. {format=*} or {var=**}. For example, a path_template_match of /static/{format=**} could be rewritten as /static/content/{format} to prefix /content to the URL. Variables can also be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be rewritten as /content/{format}/{country}/{suffix}. At least one non-empty routeRules[].matchRules[].path_template_match is required. Only one of path_prefix_rewrite or path_template_rewrite may be specified. */ pathTemplateRewrite: string; } /** * A VPN gateway interface. */ interface VpnGatewayVpnGatewayInterfaceResponse { /** * URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for HA VPN over Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. */ interconnectAttachment: string; /** * IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address. */ ipAddress: string; } /** * In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService */ interface WeightedBackendServiceResponse { /** * The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. */ backendService: string; /** * Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. */ headerAction: outputs.compute.v1.HttpHeaderActionResponse; /** * Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000. */ weight: number; } } } export declare namespace connectors { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.connectors.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * AuthConfig defines details of a authentication type. */ interface AuthConfigResponse { /** * List containing additional auth configs. */ additionalVariables: outputs.connectors.v1.ConfigVariableResponse[]; /** * Identifier key for auth config */ authKey: string; /** * The type of authentication configured. */ authType: string; /** * Oauth2AuthCodeFlow. */ oauth2AuthCodeFlow: outputs.connectors.v1.Oauth2AuthCodeFlowResponse; /** * Oauth2ClientCredentials. */ oauth2ClientCredentials: outputs.connectors.v1.Oauth2ClientCredentialsResponse; /** * Oauth2JwtBearer. */ oauth2JwtBearer: outputs.connectors.v1.Oauth2JwtBearerResponse; /** * SSH Public Key. */ sshPublicKey: outputs.connectors.v1.SshPublicKeyResponse; /** * UserPassword. */ userPassword: outputs.connectors.v1.UserPasswordResponse; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.connectors.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * ConfigVariable represents a configuration variable present in a Connection. or AuthConfig. */ interface ConfigVariableResponse { /** * Value is a bool. */ boolValue: boolean; /** * Value is a Encryption Key. */ encryptionKeyValue: outputs.connectors.v1.EncryptionKeyResponse; /** * Value is an integer */ intValue: string; /** * Key of the config variable. */ key: string; /** * Value is a secret. */ secretValue: outputs.connectors.v1.SecretResponse; /** * Value is a string. */ stringValue: string; } /** * ConnectionStatus indicates the state of the connection. */ interface ConnectionStatusResponse { /** * Description. */ description: string; /** * State. */ state: string; /** * Status provides detailed information for the state. */ status: string; } /** * This cofiguration provides infra configs like rate limit threshold which need to be configurable for every connector version */ interface ConnectorVersionInfraConfigResponse { /** * The window used for ratelimiting runtime requests to connections. */ connectionRatelimitWindowSeconds: string; /** * HPA autoscaling config. */ hpaConfig: outputs.connectors.v1.HPAConfigResponse; /** * Max QPS supported for internal requests originating from Connd. */ internalclientRatelimitThreshold: string; /** * Max QPS supported by the connector version before throttling of requests. */ ratelimitThreshold: string; /** * System resource limits. */ resourceLimits: outputs.connectors.v1.ResourceLimitsResponse; /** * System resource requests. */ resourceRequests: outputs.connectors.v1.ResourceRequestsResponse; /** * The name of shared connector deployment. */ sharedDeployment: string; } /** * Log configuration for the connection. */ interface ConnectorsLogConfigResponse { /** * Enabled represents whether logging is enabled or not for a connection. */ enabled: boolean; } /** * Define the Connectors target endpoint. */ interface DestinationConfigResponse { /** * The destinations for the key. */ destinations: outputs.connectors.v1.DestinationResponse[]; /** * The key is the destination identifier that is supported by the Connector. */ key: string; } interface DestinationResponse { /** * For publicly routable host. */ host: string; /** * The port is the target port number that is accepted by the destination. */ port: number; /** * PSC service attachments. Format: projects/*/regions/*/serviceAttachments/* */ serviceAttachment: string; } /** * Encryption Key value. */ interface EncryptionKeyResponse { /** * The [KMS key name] with which the content of the Operation is encrypted. The expected format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`. Will be empty string if google managed. */ kmsKeyName: string; /** * Type. */ type: string; } /** * Endpoint message includes details of the Destination endpoint. */ interface EndPointResponse { /** * The URI of the Endpoint. */ endpointUri: string; /** * List of Header to be added to the Endpoint. */ headers: outputs.connectors.v1.HeaderResponse[]; } /** * Message for EventSubscription Destination to act on receiving an event */ interface EventSubscriptionDestinationResponse { /** * OPTION 1: Hit an endpoint when we receive an event. */ endpoint: outputs.connectors.v1.EndPointResponse; /** * Service account needed for runtime plane to trigger IP workflow. */ serviceAccount: string; /** * type of the destination */ type: string; } /** * EventSubscription Status denotes the status of the EventSubscription resource. */ interface EventSubscriptionStatusResponse { /** * Description of the state. */ description: string; /** * State of Event Subscription resource. */ state: string; } /** * Eventing Configuration of a connection */ interface EventingConfigResponse { /** * Additional eventing related field values */ additionalVariables: outputs.connectors.v1.ConfigVariableResponse[]; /** * Auth details for the webhook adapter. */ authConfig: outputs.connectors.v1.AuthConfigResponse; /** * Encryption key (can be either Google managed or CMEK). */ encryptionKey: outputs.connectors.v1.ConfigVariableResponse; /** * Enrichment Enabled. */ enrichmentEnabled: boolean; /** * Optional. Ingress endpoint of the event listener. This is used only when private connectivity is enabled. */ eventsListenerIngressEndpoint: string; /** * Optional. Private Connectivity Enabled. */ privateConnectivityEnabled: boolean; /** * Registration endpoint for auto registration. */ registrationDestinationConfig: outputs.connectors.v1.DestinationConfigResponse; } /** * Eventing runtime data has the details related to eventing managed by the system. */ interface EventingRuntimeDataResponse { /** * Events listener endpoint. The value will populated after provisioning the events listener. */ eventsListenerEndpoint: string; /** * Events listener PSC Service attachment. The value will be populated after provisioning the events listener with private connectivity enabled. */ eventsListenerPscSa: string; /** * Current status of eventing. */ status: outputs.connectors.v1.EventingStatusResponse; } /** * EventingStatus indicates the state of eventing. */ interface EventingStatusResponse { /** * Description of error if State is set to "ERROR". */ description: string; /** * State. */ state: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Autoscaling config for connector deployment system metrics. */ interface HPAConfigResponse { /** * Percent CPU utilization where HPA triggers autoscaling. */ cpuUtilizationThreshold: string; /** * Percent Memory utilization where HPA triggers autoscaling. */ memoryUtilizationThreshold: string; } /** * Header details for a given header to be added to Endpoint. */ interface HeaderResponse { /** * Key of Header. */ key: string; /** * Value of Header. */ value: string; } /** * JMS message denotes the source of the event */ interface JMSResponse { /** * Optional. Name of the JMS source. i.e. queueName or topicName */ name: string; /** * Optional. Type of the JMS Source. i.e. Queue or Topic */ type: string; } /** * JWT claims used for the jwt-bearer authorization grant. */ interface JwtClaimsResponse { /** * Value for the "aud" claim. */ audience: string; /** * Value for the "iss" claim. */ issuer: string; /** * Value for the "sub" claim. */ subject: string; } /** * Determines whether or no a connection is locked. If locked, a reason must be specified. */ interface LockConfigResponse { /** * Indicates whether or not the connection is locked. */ locked: boolean; /** * Describes why a connection is locked. */ reason: string; } /** * Node configuration for the connection. */ interface NodeConfigResponse { /** * Maximum number of nodes in the runtime nodes. */ maxNodeCount: number; /** * Minimum number of nodes in the runtime nodes. */ minNodeCount: number; } /** * Parameters to support Oauth 2.0 Auth Code Grant Authentication. See https://www.rfc-editor.org/rfc/rfc6749#section-1.3.1 for more details. */ interface Oauth2AuthCodeFlowResponse { /** * Authorization code to be exchanged for access and refresh tokens. */ authCode: string; /** * Auth URL for Authorization Code Flow */ authUri: string; /** * Client ID for user-provided OAuth app. */ clientId: string; /** * Client secret for user-provided OAuth app. */ clientSecret: outputs.connectors.v1.SecretResponse; /** * Whether to enable PKCE when the user performs the auth code flow. */ enablePkce: boolean; /** * PKCE verifier to be used during the auth code exchange. */ pkceVerifier: string; /** * Redirect URI to be provided during the auth code exchange. */ redirectUri: string; /** * Scopes the connection will request when the user performs the auth code flow. */ scopes: string[]; } /** * Parameters to support Oauth 2.0 Client Credentials Grant Authentication. See https://tools.ietf.org/html/rfc6749#section-1.3.4 for more details. */ interface Oauth2ClientCredentialsResponse { /** * The client identifier. */ clientId: string; /** * Secret version reference containing the client secret. */ clientSecret: outputs.connectors.v1.SecretResponse; } /** * Parameters to support JSON Web Token (JWT) Profile for Oauth 2.0 Authorization Grant based authentication. See https://tools.ietf.org/html/rfc7523 for more details. */ interface Oauth2JwtBearerResponse { /** * Secret version reference containing a PKCS#8 PEM-encoded private key associated with the Client Certificate. This private key will be used to sign JWTs used for the jwt-bearer authorization grant. Specified in the form as: `projects/*/secrets/*/versions/*`. */ clientKey: outputs.connectors.v1.SecretResponse; /** * JwtClaims providers fields to generate the token. */ jwtClaims: outputs.connectors.v1.JwtClaimsResponse; } /** * Resource limits defined for connection pods of a given connector type. */ interface ResourceLimitsResponse { /** * CPU limit. */ cpu: string; /** * Memory limit. */ memory: string; } /** * Resource requests defined for connection pods of a given connector type. */ interface ResourceRequestsResponse { /** * CPU request. */ cpu: string; /** * Memory request. */ memory: string; } /** * Secret provides a reference to entries in Secret Manager. */ interface SecretResponse { /** * The resource name of the secret version in the format, format as: `projects/*/secrets/*/versions/*`. */ secretVersion: string; } /** * Parameters to support Ssh public key Authentication. */ interface SshPublicKeyResponse { /** * Format of SSH Client cert. */ certType: string; /** * SSH Client Cert. It should contain both public and private key. */ sshClientCert: outputs.connectors.v1.SecretResponse; /** * Password (passphrase) for ssh client certificate if it has one. */ sshClientCertPass: outputs.connectors.v1.SecretResponse; /** * The user account used to authenticate. */ username: string; } /** * SSL Configuration of a connection */ interface SslConfigResponse { /** * Additional SSL related field values */ additionalVariables: outputs.connectors.v1.ConfigVariableResponse[]; /** * Type of Client Cert (PEM/JKS/.. etc.) */ clientCertType: string; /** * Client Certificate */ clientCertificate: outputs.connectors.v1.SecretResponse; /** * Client Private Key */ clientPrivateKey: outputs.connectors.v1.SecretResponse; /** * Secret containing the passphrase protecting the Client Private Key */ clientPrivateKeyPass: outputs.connectors.v1.SecretResponse; /** * Private Server Certificate. Needs to be specified if trust model is `PRIVATE`. */ privateServerCertificate: outputs.connectors.v1.SecretResponse; /** * Type of Server Cert (PEM/JKS/.. etc.) */ serverCertType: string; /** * Trust Model of the SSL connection */ trustModel: string; /** * Controls the ssl type for the given connector version. */ type: string; /** * Bool for enabling SSL */ useSsl: boolean; } /** * Parameters to support Username and Password Authentication. */ interface UserPasswordResponse { /** * Secret version reference containing the password. */ password: outputs.connectors.v1.SecretResponse; /** * Username. */ username: string; } } } export declare namespace contactcenteraiplatform { namespace v1alpha1 { /** * Message storing info about the first admin user. Next ID: 3 */ interface AdminUserResponse { /** * Optional. Last/family name of the first admin user. */ familyName: string; /** * Optional. First/given name of the first admin user. */ givenName: string; } /** * Message storing the instance configuration. */ interface InstanceConfigResponse { /** * The instance size of this the instance configuration. */ instanceSize: string; } /** * Message storing SAML params to enable Google as IDP. */ interface SAMLParamsResponse { /** * SAML certificate */ certificate: string; /** * IdP field that maps to the user’s email address */ emailMapping: string; /** * Entity id URL */ entityId: string; /** * Single sign-on URL */ ssoUri: string; /** * Email address of the first admin users. */ userEmail: string; } /** * Message storing the URIs of the ContactCenter. */ interface URIsResponse { /** * Chat Bot Uri of the ContactCenter */ chatBotUri: string; /** * Media Uri of the ContactCenter. */ mediaUri: string; /** * Root Uri of the ContactCenter. */ rootUri: string; /** * Virtual Agent Streaming Service Uri of the ContactCenter. */ virtualAgentStreamingServiceUri: string; } } } export declare namespace contactcenterinsights { namespace v1 { /** * The analysis resource. */ interface GoogleCloudContactcenterinsightsV1AnalysisResponse { /** * The result of the analysis, which is populated when the analysis finishes. */ analysisResult: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1AnalysisResultResponse; /** * To select the annotators to run and the phrase matchers to use (if any). If not specified, all annotators will be run. */ annotatorSelector: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1AnnotatorSelectorResponse; /** * The time at which the analysis was created, which occurs when the long-running operation completes. */ createTime: string; /** * Immutable. The resource name of the analysis. Format: projects/{project}/locations/{location}/conversations/{conversation}/analyses/{analysis} */ name: string; /** * The time at which the analysis was requested. */ requestTime: string; } /** * Call-specific metadata created during analysis. */ interface GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadataResponse { /** * A list of call annotations that apply to this call. */ annotations: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1CallAnnotationResponse[]; /** * All the entities in the call. */ entities: { [key: string]: string; }; /** * All the matched intents in the call. */ intents: { [key: string]: string; }; /** * Overall conversation-level issue modeling result. */ issueModelResult: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1IssueModelResultResponse; /** * All the matched phrase matchers in the call. */ phraseMatchers: { [key: string]: string; }; /** * Overall conversation-level sentiment for each channel of the call. */ sentiments: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1ConversationLevelSentimentResponse[]; } /** * The result of an analysis. */ interface GoogleCloudContactcenterinsightsV1AnalysisResultResponse { /** * Call-specific metadata created by the analysis. */ callAnalysisMetadata: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadataResponse; /** * The time at which the analysis ended. */ endTime: string; } /** * A point in a conversation that marks the start or the end of an annotation. */ interface GoogleCloudContactcenterinsightsV1AnnotationBoundaryResponse { /** * The index in the sequence of transcribed pieces of the conversation where the boundary is located. This index starts at zero. */ transcriptIndex: number; /** * The word index of this boundary with respect to the first word in the transcript piece. This index starts at zero. */ wordIndex: number; } /** * Selector of all available annotators and phrase matchers to run. */ interface GoogleCloudContactcenterinsightsV1AnnotatorSelectorResponse { /** * The issue model to run. If not provided, the most recently deployed topic model will be used. The provided issue model will only be used for inference if the issue model is deployed and if run_issue_model_annotator is set to true. If more than one issue model is provided, only the first provided issue model will be used for inference. */ issueModels: string[]; /** * The list of phrase matchers to run. If not provided, all active phrase matchers will be used. If inactive phrase matchers are provided, they will not be used. Phrase matchers will be run only if run_phrase_matcher_annotator is set to true. Format: projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher} */ phraseMatchers: string[]; /** * Whether to run the entity annotator. */ runEntityAnnotator: boolean; /** * Whether to run the intent annotator. */ runIntentAnnotator: boolean; /** * Whether to run the interruption annotator. */ runInterruptionAnnotator: boolean; /** * Whether to run the issue model annotator. A model should have already been deployed for this to take effect. */ runIssueModelAnnotator: boolean; /** * Whether to run the active phrase matcher annotator(s). */ runPhraseMatcherAnnotator: boolean; /** * Whether to run the sentiment annotator. */ runSentimentAnnotator: boolean; /** * Whether to run the silence annotator. */ runSilenceAnnotator: boolean; /** * Whether to run the summarization annotator. */ runSummarizationAnnotator: boolean; /** * Configuration for the summarization annotator. */ summarizationConfig: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfigResponse; } /** * Configuration for summarization. */ interface GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfigResponse { /** * Resource name of the Dialogflow conversation profile. Format: projects/{project}/locations/{location}/conversationProfiles/{conversation_profile} */ conversationProfile: string; /** * Default summarization model to be used. */ summarizationModel: string; } /** * The feedback that the customer has about a certain answer in the conversation. */ interface GoogleCloudContactcenterinsightsV1AnswerFeedbackResponse { /** * Indicates whether an answer or item was clicked by the human agent. */ clicked: boolean; /** * The correctness level of an answer. */ correctnessLevel: string; /** * Indicates whether an answer or item was displayed to the human agent in the agent desktop UI. */ displayed: boolean; } /** * Agent Assist Article Suggestion data. */ interface GoogleCloudContactcenterinsightsV1ArticleSuggestionDataResponse { /** * The system's confidence score that this article is a good match for this conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely certain). */ confidenceScore: number; /** * Map that contains metadata about the Article Suggestion and the document that it originates from. */ metadata: { [key: string]: string; }; /** * The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record} */ queryRecord: string; /** * The knowledge document that this answer was extracted from. Format: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document} */ source: string; /** * Article title. */ title: string; /** * Article URI. */ uri: string; } /** * A piece of metadata that applies to a window of a call. */ interface GoogleCloudContactcenterinsightsV1CallAnnotationResponse { /** * The boundary in the conversation where the annotation ends, inclusive. */ annotationEndBoundary: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1AnnotationBoundaryResponse; /** * The boundary in the conversation where the annotation starts, inclusive. */ annotationStartBoundary: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1AnnotationBoundaryResponse; /** * The channel of the audio where the annotation occurs. For single-channel audio, this field is not populated. */ channelTag: number; /** * Data specifying an entity mention. */ entityMentionData: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1EntityMentionDataResponse; /** * Data specifying a hold. */ holdData: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1HoldDataResponse; /** * Data specifying an intent match. */ intentMatchData: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1IntentMatchDataResponse; /** * Data specifying an interruption. */ interruptionData: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1InterruptionDataResponse; /** * Data specifying an issue match. */ issueMatchData: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1IssueMatchDataResponse; /** * Data specifying a phrase match. */ phraseMatchData: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1PhraseMatchDataResponse; /** * Data specifying sentiment. */ sentimentData: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1SentimentDataResponse; /** * Data specifying silence. */ silenceData: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1SilenceDataResponse; } /** * Call-specific metadata. */ interface GoogleCloudContactcenterinsightsV1ConversationCallMetadataResponse { /** * The audio channel that contains the agent. */ agentChannel: number; /** * The audio channel that contains the customer. */ customerChannel: number; } /** * The conversation source, which is a combination of transcript, audio, and metadata. */ interface GoogleCloudContactcenterinsightsV1ConversationDataSourceResponse { /** * The source when the conversation comes from Dialogflow. */ dialogflowSource: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1DialogflowSourceResponse; /** * A Cloud Storage location specification for the audio and transcript. */ gcsSource: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1GcsSourceResponse; } /** * One channel of conversation-level sentiment data. */ interface GoogleCloudContactcenterinsightsV1ConversationLevelSentimentResponse { /** * The channel of the audio that the data applies to. */ channelTag: number; /** * Data specifying sentiment. */ sentimentData: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1SentimentDataResponse; } /** * The call participant speaking for a given utterance. */ interface GoogleCloudContactcenterinsightsV1ConversationParticipantResponse { /** * Deprecated. Use `dialogflow_participant_name` instead. The name of the Dialogflow participant. Format: projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant} * * @deprecated Deprecated. Use `dialogflow_participant_name` instead. The name of the Dialogflow participant. Format: projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant} */ dialogflowParticipant: string; /** * The name of the participant provided by Dialogflow. Format: projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant} */ dialogflowParticipantName: string; /** * Obfuscated user ID from Dialogflow. */ obfuscatedExternalUserId: string; /** * The role of the participant. */ role: string; /** * A user-specified ID representing the participant. */ userId: string; } /** * Conversation summarization suggestion data. */ interface GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionDataResponse { /** * The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record} */ answerRecord: string; /** * The confidence score of the summarization. */ confidence: number; /** * The name of the model that generates this summary. Format: projects/{project}/locations/{location}/conversationModels/{conversation_model} */ conversationModel: string; /** * A map that contains metadata about the summarization and the document from which it originates. */ metadata: { [key: string]: string; }; /** * The summarization content that is concatenated into one string. */ text: string; /** * The summarization content that is divided into sections. The key is the section's name and the value is the section's content. There is no specific format for the key or value. */ textSections: { [key: string]: string; }; } /** * A message representing the transcript of a conversation. */ interface GoogleCloudContactcenterinsightsV1ConversationTranscriptResponse { /** * A list of sequential transcript segments that comprise the conversation. */ transcriptSegments: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentResponse[]; } /** * Metadata from Dialogflow relating to the current transcript segment. */ interface GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentDialogflowSegmentMetadataResponse { /** * Whether the transcript segment was covered under the configured smart reply allowlist in Agent Assist. */ smartReplyAllowlistCovered: boolean; } /** * A segment of a full transcript. */ interface GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentResponse { /** * For conversations derived from multi-channel audio, this is the channel number corresponding to the audio from that channel. For audioChannelCount = N, its output values can range from '1' to 'N'. A channel tag of 0 indicates that the audio is mono. */ channelTag: number; /** * A confidence estimate between 0.0 and 1.0 of the fidelity of this segment. A default value of 0.0 indicates that the value is unset. */ confidence: number; /** * CCAI metadata relating to the current transcript segment. */ dialogflowSegmentMetadata: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentDialogflowSegmentMetadataResponse; /** * The language code of this segment as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: "en-US". */ languageCode: string; /** * The time that the message occurred, if provided. */ messageTime: string; /** * The participant of this segment. */ segmentParticipant: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1ConversationParticipantResponse; /** * The sentiment for this transcript segment. */ sentiment: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1SentimentDataResponse; /** * The text of this segment. */ text: string; /** * A list of the word-specific information for each word in the segment. */ words: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentWordInfoResponse[]; } /** * Word-level info for words in a transcript. */ interface GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentWordInfoResponse { /** * A confidence estimate between 0.0 and 1.0 of the fidelity of this word. A default value of 0.0 indicates that the value is unset. */ confidence: number; /** * Time offset of the end of this word relative to the beginning of the total conversation. */ endOffset: string; /** * Time offset of the start of this word relative to the beginning of the total conversation. */ startOffset: string; /** * The word itself. Includes punctuation marks that surround the word. */ word: string; } /** * Dialogflow interaction data. */ interface GoogleCloudContactcenterinsightsV1DialogflowInteractionDataResponse { /** * The confidence of the match ranging from 0.0 (completely uncertain) to 1.0 (completely certain). */ confidence: number; /** * The Dialogflow intent resource path. Format: projects/{project}/agent/{agent}/intents/{intent} */ dialogflowIntentId: string; } /** * A Dialogflow source of conversation data. */ interface GoogleCloudContactcenterinsightsV1DialogflowSourceResponse { /** * Cloud Storage URI that points to a file that contains the conversation audio. */ audioUri: string; /** * The name of the Dialogflow conversation that this conversation resource is derived from. Format: projects/{project}/locations/{location}/conversations/{conversation} */ dialogflowConversation: string; } /** * The data for an entity mention annotation. This represents a mention of an `Entity` in the conversation. */ interface GoogleCloudContactcenterinsightsV1EntityMentionDataResponse { /** * The key of this entity in conversation entities. Can be used to retrieve the exact `Entity` this mention is attached to. */ entityUniqueId: string; /** * Sentiment expressed for this mention of the entity. */ sentiment: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1SentimentDataResponse; /** * The type of the entity mention. */ type: string; } /** * Exact match configuration. */ interface GoogleCloudContactcenterinsightsV1ExactMatchConfigResponse { /** * Whether to consider case sensitivity when performing an exact match. */ caseSensitive: boolean; } /** * Agent Assist frequently-asked-question answer data. */ interface GoogleCloudContactcenterinsightsV1FaqAnswerDataResponse { /** * The piece of text from the `source` knowledge base document. */ answer: string; /** * The system's confidence score that this answer is a good match for this conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely certain). */ confidenceScore: number; /** * Map that contains metadata about the FAQ answer and the document that it originates from. */ metadata: { [key: string]: string; }; /** * The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record} */ queryRecord: string; /** * The corresponding FAQ question. */ question: string; /** * The knowledge document that this answer was extracted from. Format: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}. */ source: string; } /** * A Cloud Storage source of conversation data. */ interface GoogleCloudContactcenterinsightsV1GcsSourceResponse { /** * Cloud Storage URI that points to a file that contains the conversation audio. */ audioUri: string; /** * Immutable. Cloud Storage URI that points to a file that contains the conversation transcript. */ transcriptUri: string; } /** * The data for a hold annotation. */ interface GoogleCloudContactcenterinsightsV1HoldDataResponse { } /** * The data for an intent match. Represents an intent match for a text segment in the conversation. A text segment can be part of a sentence, a complete sentence, or an utterance with multiple sentences. */ interface GoogleCloudContactcenterinsightsV1IntentMatchDataResponse { /** * The id of the matched intent. Can be used to retrieve the corresponding intent information. */ intentUniqueId: string; } /** * The data for an interruption annotation. */ interface GoogleCloudContactcenterinsightsV1InterruptionDataResponse { } /** * Information about the issue. */ interface GoogleCloudContactcenterinsightsV1IssueAssignmentResponse { /** * Immutable. Display name of the assigned issue. This field is set at time of analyis and immutable since then. */ displayName: string; /** * Resource name of the assigned issue. */ issue: string; /** * Score indicating the likelihood of the issue assignment. currently bounded on [0,1]. */ score: number; } /** * The data for an issue match annotation. */ interface GoogleCloudContactcenterinsightsV1IssueMatchDataResponse { /** * Information about the issue's assignment. */ issueAssignment: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1IssueAssignmentResponse; } /** * Configs for the input data used to create the issue model. */ interface GoogleCloudContactcenterinsightsV1IssueModelInputDataConfigResponse { /** * A filter to reduce the conversations used for training the model to a specific subset. */ filter: string; /** * Medium of conversations used in training data. This field is being deprecated. To specify the medium to be used in training a new issue model, set the `medium` field on `filter`. */ medium: string; /** * Number of conversations used in training. Output only. */ trainingConversationsCount: string; } /** * Aggregated statistics about an issue model. */ interface GoogleCloudContactcenterinsightsV1IssueModelLabelStatsResponse { /** * Number of conversations the issue model has analyzed at this point in time. */ analyzedConversationsCount: string; /** * Statistics on each issue. Key is the issue's resource name. */ issueStats: { [key: string]: string; }; /** * Number of analyzed conversations for which no issue was applicable at this point in time. */ unclassifiedConversationsCount: string; } /** * Issue Modeling result on a conversation. */ interface GoogleCloudContactcenterinsightsV1IssueModelResultResponse { /** * Issue model that generates the result. Format: projects/{project}/locations/{location}/issueModels/{issue_model} */ issueModel: string; /** * All the matched issues. */ issues: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1IssueAssignmentResponse[]; } /** * The data for a matched phrase matcher. Represents information identifying a phrase matcher for a given match. */ interface GoogleCloudContactcenterinsightsV1PhraseMatchDataResponse { /** * The human-readable name of the phrase matcher. */ displayName: string; /** * The unique identifier (the resource name) of the phrase matcher. */ phraseMatcher: string; } /** * Configuration information of a phrase match rule. */ interface GoogleCloudContactcenterinsightsV1PhraseMatchRuleConfigResponse { /** * The configuration for the exact match rule. */ exactMatchConfig: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1ExactMatchConfigResponse; } /** * A message representing a rule in the phrase matcher. */ interface GoogleCloudContactcenterinsightsV1PhraseMatchRuleGroupResponse { /** * A list of phrase match rules that are included in this group. */ phraseMatchRules: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1PhraseMatchRuleResponse[]; /** * The type of this phrase match rule group. */ type: string; } /** * The data for a phrase match rule. */ interface GoogleCloudContactcenterinsightsV1PhraseMatchRuleResponse { /** * Provides additional information about the rule that specifies how to apply the rule. */ config: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1PhraseMatchRuleConfigResponse; /** * Specifies whether the phrase must be missing from the transcript segment or present in the transcript segment. */ negated: boolean; /** * The phrase to be matched. */ query: string; } /** * An annotation that was generated during the customer and agent interaction. */ interface GoogleCloudContactcenterinsightsV1RuntimeAnnotationResponse { /** * The unique identifier of the annotation. Format: projects/{project}/locations/{location}/conversationDatasets/{dataset}/conversationDataItems/{data_item}/conversationAnnotations/{annotation} */ annotationId: string; /** * The feedback that the customer has about the answer in `data`. */ answerFeedback: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1AnswerFeedbackResponse; /** * Agent Assist Article Suggestion data. */ articleSuggestion: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1ArticleSuggestionDataResponse; /** * Conversation summarization suggestion data. */ conversationSummarizationSuggestion: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionDataResponse; /** * The time at which this annotation was created. */ createTime: string; /** * Dialogflow interaction data. */ dialogflowInteraction: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1DialogflowInteractionDataResponse; /** * The boundary in the conversation where the annotation ends, inclusive. */ endBoundary: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1AnnotationBoundaryResponse; /** * Agent Assist FAQ answer data. */ faqAnswer: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1FaqAnswerDataResponse; /** * Agent Assist Smart Compose suggestion data. */ smartComposeSuggestion: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1SmartComposeSuggestionDataResponse; /** * Agent Assist Smart Reply data. */ smartReply: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1SmartReplyDataResponse; /** * The boundary in the conversation where the annotation starts, inclusive. */ startBoundary: outputs.contactcenterinsights.v1.GoogleCloudContactcenterinsightsV1AnnotationBoundaryResponse; } /** * The data for a sentiment annotation. */ interface GoogleCloudContactcenterinsightsV1SentimentDataResponse { /** * A non-negative number from 0 to infinity which represents the abolute magnitude of sentiment regardless of score. */ magnitude: number; /** * The sentiment score between -1.0 (negative) and 1.0 (positive). */ score: number; } /** * The data for a silence annotation. */ interface GoogleCloudContactcenterinsightsV1SilenceDataResponse { } /** * Agent Assist Smart Compose suggestion data. */ interface GoogleCloudContactcenterinsightsV1SmartComposeSuggestionDataResponse { /** * The system's confidence score that this suggestion is a good match for this conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely certain). */ confidenceScore: number; /** * Map that contains metadata about the Smart Compose suggestion and the document from which it originates. */ metadata: { [key: string]: string; }; /** * The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record} */ queryRecord: string; /** * The content of the suggestion. */ suggestion: string; } /** * Agent Assist Smart Reply data. */ interface GoogleCloudContactcenterinsightsV1SmartReplyDataResponse { /** * The system's confidence score that this reply is a good match for this conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely certain). */ confidenceScore: number; /** * Map that contains metadata about the Smart Reply and the document from which it originates. */ metadata: { [key: string]: string; }; /** * The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record} */ queryRecord: string; /** * The content of the reply. */ reply: string; } } } export declare namespace container { namespace v1 { /** * AcceleratorConfig represents a Hardware Accelerator request. */ interface AcceleratorConfigResponse { /** * The number of the accelerator cards exposed to an instance. */ acceleratorCount: string; /** * The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus) */ acceleratorType: string; /** * The configuration for auto installation of GPU driver. */ gpuDriverInstallationConfig: outputs.container.v1.GPUDriverInstallationConfigResponse; /** * Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning). */ gpuPartitionSize: string; /** * The configuration for GPU sharing options. */ gpuSharingConfig: outputs.container.v1.GPUSharingConfigResponse; } /** * AdditionalNodeNetworkConfig is the configuration for additional node networks within the NodeNetworkConfig message */ interface AdditionalNodeNetworkConfigResponse { /** * Name of the VPC where the additional interface belongs */ network: string; /** * Name of the subnetwork where the additional interface belongs */ subnetwork: string; } /** * AdditionalPodNetworkConfig is the configuration for additional pod networks within the NodeNetworkConfig message */ interface AdditionalPodNetworkConfigResponse { /** * The maximum number of pods per node which use this pod network */ maxPodsPerNode: outputs.container.v1.MaxPodsConstraintResponse; /** * The name of the secondary range on the subnet which provides IP address for this pod range */ secondaryPodRange: string; /** * Name of the subnetwork where the additional pod network belongs */ subnetwork: string; } /** * AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message. */ interface AdditionalPodRangesConfigResponse { /** * [Output only] Information for additional pod range. */ podRangeInfo: outputs.container.v1.RangeInfoResponse[]; /** * Name for pod secondary ipv4 range which has the actual range defined ahead. */ podRangeNames: string[]; } /** * Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. */ interface AddonsConfigResponse { /** * Configuration for the Cloud Run addon, which allows the user to use a managed Knative service. */ cloudRunConfig: outputs.container.v1.CloudRunConfigResponse; /** * Configuration for the ConfigConnector add-on, a Kubernetes extension to manage hosted GCP services through the Kubernetes API */ configConnectorConfig: outputs.container.v1.ConfigConnectorConfigResponse; /** * Configuration for NodeLocalDNS, a dns cache running on cluster nodes */ dnsCacheConfig: outputs.container.v1.DnsCacheConfigResponse; /** * Configuration for the Compute Engine Persistent Disk CSI driver. */ gcePersistentDiskCsiDriverConfig: outputs.container.v1.GcePersistentDiskCsiDriverConfigResponse; /** * Configuration for the GCP Filestore CSI driver. */ gcpFilestoreCsiDriverConfig: outputs.container.v1.GcpFilestoreCsiDriverConfigResponse; /** * Configuration for the Cloud Storage Fuse CSI driver. */ gcsFuseCsiDriverConfig: outputs.container.v1.GcsFuseCsiDriverConfigResponse; /** * Configuration for the Backup for GKE agent addon. */ gkeBackupAgentConfig: outputs.container.v1.GkeBackupAgentConfigResponse; /** * Configuration for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. */ horizontalPodAutoscaling: outputs.container.v1.HorizontalPodAutoscalingResponse; /** * Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. */ httpLoadBalancing: outputs.container.v1.HttpLoadBalancingResponse; /** * Configuration for the Kubernetes Dashboard. This addon is deprecated, and will be disabled in 1.15. It is recommended to use the Cloud Console to manage and monitor your Kubernetes clusters, workloads and applications. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards */ kubernetesDashboard: outputs.container.v1.KubernetesDashboardResponse; /** * Configuration for NetworkPolicy. This only tracks whether the addon is enabled or not on the Master, it does not track whether network policy is enabled for the nodes. */ networkPolicyConfig: outputs.container.v1.NetworkPolicyConfigResponse; } /** * AdvancedDatapathObservabilityConfig specifies configuration of observability features of advanced datapath. */ interface AdvancedDatapathObservabilityConfigResponse { /** * Expose flow metrics on nodes */ enableMetrics: boolean; /** * Method used to make Relay available */ relayMode: string; } /** * Specifies options for controlling advanced machine features. */ interface AdvancedMachineFeaturesResponse { /** * The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. */ threadsPerCore: string; } /** * Configuration for returning group information from authenticators. */ interface AuthenticatorGroupsConfigResponse { /** * Whether this cluster should return group membership lookups during authentication using a group of security groups. */ enabled: boolean; /** * The name of the security group-of-groups to be used. Only relevant if enabled = true. */ securityGroup: string; } /** * AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. */ interface AutoUpgradeOptionsResponse { /** * [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. */ autoUpgradeStartTime: string; /** * [Output only] This field is set when upgrades are about to commence with the description of the upgrade. */ description: string; } /** * Autopilot is the configuration for Autopilot settings on the cluster. */ interface AutopilotResponse { /** * Enable Autopilot */ enabled: boolean; /** * Workload policy configuration for Autopilot. */ workloadPolicyConfig: outputs.container.v1.WorkloadPolicyConfigResponse; } /** * AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP. */ interface AutoprovisioningNodePoolDefaultsResponse { /** * The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption */ bootDiskKmsKey: string; /** * Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB. */ diskSizeGb: number; /** * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is 'pd-standard' */ diskType: string; /** * The image type to use for NAP created node. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types. */ imageType: string; /** * Enable or disable Kubelet read only port. */ insecureKubeletReadonlyPortEnabled: boolean; /** * Specifies the node management options for NAP created node-pools. */ management: outputs.container.v1.NodeManagementResponse; /** * Deprecated. Minimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass "automatic" as field value. * * @deprecated Deprecated. Minimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass "automatic" as field value. */ minCpuPlatform: string; /** * Scopes that are used by NAP when creating node pools. */ oauthScopes: string[]; /** * The Google Cloud Platform Service Account to be used by the node VMs. */ serviceAccount: string; /** * Shielded Instance options. */ shieldedInstanceConfig: outputs.container.v1.ShieldedInstanceConfigResponse; /** * Specifies the upgrade settings for NAP created node pools */ upgradeSettings: outputs.container.v1.UpgradeSettingsResponse; } /** * Best effort provisioning. */ interface BestEffortProvisioningResponse { /** * When this is enabled, cluster/node pool creations will ignore non-fatal errors like stockout to best provision as many nodes as possible right now and eventually bring up all target number of nodes */ enabled: boolean; /** * Minimum number of nodes to be provisioned to be considered as succeeded, and the rest of nodes will be provisioned gradually and eventually when stockout issue has been resolved. */ minProvisionNodes: number; } /** * Parameters for using BigQuery as the destination of resource usage export. */ interface BigQueryDestinationResponse { /** * The ID of a BigQuery Dataset. */ datasetId: string; } /** * Configuration for Binary Authorization. */ interface BinaryAuthorizationResponse { /** * This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored. * * @deprecated This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored. */ enabled: boolean; /** * Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED. */ evaluationMode: string; } /** * Information relevant to blue-green upgrade. */ interface BlueGreenInfoResponse { /** * The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with blue pool. */ blueInstanceGroupUrls: string[]; /** * Time to start deleting blue pool to complete blue-green upgrade, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. */ bluePoolDeletionStartTime: string; /** * The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with green pool. */ greenInstanceGroupUrls: string[]; /** * Version of green pool. */ greenPoolVersion: string; /** * Current blue-green upgrade phase. */ phase: string; } /** * Settings for blue-green upgrade. */ interface BlueGreenSettingsResponse { /** * Time needed after draining entire blue pool. After this period, blue pool will be cleaned up. */ nodePoolSoakDuration: string; /** * Standard policy for the blue-green upgrade. */ standardRolloutPolicy: outputs.container.v1.StandardRolloutPolicyResponse; } /** * CidrBlock contains an optional name and one CIDR block. */ interface CidrBlockResponse { /** * cidr_block must be specified in CIDR notation. */ cidrBlock: string; /** * display_name is an optional field for users to identify CIDR blocks. */ displayName: string; } /** * Configuration for client certificates on the cluster. */ interface ClientCertificateConfigResponse { /** * Issue a client certificate. */ issueClientCertificate: boolean; } /** * Configuration options for the Cloud Run feature. */ interface CloudRunConfigResponse { /** * Whether Cloud Run addon is enabled for this cluster. */ disabled: boolean; /** * Which load balancer type is installed for Cloud Run. */ loadBalancerType: string; } /** * ClusterAutoscaling contains global, per-cluster information required by Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs. */ interface ClusterAutoscalingResponse { /** * The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool's nodes can be created by NAP. */ autoprovisioningLocations: string[]; /** * AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP. */ autoprovisioningNodePoolDefaults: outputs.container.v1.AutoprovisioningNodePoolDefaultsResponse; /** * Defines autoscaling behaviour. */ autoscalingProfile: string; /** * Enables automatic node pool creation and deletion. */ enableNodeAutoprovisioning: boolean; /** * Contains global constraints regarding minimum and maximum amount of resources in the cluster. */ resourceLimits: outputs.container.v1.ResourceLimitResponse[]; } /** * Configuration of network bandwidth tiers */ interface ClusterNetworkPerformanceConfigResponse { /** * Specifies the total network bandwidth tier for NodePools in the cluster. */ totalEgressBandwidthTier: string; } /** * ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. */ interface ConfidentialNodesResponse { /** * Whether Confidential Nodes feature is enabled. */ enabled: boolean; } /** * Configuration options for the Config Connector add-on. */ interface ConfigConnectorConfigResponse { /** * Whether Cloud Connector is enabled for this cluster. */ enabled: boolean; } /** * Parameters for controlling consumption metering. */ interface ConsumptionMeteringConfigResponse { /** * Whether to enable consumption metering for this cluster. If enabled, a second BigQuery table will be created to hold resource consumption records. */ enabled: boolean; } /** * Configuration for fine-grained cost management feature. */ interface CostManagementConfigResponse { /** * Whether the feature is enabled or not. */ enabled: boolean; } /** * DNSConfig contains the desired set of options for configuring clusterDNS. */ interface DNSConfigResponse { /** * cluster_dns indicates which in-cluster DNS provider should be used. */ clusterDns: string; /** * cluster_dns_domain is the suffix used for all cluster service records. */ clusterDnsDomain: string; /** * cluster_dns_scope indicates the scope of access to cluster DNS records. */ clusterDnsScope: string; } /** * Time window specified for daily maintenance operations. */ interface DailyMaintenanceWindowResponse { /** * [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format "PTnHnMnS". */ duration: string; /** * Time within the maintenance window to start the maintenance operations. Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format "HH:MM", where HH : [00-23] and MM : [00-59] GMT. */ startTime: string; } /** * Configuration of etcd encryption. */ interface DatabaseEncryptionResponse { /** * Name of CloudKMS key to use for the encryption of secrets in etcd. Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key */ keyName: string; /** * The desired state of etcd encryption. */ state: string; } /** * DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster. */ interface DefaultSnatStatusResponse { /** * Disables cluster default sNAT rules. */ disabled: boolean; } /** * Configuration for NodeLocal DNSCache */ interface DnsCacheConfigResponse { /** * Whether NodeLocal DNSCache is enabled for this cluster. */ enabled: boolean; } /** * EnterpriseConfig is the cluster enterprise configuration. */ interface EnterpriseConfigResponse { /** * [Output only] cluster_tier specifies the premium tier of the cluster. */ clusterTier: string; } /** * EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSDs. */ interface EphemeralStorageLocalSsdConfigResponse { /** * Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info. */ localSsdCount: number; } /** * Configuration of Fast Socket feature. */ interface FastSocketResponse { /** * Whether Fast Socket features are enabled in the node pool. */ enabled: boolean; } /** * Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent */ interface FilterResponse { /** * Event types to allowlist. */ eventType: string[]; } /** * Fleet is the fleet configuration for the cluster. */ interface FleetResponse { /** * [Output only] The full resource name of the registered fleet membership of the cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`. */ membership: string; /** * [Output only] Whether the cluster has been registered through the fleet API. */ preRegistered: boolean; /** * The Fleet host project(project ID or project number) where this cluster will be registered to. This field cannot be changed after the cluster has been registered. */ project: string; } /** * GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed. */ interface GPUDriverInstallationConfigResponse { /** * Mode for how the GPU driver is installed. */ gpuDriverVersion: string; } /** * GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators. */ interface GPUSharingConfigResponse { /** * The type of GPU sharing strategy to enable on the GPU node. */ gpuSharingStrategy: string; /** * The max number of containers that can share a physical GPU. */ maxSharedClientsPerGpu: string; } /** * GatewayAPIConfig contains the desired config of Gateway API on this cluster. */ interface GatewayAPIConfigResponse { /** * The Gateway API release channel to use for Gateway API. */ channel: string; } /** * Configuration for the Compute Engine PD CSI driver. */ interface GcePersistentDiskCsiDriverConfigResponse { /** * Whether the Compute Engine PD CSI driver is enabled for this cluster. */ enabled: boolean; } /** * GcfsConfig contains configurations of Google Container File System (image streaming). */ interface GcfsConfigResponse { /** * Whether to use GCFS. */ enabled: boolean; } /** * Configuration for the GCP Filestore CSI driver. */ interface GcpFilestoreCsiDriverConfigResponse { /** * Whether the GCP Filestore CSI driver is enabled for this cluster. */ enabled: boolean; } /** * Configuration for the Cloud Storage Fuse CSI driver. */ interface GcsFuseCsiDriverConfigResponse { /** * Whether the Cloud Storage Fuse CSI driver is enabled for this cluster. */ enabled: boolean; } /** * Configuration for the Backup for GKE Agent. */ interface GkeBackupAgentConfigResponse { /** * Whether the Backup for GKE agent is enabled for this cluster. */ enabled: boolean; } /** * Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. */ interface HorizontalPodAutoscalingResponse { /** * Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that metrics are collected into Stackdriver Monitoring. */ disabled: boolean; } /** * Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. */ interface HttpLoadBalancingResponse { /** * Whether the HTTP Load Balancing controller is enabled in the cluster. When enabled, it runs a small pod in the cluster that manages the load balancers. */ disabled: boolean; } /** * Configuration for controlling how IPs are allocated in the cluster. */ interface IPAllocationPolicyResponse { /** * [Output only] The additional pod ranges that are added to the cluster. These pod ranges can be used by new node pools to allocate pod IPs automatically. Once the range is removed it will not show up in IPAllocationPolicy. */ additionalPodRangesConfig: outputs.container.v1.AdditionalPodRangesConfigResponse; /** * This field is deprecated, use cluster_ipv4_cidr_block. * * @deprecated This field is deprecated, use cluster_ipv4_cidr_block. */ clusterIpv4Cidr: string; /** * The IP address range for the cluster pod IPs. If this field is set, then `cluster.cluster_ipv4_cidr` must be left blank. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. */ clusterIpv4CidrBlock: string; /** * The name of the secondary range to be used for the cluster CIDR block. The secondary range will be used for pod IP addresses. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false. */ clusterSecondaryRangeName: string; /** * Whether a new subnetwork will be created automatically for the cluster. This field is only applicable when `use_ip_aliases` is true. */ createSubnetwork: boolean; /** * [Output only] The utilization of the cluster default IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode. */ defaultPodIpv4RangeUtilization: number; /** * The ipv6 access type (internal or external) when create_subnetwork is true */ ipv6AccessType: string; /** * This field is deprecated, use node_ipv4_cidr_block. * * @deprecated This field is deprecated, use node_ipv4_cidr_block. */ nodeIpv4Cidr: string; /** * The IP address range of the instance IPs in this cluster. This is applicable only if `create_subnetwork` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. */ nodeIpv4CidrBlock: string; /** * [PRIVATE FIELD] Pod CIDR size overprovisioning config for the cluster. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is doubled and then rounded off to next power of 2 to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled. */ podCidrOverprovisionConfig: outputs.container.v1.PodCIDROverprovisionConfigResponse; /** * This field is deprecated, use services_ipv4_cidr_block. * * @deprecated This field is deprecated, use services_ipv4_cidr_block. */ servicesIpv4Cidr: string; /** * The IP address range of the services IPs in this cluster. If blank, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. */ servicesIpv4CidrBlock: string; /** * [Output only] The services IPv6 CIDR block for the cluster. */ servicesIpv6CidrBlock: string; /** * The name of the secondary range to be used as for the services CIDR block. The secondary range will be used for service ClusterIPs. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false. */ servicesSecondaryRangeName: string; /** * The IP stack type of the cluster */ stackType: string; /** * [Output only] The subnet's IPv6 CIDR block used by nodes and pods. */ subnetIpv6CidrBlock: string; /** * A custom subnetwork name to be used if `create_subnetwork` is true. If this field is empty, then an automatic name will be chosen for the new subnetwork. */ subnetworkName: string; /** * The IP address range of the Cloud TPUs in this cluster. If unspecified, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. If unspecified, the range will use the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. */ tpuIpv4CidrBlock: string; /** * Whether alias IPs will be used for pod IPs in the cluster. This is used in conjunction with use_routes. It cannot be true if use_routes is true. If both use_ip_aliases and use_routes are false, then the server picks the default IP allocation mode */ useIpAliases: boolean; /** * Whether routes will be used for pod IPs in the cluster. This is used in conjunction with use_ip_aliases. It cannot be true if use_ip_aliases is true. If both use_ip_aliases and use_routes are false, then the server picks the default IP allocation mode */ useRoutes: boolean; } /** * IdentityServiceConfig is configuration for Identity Service which allows customers to use external identity providers with the K8S API */ interface IdentityServiceConfigResponse { /** * Whether to enable the Identity Service component */ enabled: boolean; } /** * K8sBetaAPIConfig , configuration for beta APIs */ interface K8sBetaAPIConfigResponse { /** * Enabled k8s beta APIs. */ enabledApis: string[]; } /** * Configuration for the Kubernetes Dashboard. */ interface KubernetesDashboardResponse { /** * Whether the Kubernetes Dashboard is enabled for this cluster. */ disabled: boolean; } /** * Configuration for the legacy Attribute Based Access Control authorization mode. */ interface LegacyAbacResponse { /** * Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. */ enabled: boolean; } /** * Parameters that can be configured on Linux nodes. */ interface LinuxNodeConfigResponse { /** * cgroup_mode specifies the cgroup mode to be used on the node. */ cgroupMode: string; /** * The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_tw_reuse */ sysctls: { [key: string]: string; }; } /** * LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSDs */ interface LocalNvmeSsdBlockConfigResponse { /** * Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info. */ localSsdCount: number; } /** * LoggingComponentConfig is cluster logging component configuration. */ interface LoggingComponentConfigResponse { /** * Select components to collect logs. An empty set would disable all logging. */ enableComponents: string[]; } /** * LoggingConfig is cluster logging configuration. */ interface LoggingConfigResponse { /** * Logging components configuration */ componentConfig: outputs.container.v1.LoggingComponentConfigResponse; } /** * LoggingVariantConfig specifies the behaviour of the logging component. */ interface LoggingVariantConfigResponse { /** * Logging variant deployed on nodes. */ variant: string; } /** * Represents the Maintenance exclusion option. */ interface MaintenanceExclusionOptionsResponse { /** * Scope specifies the upgrade scope which upgrades are blocked by the exclusion. */ scope: string; } /** * MaintenancePolicy defines the maintenance policy to be used for the cluster. */ interface MaintenancePolicyResponse { /** * A hash identifying the version of this policy, so that updates to fields of the policy won't accidentally undo intermediate changes (and so that users of the API unaware of some fields won't accidentally remove other fields). Make a `get()` request to the cluster to get the current resource version and include it with requests to set the policy. */ resourceVersion: string; /** * Specifies the maintenance window in which maintenance may be performed. */ window: outputs.container.v1.MaintenanceWindowResponse; } /** * MaintenanceWindow defines the maintenance window to be used for the cluster. */ interface MaintenanceWindowResponse { /** * DailyMaintenanceWindow specifies a daily maintenance operation window. */ dailyMaintenanceWindow: outputs.container.v1.DailyMaintenanceWindowResponse; /** * Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows. */ maintenanceExclusions: { [key: string]: string; }; /** * RecurringWindow specifies some number of recurring time periods for maintenance to occur. The time windows may be overlapping. If no maintenance windows are set, maintenance can occur at any time. */ recurringWindow: outputs.container.v1.RecurringTimeWindowResponse; } /** * ManagedPrometheusConfig defines the configuration for Google Cloud Managed Service for Prometheus. */ interface ManagedPrometheusConfigResponse { /** * Enable Managed Collection. */ enabled: boolean; } /** * The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates. */ interface MasterAuthResponse { /** * [Output only] Base64-encoded public certificate used by clients to authenticate to the cluster endpoint. */ clientCertificate: string; /** * Configuration for client certificate authentication on the cluster. For clusters before v1.12, if no configuration is specified, a client certificate is issued. */ clientCertificateConfig: outputs.container.v1.ClientCertificateConfigResponse; /** * [Output only] Base64-encoded private key used by clients to authenticate to the cluster endpoint. */ clientKey: string; /** * [Output only] Base64-encoded public certificate that is the root of trust for the cluster. */ clusterCaCertificate: string; /** * The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password. If a password is provided for cluster creation, username must be non-empty. Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication */ password: string; /** * The username to use for HTTP basic authentication to the master endpoint. For clusters v1.6.0 and later, basic authentication can be disabled by leaving username unspecified (or setting it to the empty string). Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication */ username: string; } /** * Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. */ interface MasterAuthorizedNetworksConfigResponse { /** * cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS. */ cidrBlocks: outputs.container.v1.CidrBlockResponse[]; /** * Whether or not master authorized networks is enabled. */ enabled: boolean; /** * Whether master is accessbile via Google Compute Engine Public IP addresses. */ gcpPublicCidrsAccessEnabled: boolean; } /** * Constraints applied to pods. */ interface MaxPodsConstraintResponse { /** * Constraint enforced on the max num of pods per node. */ maxPodsPerNode: string; } /** * Configuration for issuance of mTLS keys and certificates to Kubernetes pods. */ interface MeshCertificatesResponse { /** * enable_certificates controls issuance of workload mTLS certificates. If set, the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster, which can then be configured by creating a WorkloadCertificateConfig Custom Resource. Requires Workload Identity (workload_pool must be non-empty). */ enableCertificates: boolean; } /** * MonitoringComponentConfig is cluster monitoring component configuration. */ interface MonitoringComponentConfigResponse { /** * Select components to collect metrics. An empty set would disable all monitoring. */ enableComponents: string[]; } /** * MonitoringConfig is cluster monitoring configuration. */ interface MonitoringConfigResponse { /** * Configuration of Advanced Datapath Observability features. */ advancedDatapathObservabilityConfig: outputs.container.v1.AdvancedDatapathObservabilityConfigResponse; /** * Monitoring components configuration */ componentConfig: outputs.container.v1.MonitoringComponentConfigResponse; /** * Enable Google Cloud Managed Service for Prometheus in the cluster. */ managedPrometheusConfig: outputs.container.v1.ManagedPrometheusConfigResponse; } /** * NetworkConfig reports the relative names of network & subnetwork. */ interface NetworkConfigResponse { /** * The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation. */ datapathProvider: string; /** * Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when default_snat_status is disabled. When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic. */ defaultSnatStatus: outputs.container.v1.DefaultSnatStatusResponse; /** * DNSConfig contains clusterDNS config for this cluster. */ dnsConfig: outputs.container.v1.DNSConfigResponse; /** * Whether FQDN Network Policy is enabled on this cluster. */ enableFqdnNetworkPolicy: boolean; /** * Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network. */ enableIntraNodeVisibility: boolean; /** * Whether L4ILB Subsetting is enabled for this cluster. */ enableL4ilbSubsetting: boolean; /** * Whether multi-networking is enabled for this cluster. */ enableMultiNetworking: boolean; /** * GatewayAPIConfig contains the desired config of Gateway API on this cluster. */ gatewayApiConfig: outputs.container.v1.GatewayAPIConfigResponse; /** * The relative name of the Google Compute Engine network(https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. Example: projects/my-project/global/networks/my-network */ network: string; /** * Network bandwidth tier configuration. */ networkPerformanceConfig: outputs.container.v1.ClusterNetworkPerformanceConfigResponse; /** * The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4) */ privateIpv6GoogleAccess: string; /** * ServiceExternalIPsConfig specifies if services with externalIPs field are blocked or not. */ serviceExternalIpsConfig: outputs.container.v1.ServiceExternalIPsConfigResponse; /** * The relative name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the cluster is connected. Example: projects/my-project/regions/us-central1/subnetworks/my-subnet */ subnetwork: string; } /** * Configuration of all network bandwidth tiers */ interface NetworkPerformanceConfigResponse { /** * Specifies the total network bandwidth tier for the NodePool. */ totalEgressBandwidthTier: string; } /** * Configuration for NetworkPolicy. This only tracks whether the addon is enabled or not on the Master, it does not track whether network policy is enabled for the nodes. */ interface NetworkPolicyConfigResponse { /** * Whether NetworkPolicy is enabled for this cluster. */ disabled: boolean; } /** * Configuration options for the NetworkPolicy feature. https://kubernetes.io/docs/concepts/services-networking/networkpolicies/ */ interface NetworkPolicyResponse { /** * Whether network policy is enabled on the cluster. */ enabled: boolean; /** * The selected network policy provider. */ provider: string; } /** * Collection of Compute Engine network tags that can be applied to a node's underlying VM instance. */ interface NetworkTagsResponse { /** * List of network tags. */ tags: string[]; } /** * Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity). */ interface NodeAffinityResponse { /** * Key for NodeAffinity. */ key: string; /** * Operator for NodeAffinity. */ operator: string; /** * Values for NodeAffinity. */ values: string[]; } /** * Subset of NodeConfig message that has defaults. */ interface NodeConfigDefaultsResponse { /** * GCFS (Google Container File System, also known as Riptide) options. */ gcfsConfig: outputs.container.v1.GcfsConfigResponse; /** * Logging configuration for node pools. */ loggingConfig: outputs.container.v1.NodePoolLoggingConfigResponse; } /** * Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead. */ interface NodeConfigResponse { /** * A list of hardware accelerators to be attached to each node. See https://cloud.google.com/compute/docs/gpus for more information about support for GPUs. */ accelerators: outputs.container.v1.AcceleratorConfigResponse[]; /** * Advanced features for the Compute Engine VM. */ advancedMachineFeatures: outputs.container.v1.AdvancedMachineFeaturesResponse; /** * The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption */ bootDiskKmsKey: string; /** * Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled. */ confidentialNodes: outputs.container.v1.ConfidentialNodesResponse; /** * Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB. */ diskSizeGb: number; /** * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is 'pd-standard' */ diskType: string; /** * Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk. */ ephemeralStorageLocalSsdConfig: outputs.container.v1.EphemeralStorageLocalSsdConfigResponse; /** * Enable or disable NCCL fast socket for the node pool. */ fastSocket: outputs.container.v1.FastSocketResponse; /** * Google Container File System (image streaming) configs. */ gcfsConfig: outputs.container.v1.GcfsConfigResponse; /** * Enable or disable gvnic in the node pool. */ gvnic: outputs.container.v1.VirtualNICResponse; /** * The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types. */ imageType: string; /** * Node kubelet configs. */ kubeletConfig: outputs.container.v1.NodeKubeletConfigResponse; /** * The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ */ labels: { [key: string]: string; }; /** * Parameters that can be configured on Linux nodes. */ linuxNodeConfig: outputs.container.v1.LinuxNodeConfigResponse; /** * Parameters for using raw-block Local NVMe SSDs. */ localNvmeSsdBlockConfig: outputs.container.v1.LocalNvmeSsdBlockConfigResponse; /** * The number of local SSD disks to be attached to the node. The limit for this value is dependent upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. */ localSsdCount: number; /** * Logging configuration. */ loggingConfig: outputs.container.v1.NodePoolLoggingConfigResponse; /** * The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types) If unspecified, the default machine type is `e2-medium`. */ machineType: string; /** * The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: - "cluster-location" - "cluster-name" - "cluster-uid" - "configure-sh" - "containerd-configure-sh" - "enable-os-login" - "gci-ensure-gke-docker" - "gci-metrics-enabled" - "gci-update-strategy" - "instance-template" - "kube-env" - "startup-script" - "user-data" - "disable-address-manager" - "windows-startup-script-ps1" - "common-psm1" - "k8s-node-setup-psm1" - "install-ssh-psm1" - "user-profile-psm1" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB. */ metadata: { [key: string]: string; }; /** * Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as `minCpuPlatform: "Intel Haswell"` or `minCpuPlatform: "Intel Sandy Bridge"`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) */ minCpuPlatform: string; /** * Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes). */ nodeGroup: string; /** * The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](https://cloud.google.com/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added. */ oauthScopes: string[]; /** * Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more information about preemptible VM instances. */ preemptible: boolean; /** * The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool. */ reservationAffinity: outputs.container.v1.ReservationAffinityResponse; /** * The resource labels for the node pool to use to annotate any related Google Compute Engine resources. */ resourceLabels: { [key: string]: string; }; /** * A map of resource manager tag keys and values to be attached to the nodes. */ resourceManagerTags: outputs.container.v1.ResourceManagerTagsResponse; /** * Sandbox configuration for this node. */ sandboxConfig: outputs.container.v1.SandboxConfigResponse; /** * The Google Cloud Platform Service Account to be used by the node VMs. Specify the email address of the Service Account; otherwise, if no Service Account is specified, the "default" service account is used. */ serviceAccount: string; /** * Shielded Instance options. */ shieldedInstanceConfig: outputs.container.v1.ShieldedInstanceConfigResponse; /** * Parameters for node pools to be backed by shared sole tenant node groups. */ soleTenantConfig: outputs.container.v1.SoleTenantConfigResponse; /** * Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag. */ spot: boolean; /** * The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035. */ tags: string[]; /** * List of kubernetes taints to be applied to each node. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ */ taints: outputs.container.v1.NodeTaintResponse[]; /** * Parameters that can be configured on Windows nodes. */ windowsNodeConfig: outputs.container.v1.WindowsNodeConfigResponse; /** * The workload metadata configuration for this node. */ workloadMetadataConfig: outputs.container.v1.WorkloadMetadataConfigResponse; } /** * Node kubelet configs. */ interface NodeKubeletConfigResponse { /** * Enable CPU CFS quota enforcement for containers that specify CPU limits. This option is enabled by default which makes kubelet use CFS quota (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to enforce container CPU limits. Otherwise, CPU limits will not be enforced at all. Disable this option to mitigate CPU throttling problems while still having your pods to be in Guaranteed QoS class by specifying the CPU limits. The default value is 'true' if unspecified. */ cpuCfsQuota: boolean; /** * Set the CPU CFS quota period value 'cpu.cfs_period_us'. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The value must be a positive duration. */ cpuCfsQuotaPeriod: string; /** * Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * "none": the default, which represents the existing scheduling behavior. * "static": allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is 'none' if unspecified. */ cpuManagerPolicy: string; /** * Enable or disable Kubelet read only port. */ insecureKubeletReadonlyPortEnabled: boolean; /** * Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304. */ podPidsLimit: string; } /** * NodeManagement defines the set of node management services turned on for the node pool. */ interface NodeManagementResponse { /** * A flag that specifies whether the node auto-repair is enabled for the node pool. If enabled, the nodes in this node pool will be monitored and, if they fail health checks too many times, an automatic repair action will be triggered. */ autoRepair: boolean; /** * A flag that specifies whether node auto-upgrade is enabled for the node pool. If enabled, node auto-upgrade helps keep the nodes in your node pool up to date with the latest release version of Kubernetes. */ autoUpgrade: boolean; /** * Specifies the Auto Upgrade knobs for the node pool. */ upgradeOptions: outputs.container.v1.AutoUpgradeOptionsResponse; } /** * Parameters for node pool-level network config. */ interface NodeNetworkConfigResponse { /** * We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface */ additionalNodeNetworkConfigs: outputs.container.v1.AdditionalNodeNetworkConfigResponse[]; /** * We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node */ additionalPodNetworkConfigs: outputs.container.v1.AdditionalPodNetworkConfigResponse[]; /** * Input only. Whether to create a new range for pod IPs in this node pool. Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are not specified. If neither `create_pod_range` or `pod_range` are specified, the cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is used. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created. */ createPodRange: boolean; /** * Whether nodes have internal IP addresses only. If enable_private_nodes is not specified, then the value is derived from cluster.privateClusterConfig.enablePrivateNodes */ enablePrivateNodes: boolean; /** * Network bandwidth tier configuration. */ networkPerformanceConfig: outputs.container.v1.NetworkPerformanceConfigResponse; /** * [PRIVATE FIELD] Pod CIDR size overprovisioning config for the nodepool. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is rounded off to next power of 2 and we then double that to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled. */ podCidrOverprovisionConfig: outputs.container.v1.PodCIDROverprovisionConfigResponse; /** * The IP address range for pod IPs in this node pool. Only applicable if `create_pod_range` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) to pick a specific range to use. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created. */ podIpv4CidrBlock: string; /** * [Output only] The utilization of the IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode. */ podIpv4RangeUtilization: number; /** * The ID of the secondary range for pod IPs. If `create_pod_range` is true, this ID is used for the new range. If `create_pod_range` is false, uses an existing secondary range with this ID. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created. */ podRange: string; } /** * Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters. */ interface NodePoolAutoConfigResponse { /** * The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster creation. Each tag within the list must comply with RFC1035. */ networkTags: outputs.container.v1.NetworkTagsResponse; /** * Resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. */ resourceManagerTags: outputs.container.v1.ResourceManagerTagsResponse; } /** * NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. */ interface NodePoolAutoscalingResponse { /** * Can this node pool be deleted automatically. */ autoprovisioned: boolean; /** * Is autoscaling enabled for this node pool. */ enabled: boolean; /** * Location policy used when scaling up a nodepool. */ locationPolicy: string; /** * Maximum number of nodes for one location in the NodePool. Must be >= min_node_count. There has to be enough quota to scale up the cluster. */ maxNodeCount: number; /** * Minimum number of nodes for one location in the NodePool. Must be >= 1 and <= max_node_count. */ minNodeCount: number; /** * Maximum number of nodes in the node pool. Must be greater than total_min_node_count. There has to be enough quota to scale up the cluster. The total_*_node_count fields are mutually exclusive with the *_node_count fields. */ totalMaxNodeCount: number; /** * Minimum number of nodes in the node pool. Must be greater than 1 less than total_max_node_count. The total_*_node_count fields are mutually exclusive with the *_node_count fields. */ totalMinNodeCount: number; } /** * Subset of Nodepool message that has defaults. */ interface NodePoolDefaultsResponse { /** * Subset of NodeConfig message that has defaults. */ nodeConfigDefaults: outputs.container.v1.NodeConfigDefaultsResponse; } /** * NodePoolLoggingConfig specifies logging configuration for nodepools. */ interface NodePoolLoggingConfigResponse { /** * Logging variant configuration. */ variantConfig: outputs.container.v1.LoggingVariantConfigResponse; } /** * NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload. */ interface NodePoolResponse { /** * Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present. */ autoscaling: outputs.container.v1.NodePoolAutoscalingResponse; /** * Enable best effort provisioning for nodes */ bestEffortProvisioning: outputs.container.v1.BestEffortProvisioningResponse; /** * Which conditions caused the current node pool state. */ conditions: outputs.container.v1.StatusConditionResponse[]; /** * The node configuration of the pool. */ config: outputs.container.v1.NodeConfigResponse; /** * This checksum is computed by the server based on the value of node pool fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding. */ etag: string; /** * The initial node count for the pool. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. */ initialNodeCount: number; /** * [Output only] The resource URLs of the [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with this node pool. During the node pool blue-green upgrade operation, the URLs contain both blue and green resources. */ instanceGroupUrls: string[]; /** * The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool's nodes should be located. If this value is unspecified during node pool creation, the [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations) value will be used, instead. Warning: changing node pool locations will result in nodes being added and/or removed. */ locations: string[]; /** * NodeManagement configuration for this NodePool. */ management: outputs.container.v1.NodeManagementResponse; /** * The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool. */ maxPodsConstraint: outputs.container.v1.MaxPodsConstraintResponse; /** * The name of the node pool. */ name: string; /** * Networking configuration for this NodePool. If specified, it overrides the cluster-level defaults. */ networkConfig: outputs.container.v1.NodeNetworkConfigResponse; /** * Specifies the node placement policy. */ placementPolicy: outputs.container.v1.PlacementPolicyResponse; /** * [Output only] The pod CIDR block size per node in this node pool. */ podIpv4CidrSize: number; /** * Specifies the configuration of queued provisioning. */ queuedProvisioning: outputs.container.v1.QueuedProvisioningResponse; /** * [Output only] Server-defined URL for the resource. */ selfLink: string; /** * [Output only] The status of the nodes in this pool instance. */ status: string; /** * [Output only] Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available. * * @deprecated [Output only] Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available. */ statusMessage: string; /** * [Output only] Update info contains relevant information during a node pool update. */ updateInfo: outputs.container.v1.UpdateInfoResponse; /** * Upgrade settings control disruption and speed of the upgrade. */ upgradeSettings: outputs.container.v1.UpgradeSettingsResponse; /** * The version of Kubernetes running on this NodePool's nodes. If unspecified, it defaults as described [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version). */ version: string; } /** * Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values. */ interface NodeTaintResponse { /** * Effect for taint. */ effect: string; /** * Key for taint. */ key: string; /** * Value for taint. */ value: string; } /** * NotificationConfig is the configuration of notifications. */ interface NotificationConfigResponse { /** * Notification config for Pub/Sub. */ pubsub: outputs.container.v1.PubSubResponse; } /** * ParentProductConfig is the configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of a GKE cluster and take the ownership of the cluster. */ interface ParentProductConfigResponse { /** * Labels contain the configuration of the parent product. */ labels: { [key: string]: string; }; /** * Name of the parent product associated with the cluster. */ productName: string; } /** * PlacementPolicy defines the placement policy used by the node pool. */ interface PlacementPolicyResponse { /** * If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned. */ policyName: string; /** * Optional. TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies */ tpuTopology: string; /** * The type of placement. */ type: string; } /** * [PRIVATE FIELD] Config for pod CIDR size overprovisioning. */ interface PodCIDROverprovisionConfigResponse { /** * Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default. */ disable: boolean; } /** * Configuration options for private clusters. */ interface PrivateClusterConfigResponse { /** * Whether the master's internal IP address is used as the cluster endpoint. */ enablePrivateEndpoint: boolean; /** * Whether nodes have internal IP addresses only. If enabled, all nodes are given only RFC 1918 private addresses and communicate with the master via private networking. */ enablePrivateNodes: boolean; /** * Controls master global access settings. */ masterGlobalAccessConfig: outputs.container.v1.PrivateClusterMasterGlobalAccessConfigResponse; /** * The IP range in CIDR notation to use for the hosted master network. This range will be used for assigning internal IP addresses to the master or set of masters, as well as the ILB VIP. This range must not overlap with any other ranges in use within the cluster's network. */ masterIpv4CidrBlock: string; /** * The peering name in the customer VPC used by this cluster. */ peeringName: string; /** * The internal IP address of this cluster's master endpoint. */ privateEndpoint: string; /** * Subnet to provision the master's private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. */ privateEndpointSubnetwork: string; /** * The external IP address of this cluster's master endpoint. */ publicEndpoint: string; } /** * Configuration for controlling master global access settings. */ interface PrivateClusterMasterGlobalAccessConfigResponse { /** * Whenever master is accessible globally or not. */ enabled: boolean; } /** * Pub/Sub specific notification config. */ interface PubSubResponse { /** * Enable notifications for Pub/Sub. */ enabled: boolean; /** * Allows filtering to one or more specific event types. If no filter is specified, or if a filter is specified with no event types, all event types will be sent */ filter: outputs.container.v1.FilterResponse; /** * The desired Pub/Sub topic to which notifications will be sent by GKE. Format is `projects/{project}/topics/{topic}`. */ topic: string; } /** * QueuedProvisioning defines the queued provisioning used by the node pool. */ interface QueuedProvisioningResponse { /** * Denotes that this nodepool is QRM specific, meaning nodes can be only obtained through queuing via the Cluster Autoscaler ProvisioningRequest API. */ enabled: boolean; } /** * RangeInfo contains the range name and the range utilization by this cluster. */ interface RangeInfoResponse { /** * [Output only] Name of a range. */ rangeName: string; /** * [Output only] The utilization of the range. */ utilization: number; } /** * Represents an arbitrary window of time that recurs. */ interface RecurringTimeWindowResponse { /** * An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how this window reccurs. They go on for the span of time between the start and end time. For example, to have something repeat every weekday, you'd use: `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` To repeat some window daily (equivalent to the DailyMaintenanceWindow): `FREQ=DAILY` For the first weekend of every month: `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU` This specifies how frequently the window starts. Eg, if you wanted to have a 9-5 UTC-4 window every weekday, you'd use something like: ``` start time = 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ``` Windows can span multiple days. Eg, to make the window encompass every weekend from midnight Saturday till the last minute of Sunday UTC: ``` start time = 2019-01-05T00:00:00Z end time = 2019-01-07T23:59:00Z recurrence = FREQ=WEEKLY;BYDAY=SA ``` Note the start and end time's specific dates are largely arbitrary except to specify duration of the window and when it first starts. The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported. */ recurrence: string; /** * The window of the first recurrence. */ window: outputs.container.v1.TimeWindowResponse; } /** * ReleaseChannelConfig exposes configuration for a release channel. */ interface ReleaseChannelConfigResponse { /** * The release channel this configuration applies to. */ channel: string; /** * The default version for newly created clusters on the channel. */ defaultVersion: string; /** * List of valid versions for the channel. */ validVersions: string[]; } /** * ReleaseChannel indicates which release channel a cluster is subscribed to. Release channels are arranged in order of risk. When a cluster is subscribed to a release channel, Google maintains both the master version and the node version. Node auto-upgrade defaults to true and cannot be disabled. */ interface ReleaseChannelResponse { /** * channel specifies which release channel the cluster is subscribed to. */ channel: string; } /** * [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) is the configuration of desired reservation which instances could take capacity from. */ interface ReservationAffinityResponse { /** * Corresponds to the type of reservation consumption. */ consumeReservationType: string; /** * Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify "compute.googleapis.com/reservation-name" as the key and specify the name of your reservation as its value. */ key: string; /** * Corresponds to the label value(s) of reservation resource(s). */ values: string[]; } /** * Contains information about amount of some resource in the cluster. For memory, value should be in GB. */ interface ResourceLimitResponse { /** * Maximum amount of the resource in the cluster. */ maximum: string; /** * Minimum amount of the resource in the cluster. */ minimum: string; /** * Resource name "cpu", "memory" or gpu-specific string. */ resourceType: string; } /** * A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. */ interface ResourceManagerTagsResponse { /** * TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}` */ tags: { [key: string]: string; }; } /** * Configuration for exporting cluster resource usages. */ interface ResourceUsageExportConfigResponse { /** * Configuration to use BigQuery as usage export destination. */ bigqueryDestination: outputs.container.v1.BigQueryDestinationResponse; /** * Configuration to enable resource consumption metering. */ consumptionMeteringConfig: outputs.container.v1.ConsumptionMeteringConfigResponse; /** * Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic. */ enableNetworkEgressMetering: boolean; } /** * SandboxConfig contains configurations of the sandbox to use for the node. */ interface SandboxConfigResponse { /** * Type of the sandbox to use for the node. */ type: string; } /** * SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API. */ interface SecurityPostureConfigResponse { /** * Sets which mode to use for Security Posture features. */ mode: string; /** * Sets which mode to use for vulnerability scanning. */ vulnerabilityMode: string; } /** * Config to block services with externalIPs field. */ interface ServiceExternalIPsConfigResponse { /** * Whether Services with ExternalIPs field are allowed or not. */ enabled: boolean; } /** * A set of Shielded Instance options. */ interface ShieldedInstanceConfigResponse { /** * Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. */ enableIntegrityMonitoring: boolean; /** * Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. */ enableSecureBoot: boolean; } /** * Configuration of Shielded Nodes feature. */ interface ShieldedNodesResponse { /** * Whether Shielded Nodes features are enabled on all nodes in this cluster. */ enabled: boolean; } /** * SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool. */ interface SoleTenantConfigResponse { /** * NodeAffinities used to match to a shared sole tenant node group. */ nodeAffinities: outputs.container.v1.NodeAffinityResponse[]; } /** * Standard rollout policy is the default policy for blue-green. */ interface StandardRolloutPolicyResponse { /** * Number of blue nodes to drain in a batch. */ batchNodeCount: number; /** * Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0]. */ batchPercentage: number; /** * Soak time after each batch gets drained. Default to zero. */ batchSoakDuration: string; } /** * StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED). */ interface StatusConditionResponse { /** * Canonical code of the condition. */ canonicalCode: string; /** * Machine-friendly representation of the condition Deprecated. Use canonical_code instead. * * @deprecated Machine-friendly representation of the condition Deprecated. Use canonical_code instead. */ code: string; /** * Human-friendly representation of the condition */ message: string; } /** * Represents an arbitrary window of time. */ interface TimeWindowResponse { /** * The time that the window ends. The end time should take place after the start time. */ endTime: string; /** * MaintenanceExclusionOptions provides maintenance exclusion related options. */ maintenanceExclusionOptions: outputs.container.v1.MaintenanceExclusionOptionsResponse; /** * The time that the window first starts. */ startTime: string; } /** * UpdateInfo contains resource (instance groups, etc), status and other intermediate information relevant to a node pool upgrade. */ interface UpdateInfoResponse { /** * Information of a blue-green upgrade. */ blueGreenInfo: outputs.container.v1.BlueGreenInfoResponse; } /** * These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted. */ interface UpgradeSettingsResponse { /** * Settings for blue-green upgrade strategy. */ blueGreenSettings: outputs.container.v1.BlueGreenSettingsResponse; /** * The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process. */ maxSurge: number; /** * The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready. */ maxUnavailable: number; /** * Update strategy of the node pool. */ strategy: string; } /** * VerticalPodAutoscaling contains global, per-cluster information required by Vertical Pod Autoscaler to automatically adjust the resources of pods controlled by it. */ interface VerticalPodAutoscalingResponse { /** * Enables vertical pod autoscaling. */ enabled: boolean; } /** * Configuration of gVNIC feature. */ interface VirtualNICResponse { /** * Whether gVNIC features are enabled in the node pool. */ enabled: boolean; } /** * Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings */ interface WindowsNodeConfigResponse { /** * OSVersion specifies the Windows node config to be used on the node */ osVersion: string; } /** * Configuration for the use of Kubernetes Service Accounts in GCP IAM policies. */ interface WorkloadIdentityConfigResponse { /** * The workload pool to attach all Kubernetes service accounts to. */ workloadPool: string; } /** * WorkloadMetadataConfig defines the metadata configuration to expose to workloads on the node pool. */ interface WorkloadMetadataConfigResponse { /** * Mode is the configuration for how to expose metadata to workloads running on the node pool. */ mode: string; } /** * WorkloadPolicyConfig is the configuration of workload policy for autopilot clusters. */ interface WorkloadPolicyConfigResponse { /** * If true, workloads can use NET_ADMIN capability. */ allowNetAdmin: boolean; } } namespace v1beta1 { /** * AcceleratorConfig represents a Hardware Accelerator request. */ interface AcceleratorConfigResponse { /** * The number of the accelerator cards exposed to an instance. */ acceleratorCount: string; /** * The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus) */ acceleratorType: string; /** * The configuration for auto installation of GPU driver. */ gpuDriverInstallationConfig: outputs.container.v1beta1.GPUDriverInstallationConfigResponse; /** * Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning). */ gpuPartitionSize: string; /** * The configuration for GPU sharing options. */ gpuSharingConfig: outputs.container.v1beta1.GPUSharingConfigResponse; /** * The number of time-shared GPU resources to expose for each physical GPU. */ maxTimeSharedClientsPerGpu: string; } /** * AdditionalNodeNetworkConfig is the configuration for additional node networks within the NodeNetworkConfig message */ interface AdditionalNodeNetworkConfigResponse { /** * Name of the VPC where the additional interface belongs */ network: string; /** * Name of the subnetwork where the additional interface belongs */ subnetwork: string; } /** * AdditionalPodNetworkConfig is the configuration for additional pod networks within the NodeNetworkConfig message */ interface AdditionalPodNetworkConfigResponse { /** * The maximum number of pods per node which use this pod network */ maxPodsPerNode: outputs.container.v1beta1.MaxPodsConstraintResponse; /** * The name of the secondary range on the subnet which provides IP address for this pod range */ secondaryPodRange: string; /** * Name of the subnetwork where the additional pod network belongs */ subnetwork: string; } /** * AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message. */ interface AdditionalPodRangesConfigResponse { /** * [Output only] Information for additional pod range. */ podRangeInfo: outputs.container.v1beta1.RangeInfoResponse[]; /** * Name for pod secondary ipv4 range which has the actual range defined ahead. */ podRangeNames: string[]; } /** * Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. */ interface AddonsConfigResponse { /** * Configuration for the Cloud Run addon. The `IstioConfig` addon must be enabled in order to enable Cloud Run addon. This option can only be enabled at cluster creation time. */ cloudRunConfig: outputs.container.v1beta1.CloudRunConfigResponse; /** * Configuration for the ConfigConnector add-on, a Kubernetes extension to manage hosted GCP services through the Kubernetes API */ configConnectorConfig: outputs.container.v1beta1.ConfigConnectorConfigResponse; /** * Configuration for NodeLocalDNS, a dns cache running on cluster nodes */ dnsCacheConfig: outputs.container.v1beta1.DnsCacheConfigResponse; /** * Configuration for the Compute Engine Persistent Disk CSI driver. */ gcePersistentDiskCsiDriverConfig: outputs.container.v1beta1.GcePersistentDiskCsiDriverConfigResponse; /** * Configuration for the GCP Filestore CSI driver. */ gcpFilestoreCsiDriverConfig: outputs.container.v1beta1.GcpFilestoreCsiDriverConfigResponse; /** * Configuration for the Cloud Storage Fuse CSI driver. */ gcsFuseCsiDriverConfig: outputs.container.v1beta1.GcsFuseCsiDriverConfigResponse; /** * Configuration for the Backup for GKE agent addon. */ gkeBackupAgentConfig: outputs.container.v1beta1.GkeBackupAgentConfigResponse; /** * Configuration for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. */ horizontalPodAutoscaling: outputs.container.v1beta1.HorizontalPodAutoscalingResponse; /** * Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. */ httpLoadBalancing: outputs.container.v1beta1.HttpLoadBalancingResponse; /** * Configuration for Istio, an open platform to connect, manage, and secure microservices. */ istioConfig: outputs.container.v1beta1.IstioConfigResponse; /** * Configuration for the KALM addon, which manages the lifecycle of k8s applications. */ kalmConfig: outputs.container.v1beta1.KalmConfigResponse; /** * Configuration for the Kubernetes Dashboard. This addon is deprecated, and will be disabled in 1.15. It is recommended to use the Cloud Console to manage and monitor your Kubernetes clusters, workloads and applications. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards */ kubernetesDashboard: outputs.container.v1beta1.KubernetesDashboardResponse; /** * Configuration for NetworkPolicy. This only tracks whether the addon is enabled or not on the Master, it does not track whether network policy is enabled for the nodes. */ networkPolicyConfig: outputs.container.v1beta1.NetworkPolicyConfigResponse; } /** * AdvancedDatapathObservabilityConfig specifies configuration of observability features of advanced datapath. */ interface AdvancedDatapathObservabilityConfigResponse { /** * Expose flow metrics on nodes */ enableMetrics: boolean; /** * Method used to make Relay available */ relayMode: string; } /** * Specifies options for controlling advanced machine features. */ interface AdvancedMachineFeaturesResponse { /** * The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. */ threadsPerCore: string; } /** * Configuration for returning group information from authenticators. */ interface AuthenticatorGroupsConfigResponse { /** * Whether this cluster should return group membership lookups during authentication using a group of security groups. */ enabled: boolean; /** * The name of the security group-of-groups to be used. Only relevant if enabled = true. */ securityGroup: string; } /** * AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. */ interface AutoUpgradeOptionsResponse { /** * [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. */ autoUpgradeStartTime: string; /** * [Output only] This field is set when upgrades are about to commence with the description of the upgrade. */ description: string; } /** * AutopilotConversionStatus represents conversion status. */ interface AutopilotConversionStatusResponse { /** * The current state of the conversion. */ state: string; } /** * Autopilot is the configuration for Autopilot settings on the cluster. */ interface AutopilotResponse { /** * ConversionStatus shows conversion status. */ conversionStatus: outputs.container.v1beta1.AutopilotConversionStatusResponse; /** * Enable Autopilot */ enabled: boolean; /** * Workload policy configuration for Autopilot. */ workloadPolicyConfig: outputs.container.v1beta1.WorkloadPolicyConfigResponse; } /** * AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP. */ interface AutoprovisioningNodePoolDefaultsResponse { /** * The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption */ bootDiskKmsKey: string; /** * Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB. */ diskSizeGb: number; /** * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is 'pd-standard' */ diskType: string; /** * The image type to use for NAP created node. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types. */ imageType: string; /** * Enable or disable Kubelet read only port. */ insecureKubeletReadonlyPortEnabled: boolean; /** * NodeManagement configuration for this NodePool. */ management: outputs.container.v1beta1.NodeManagementResponse; /** * Deprecated. Minimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass "automatic" as field value. * * @deprecated Deprecated. Minimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass "automatic" as field value. */ minCpuPlatform: string; /** * The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](https://cloud.google.com/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added. */ oauthScopes: string[]; /** * The Google Cloud Platform Service Account to be used by the node VMs. Specify the email address of the Service Account; otherwise, if no Service Account is specified, the "default" service account is used. */ serviceAccount: string; /** * Shielded Instance options. */ shieldedInstanceConfig: outputs.container.v1beta1.ShieldedInstanceConfigResponse; /** * Upgrade settings control disruption and speed of the upgrade. */ upgradeSettings: outputs.container.v1beta1.UpgradeSettingsResponse; } /** * Deprecated. */ interface AvailableVersionResponse { /** * Reason for availability. */ reason: string; /** * Kubernetes version. */ version: string; } /** * Best effort provisioning. */ interface BestEffortProvisioningResponse { /** * When this is enabled, cluster/node pool creations will ignore non-fatal errors like stockout to best provision as many nodes as possible right now and eventually bring up all target number of nodes */ enabled: boolean; /** * Minimum number of nodes to be provisioned to be considered as succeeded, and the rest of nodes will be provisioned gradually and eventually when stockout issue has been resolved. */ minProvisionNodes: number; } /** * Parameters for using BigQuery as the destination of resource usage export. */ interface BigQueryDestinationResponse { /** * The ID of a BigQuery Dataset. */ datasetId: string; } /** * Configuration for Binary Authorization. */ interface BinaryAuthorizationResponse { /** * This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored. * * @deprecated This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored. */ enabled: boolean; /** * Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED. */ evaluationMode: string; /** * Optional. Binauthz policies that apply to this cluster. */ policyBindings: outputs.container.v1beta1.PolicyBindingResponse[]; } /** * Information relevant to blue-green upgrade. */ interface BlueGreenInfoResponse { /** * The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with blue pool. */ blueInstanceGroupUrls: string[]; /** * Time to start deleting blue pool to complete blue-green upgrade, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. */ bluePoolDeletionStartTime: string; /** * The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with green pool. */ greenInstanceGroupUrls: string[]; /** * Version of green pool. */ greenPoolVersion: string; /** * Current blue-green upgrade phase. */ phase: string; } /** * Settings for blue-green upgrade. */ interface BlueGreenSettingsResponse { /** * Time needed after draining entire blue pool. After this period, blue pool will be cleaned up. */ nodePoolSoakDuration: string; /** * Standard policy for the blue-green upgrade. */ standardRolloutPolicy: outputs.container.v1beta1.StandardRolloutPolicyResponse; } /** * CidrBlock contains an optional name and one CIDR block. */ interface CidrBlockResponse { /** * cidr_block must be specified in CIDR notation. */ cidrBlock: string; /** * display_name is an optional field for users to identify CIDR blocks. */ displayName: string; } /** * Configuration for client certificates on the cluster. */ interface ClientCertificateConfigResponse { /** * Issue a client certificate. */ issueClientCertificate: boolean; } /** * Configuration options for the Cloud Run feature. */ interface CloudRunConfigResponse { /** * Whether Cloud Run addon is enabled for this cluster. */ disabled: boolean; /** * Which load balancer type is installed for Cloud Run. */ loadBalancerType: string; } /** * ClusterAutoscaling contains global, per-cluster information required by Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs. */ interface ClusterAutoscalingResponse { /** * The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool's nodes can be created by NAP. */ autoprovisioningLocations: string[]; /** * AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP. */ autoprovisioningNodePoolDefaults: outputs.container.v1beta1.AutoprovisioningNodePoolDefaultsResponse; /** * Defines autoscaling behaviour. */ autoscalingProfile: string; /** * Enables automatic node pool creation and deletion. */ enableNodeAutoprovisioning: boolean; /** * Contains global constraints regarding minimum and maximum amount of resources in the cluster. */ resourceLimits: outputs.container.v1beta1.ResourceLimitResponse[]; } /** * Configuration of all network bandwidth tiers */ interface ClusterNetworkPerformanceConfigResponse { /** * Specifies the total network bandwidth tier for the NodePool. */ totalEgressBandwidthTier: string; } /** * Telemetry integration for the cluster. */ interface ClusterTelemetryResponse { /** * Type of the integration. */ type: string; } /** * ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. */ interface ConfidentialNodesResponse { /** * Whether Confidential Nodes feature is enabled. */ enabled: boolean; } /** * Configuration options for the Config Connector add-on. */ interface ConfigConnectorConfigResponse { /** * Whether Cloud Connector is enabled for this cluster. */ enabled: boolean; } /** * Parameters for controlling consumption metering. */ interface ConsumptionMeteringConfigResponse { /** * Whether to enable consumption metering for this cluster. If enabled, a second BigQuery table will be created to hold resource consumption records. */ enabled: boolean; } /** * Configuration for fine-grained cost management feature. */ interface CostManagementConfigResponse { /** * Whether the feature is enabled or not. */ enabled: boolean; } /** * DNSConfig contains the desired set of options for configuring clusterDNS. */ interface DNSConfigResponse { /** * cluster_dns indicates which in-cluster DNS provider should be used. */ clusterDns: string; /** * cluster_dns_domain is the suffix used for all cluster service records. */ clusterDnsDomain: string; /** * cluster_dns_scope indicates the scope of access to cluster DNS records. */ clusterDnsScope: string; } /** * Time window specified for daily maintenance operations. */ interface DailyMaintenanceWindowResponse { /** * [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. */ duration: string; /** * Time within the maintenance window to start the maintenance operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-59] GMT. */ startTime: string; } /** * Configuration of etcd encryption. */ interface DatabaseEncryptionResponse { /** * Name of CloudKMS key to use for the encryption of secrets in etcd. Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key */ keyName: string; /** * The desired state of etcd encryption. */ state: string; } /** * DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster. */ interface DefaultSnatStatusResponse { /** * Disables cluster default sNAT rules. */ disabled: boolean; } /** * Configuration for NodeLocal DNSCache */ interface DnsCacheConfigResponse { /** * Whether NodeLocal DNSCache is enabled for this cluster. */ enabled: boolean; } /** * EnterpriseConfig is the cluster enterprise configuration. */ interface EnterpriseConfigResponse { /** * [Output only] cluster_tier specifies the premium tier of the cluster. */ clusterTier: string; } /** * EphemeralStorageConfig contains configuration for the ephemeral storage filesystem. */ interface EphemeralStorageConfigResponse { /** * Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info. */ localSsdCount: number; } /** * EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSDs. */ interface EphemeralStorageLocalSsdConfigResponse { /** * Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info. */ localSsdCount: number; } /** * Configuration of Fast Socket feature. */ interface FastSocketResponse { /** * Whether Fast Socket features are enabled in the node pool. */ enabled: boolean; } /** * Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent */ interface FilterResponse { /** * Event types to allowlist. */ eventType: string[]; } /** * Fleet is the fleet configuration for the cluster. */ interface FleetResponse { /** * [Output only] The full resource name of the registered fleet membership of the cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`. */ membership: string; /** * [Output only] Whether the cluster has been registered through the fleet API. */ preRegistered: boolean; /** * The Fleet host project(project ID or project number) where this cluster will be registered to. This field cannot be changed after the cluster has been registered. */ project: string; } /** * GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed. */ interface GPUDriverInstallationConfigResponse { /** * Mode for how the GPU driver is installed. */ gpuDriverVersion: string; } /** * GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators. */ interface GPUSharingConfigResponse { /** * The type of GPU sharing strategy to enable on the GPU node. */ gpuSharingStrategy: string; /** * The max number of containers that can share a physical GPU. */ maxSharedClientsPerGpu: string; } /** * GatewayAPIConfig contains the desired config of Gateway API on this cluster. */ interface GatewayAPIConfigResponse { /** * The Gateway API release channel to use for Gateway API. */ channel: string; } /** * Configuration for the Compute Engine PD CSI driver. */ interface GcePersistentDiskCsiDriverConfigResponse { /** * Whether the Compute Engine PD CSI driver is enabled for this cluster. */ enabled: boolean; } /** * GcfsConfig contains configurations of Google Container File System. */ interface GcfsConfigResponse { /** * Whether to use GCFS. */ enabled: boolean; } /** * Configuration for the GCP Filestore CSI driver. */ interface GcpFilestoreCsiDriverConfigResponse { /** * Whether the GCP Filestore CSI driver is enabled for this cluster. */ enabled: boolean; } /** * Configuration for the Cloud Storage Fuse CSI driver. */ interface GcsFuseCsiDriverConfigResponse { /** * Whether the Cloud Storage Fuse CSI driver is enabled for this cluster. */ enabled: boolean; } /** * Configuration for the Backup for GKE Agent. */ interface GkeBackupAgentConfigResponse { /** * Whether the Backup for GKE agent is enabled for this cluster. */ enabled: boolean; } /** * Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. */ interface HorizontalPodAutoscalingResponse { /** * Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that metrics are collected into Stackdriver Monitoring. */ disabled: boolean; } /** * HostMaintenancePolicy contains the maintenance policy for the hosts on which the GKE VMs run on. */ interface HostMaintenancePolicyResponse { /** * Specifies the frequency of planned maintenance events. */ maintenanceInterval: string; /** * Strategy that will trigger maintenance on behalf of the customer. */ opportunisticMaintenanceStrategy: outputs.container.v1beta1.OpportunisticMaintenanceStrategyResponse; } /** * Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. */ interface HttpLoadBalancingResponse { /** * Whether the HTTP Load Balancing controller is enabled in the cluster. When enabled, it runs a small pod in the cluster that manages the load balancers. */ disabled: boolean; } /** * Configuration for controlling how IPs are allocated in the cluster. */ interface IPAllocationPolicyResponse { /** * [Output only] The additional pod ranges that are added to the cluster. These pod ranges can be used by new node pools to allocate pod IPs automatically. Once the range is removed it will not show up in IPAllocationPolicy. */ additionalPodRangesConfig: outputs.container.v1beta1.AdditionalPodRangesConfigResponse; /** * If true, allow allocation of cluster CIDR ranges that overlap with certain kinds of network routes. By default we do not allow cluster CIDR ranges to intersect with any user declared routes. With allow_route_overlap == true, we allow overlapping with CIDR ranges that are larger than the cluster CIDR range. If this field is set to true, then cluster and services CIDRs must be fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means: 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and `services_ipv4_cidr_block` must be fully-specified. 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be fully-specified. */ allowRouteOverlap: boolean; /** * This field is deprecated, use cluster_ipv4_cidr_block. * * @deprecated This field is deprecated, use cluster_ipv4_cidr_block. */ clusterIpv4Cidr: string; /** * The IP address range for the cluster pod IPs. If this field is set, then `cluster.cluster_ipv4_cidr` must be left blank. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. */ clusterIpv4CidrBlock: string; /** * The name of the secondary range to be used for the cluster CIDR block. The secondary range will be used for pod IP addresses. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases and create_subnetwork is false. */ clusterSecondaryRangeName: string; /** * Whether a new subnetwork will be created automatically for the cluster. This field is only applicable when `use_ip_aliases` is true. */ createSubnetwork: boolean; /** * [Output only] The utilization of the cluster default IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode. */ defaultPodIpv4RangeUtilization: number; /** * The ipv6 access type (internal or external) when create_subnetwork is true */ ipv6AccessType: string; /** * This field is deprecated, use node_ipv4_cidr_block. * * @deprecated This field is deprecated, use node_ipv4_cidr_block. */ nodeIpv4Cidr: string; /** * The IP address range of the instance IPs in this cluster. This is applicable only if `create_subnetwork` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. */ nodeIpv4CidrBlock: string; /** * [PRIVATE FIELD] Pod CIDR size overprovisioning config for the cluster. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is doubled and then rounded off to next power of 2 to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled. */ podCidrOverprovisionConfig: outputs.container.v1beta1.PodCIDROverprovisionConfigResponse; /** * This field is deprecated, use services_ipv4_cidr_block. * * @deprecated This field is deprecated, use services_ipv4_cidr_block. */ servicesIpv4Cidr: string; /** * The IP address range of the services IPs in this cluster. If blank, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. */ servicesIpv4CidrBlock: string; /** * [Output only] The services IPv6 CIDR block for the cluster. */ servicesIpv6CidrBlock: string; /** * The name of the secondary range to be used as for the services CIDR block. The secondary range will be used for service ClusterIPs. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases and create_subnetwork is false. */ servicesSecondaryRangeName: string; /** * IP stack type */ stackType: string; /** * [Output only] The subnet's IPv6 CIDR block used by nodes and pods. */ subnetIpv6CidrBlock: string; /** * A custom subnetwork name to be used if `create_subnetwork` is true. If this field is empty, then an automatic name will be chosen for the new subnetwork. */ subnetworkName: string; /** * The IP address range of the Cloud TPUs in this cluster. If unspecified, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. If unspecified, the range will use the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. This field is deprecated, use cluster.tpu_config.ipv4_cidr_block instead. * * @deprecated The IP address range of the Cloud TPUs in this cluster. If unspecified, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. If unspecified, the range will use the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. This field is deprecated, use cluster.tpu_config.ipv4_cidr_block instead. */ tpuIpv4CidrBlock: string; /** * Whether alias IPs will be used for pod IPs in the cluster. This is used in conjunction with use_routes. It cannot be true if use_routes is true. If both use_ip_aliases and use_routes are false, then the server picks the default IP allocation mode */ useIpAliases: boolean; /** * Whether routes will be used for pod IPs in the cluster. This is used in conjunction with use_ip_aliases. It cannot be true if use_ip_aliases is true. If both use_ip_aliases and use_routes are false, then the server picks the default IP allocation mode */ useRoutes: boolean; } /** * IdentityServiceConfig is configuration for Identity Service which allows customers to use external identity providers with the K8S API */ interface IdentityServiceConfigResponse { /** * Whether to enable the Identity Service component */ enabled: boolean; } /** * Configuration options for Istio addon. */ interface IstioConfigResponse { /** * The specified Istio auth mode, either none, or mutual TLS. */ auth: string; /** * Whether Istio is enabled for this cluster. */ disabled: boolean; } /** * Kubernetes open source beta apis enabled on the cluster. */ interface K8sBetaAPIConfigResponse { /** * api name, e.g. storage.k8s.io/v1beta1/csistoragecapacities. */ enabledApis: string[]; } /** * Configuration options for the KALM addon. */ interface KalmConfigResponse { /** * Whether KALM is enabled for this cluster. */ enabled: boolean; } /** * Configuration for the Kubernetes Dashboard. */ interface KubernetesDashboardResponse { /** * Whether the Kubernetes Dashboard is enabled for this cluster. */ disabled: boolean; } /** * Configuration for the legacy Attribute Based Access Control authorization mode. */ interface LegacyAbacResponse { /** * Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. */ enabled: boolean; } /** * Parameters that can be configured on Linux nodes. */ interface LinuxNodeConfigResponse { /** * cgroup_mode specifies the cgroup mode to be used on the node. */ cgroupMode: string; /** * The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_tw_reuse */ sysctls: { [key: string]: string; }; } /** * LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSDs */ interface LocalNvmeSsdBlockConfigResponse { /** * Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info. */ localSsdCount: number; } /** * LoggingComponentConfig is cluster logging component configuration. */ interface LoggingComponentConfigResponse { /** * Select components to collect logs. An empty set would disable all logging. */ enableComponents: string[]; } /** * LoggingConfig is cluster logging configuration. */ interface LoggingConfigResponse { /** * Logging components configuration */ componentConfig: outputs.container.v1beta1.LoggingComponentConfigResponse; } /** * LoggingVariantConfig specifies the behaviour of the logging component. */ interface LoggingVariantConfigResponse { /** * Logging variant deployed on nodes. */ variant: string; } /** * Represents the Maintenance exclusion option. */ interface MaintenanceExclusionOptionsResponse { /** * Scope specifies the upgrade scope which upgrades are blocked by the exclusion. */ scope: string; } /** * MaintenancePolicy defines the maintenance policy to be used for the cluster. */ interface MaintenancePolicyResponse { /** * A hash identifying the version of this policy, so that updates to fields of the policy won't accidentally undo intermediate changes (and so that users of the API unaware of some fields won't accidentally remove other fields). Make a `get()` request to the cluster to get the current resource version and include it with requests to set the policy. */ resourceVersion: string; /** * Specifies the maintenance window in which maintenance may be performed. */ window: outputs.container.v1beta1.MaintenanceWindowResponse; } /** * MaintenanceWindow defines the maintenance window to be used for the cluster. */ interface MaintenanceWindowResponse { /** * DailyMaintenanceWindow specifies a daily maintenance operation window. */ dailyMaintenanceWindow: outputs.container.v1beta1.DailyMaintenanceWindowResponse; /** * Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows. */ maintenanceExclusions: { [key: string]: string; }; /** * RecurringWindow specifies some number of recurring time periods for maintenance to occur. The time windows may be overlapping. If no maintenance windows are set, maintenance can occur at any time. */ recurringWindow: outputs.container.v1beta1.RecurringTimeWindowResponse; } /** * ManagedPrometheusConfig defines the configuration for Google Cloud Managed Service for Prometheus. */ interface ManagedPrometheusConfigResponse { /** * Enable Managed Collection. */ enabled: boolean; } /** * The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates. */ interface MasterAuthResponse { /** * [Output only] Base64-encoded public certificate used by clients to authenticate to the cluster endpoint. */ clientCertificate: string; /** * Configuration for client certificate authentication on the cluster. For clusters before v1.12, if no configuration is specified, a client certificate is issued. */ clientCertificateConfig: outputs.container.v1beta1.ClientCertificateConfigResponse; /** * [Output only] Base64-encoded private key used by clients to authenticate to the cluster endpoint. */ clientKey: string; clusterCaCertificate: string; /** * The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password. If a password is provided for cluster creation, username must be non-empty. Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication */ password: string; /** * The username to use for HTTP basic authentication to the master endpoint. For clusters v1.6.0 and later, basic authentication can be disabled by leaving username unspecified (or setting it to the empty string). Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication */ username: string; } /** * Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. */ interface MasterAuthorizedNetworksConfigResponse { /** * cidr_blocks define up to 10 external networks that could access Kubernetes master through HTTPS. */ cidrBlocks: outputs.container.v1beta1.CidrBlockResponse[]; /** * Whether or not master authorized networks is enabled. */ enabled: boolean; /** * Whether master is accessbile via Google Compute Engine Public IP addresses. */ gcpPublicCidrsAccessEnabled: boolean; } /** * Master is the configuration for components on master. */ interface MasterResponse { } /** * Constraints applied to pods. */ interface MaxPodsConstraintResponse { /** * Constraint enforced on the max num of pods per node. */ maxPodsPerNode: string; } /** * Configuration for issuance of mTLS keys and certificates to Kubernetes pods. */ interface MeshCertificatesResponse { /** * enable_certificates controls issuance of workload mTLS certificates. If set, the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster, which can then be configured by creating a WorkloadCertificateConfig Custom Resource. Requires Workload Identity (workload_pool must be non-empty). */ enableCertificates: boolean; } /** * MonitoringComponentConfig is cluster monitoring component configuration. */ interface MonitoringComponentConfigResponse { /** * Select components to collect metrics. An empty set would disable all monitoring. */ enableComponents: string[]; } /** * MonitoringConfig is cluster monitoring configuration. */ interface MonitoringConfigResponse { /** * Configuration of Advanced Datapath Observability features. */ advancedDatapathObservabilityConfig: outputs.container.v1beta1.AdvancedDatapathObservabilityConfigResponse; /** * Monitoring components configuration */ componentConfig: outputs.container.v1beta1.MonitoringComponentConfigResponse; /** * Enable Google Cloud Managed Service for Prometheus in the cluster. */ managedPrometheusConfig: outputs.container.v1beta1.ManagedPrometheusConfigResponse; } /** * NetworkConfig reports the relative names of network & subnetwork. */ interface NetworkConfigResponse { /** * The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation. */ datapathProvider: string; /** * Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when default_snat_status is disabled. When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic. */ defaultSnatStatus: outputs.container.v1beta1.DefaultSnatStatusResponse; /** * DNSConfig contains clusterDNS config for this cluster. */ dnsConfig: outputs.container.v1beta1.DNSConfigResponse; /** * Whether FQDN Network Policy is enabled on this cluster. */ enableFqdnNetworkPolicy: boolean; /** * Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network. */ enableIntraNodeVisibility: boolean; /** * Whether L4ILB Subsetting is enabled for this cluster. */ enableL4ilbSubsetting: boolean; /** * Whether multi-networking is enabled for this cluster. */ enableMultiNetworking: boolean; /** * GatewayAPIConfig contains the desired config of Gateway API on this cluster. */ gatewayApiConfig: outputs.container.v1beta1.GatewayAPIConfigResponse; /** * Specify the details of in-transit encryption. */ inTransitEncryptionConfig: string; /** * The relative name of the Google Compute Engine network(https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. Example: projects/my-project/global/networks/my-network */ network: string; /** * Network bandwidth tier configuration. */ networkPerformanceConfig: outputs.container.v1beta1.ClusterNetworkPerformanceConfigResponse; /** * The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4) */ privateIpv6GoogleAccess: string; /** * ServiceExternalIPsConfig specifies if services with externalIPs field are blocked or not. */ serviceExternalIpsConfig: outputs.container.v1beta1.ServiceExternalIPsConfigResponse; /** * The relative name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the cluster is connected. Example: projects/my-project/regions/us-central1/subnetworks/my-subnet */ subnetwork: string; } /** * Configuration of all network bandwidth tiers */ interface NetworkPerformanceConfigResponse { /** * Specifies the network bandwidth tier for the NodePool for traffic to external/public IP addresses. */ externalIpEgressBandwidthTier: string; /** * Specifies the total network bandwidth tier for the NodePool. */ totalEgressBandwidthTier: string; } /** * Configuration for NetworkPolicy. This only tracks whether the addon is enabled or not on the Master, it does not track whether network policy is enabled for the nodes. */ interface NetworkPolicyConfigResponse { /** * Whether NetworkPolicy is enabled for this cluster. */ disabled: boolean; } /** * Configuration options for the NetworkPolicy feature. https://kubernetes.io/docs/concepts/services-networking/networkpolicies/ */ interface NetworkPolicyResponse { /** * Whether network policy is enabled on the cluster. */ enabled: boolean; /** * The selected network policy provider. */ provider: string; } /** * Collection of Compute Engine network tags that can be applied to a node's underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/docs/reference/rest/v1/NodeConfig)). */ interface NetworkTagsResponse { /** * List of network tags. */ tags: string[]; } /** * Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity). */ interface NodeAffinityResponse { /** * Key for NodeAffinity. */ key: string; /** * Operator for NodeAffinity. */ operator: string; /** * Values for NodeAffinity. */ values: string[]; } /** * Subset of NodeConfig message that has defaults. */ interface NodeConfigDefaultsResponse { /** * GCFS (Google Container File System, also known as Riptide) options. */ gcfsConfig: outputs.container.v1beta1.GcfsConfigResponse; /** * HostMaintenancePolicy contains the desired maintenance policy for the Google Compute Engine hosts. */ hostMaintenancePolicy: outputs.container.v1beta1.HostMaintenancePolicyResponse; /** * Logging configuration for node pools. */ loggingConfig: outputs.container.v1beta1.NodePoolLoggingConfigResponse; } /** * Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead. */ interface NodeConfigResponse { /** * A list of hardware accelerators to be attached to each node. See https://cloud.google.com/compute/docs/gpus for more information about support for GPUs. */ accelerators: outputs.container.v1beta1.AcceleratorConfigResponse[]; /** * Advanced features for the Compute Engine VM. */ advancedMachineFeatures: outputs.container.v1beta1.AdvancedMachineFeaturesResponse; /** * The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption */ bootDiskKmsKey: string; /** * Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled. */ confidentialNodes: outputs.container.v1beta1.ConfidentialNodesResponse; /** * Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB. */ diskSizeGb: number; /** * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is 'pd-standard' */ diskType: string; /** * Optional. Enable confidential storage on Hyperdisk. boot_disk_kms_key is required when enable_confidential_storage is true. This is only available for private preview. */ enableConfidentialStorage: boolean; /** * Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. */ ephemeralStorageConfig: outputs.container.v1beta1.EphemeralStorageConfigResponse; /** * Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk. This field is functionally equivalent to the ephemeral_storage_config */ ephemeralStorageLocalSsdConfig: outputs.container.v1beta1.EphemeralStorageLocalSsdConfigResponse; /** * Enable or disable NCCL fast socket for the node pool. */ fastSocket: outputs.container.v1beta1.FastSocketResponse; /** * GCFS (Google Container File System) configs. */ gcfsConfig: outputs.container.v1beta1.GcfsConfigResponse; /** * Enable or disable gvnic on the node pool. */ gvnic: outputs.container.v1beta1.VirtualNICResponse; /** * HostMaintenancePolicy contains the desired maintenance policy for the Google Compute Engine hosts. */ hostMaintenancePolicy: outputs.container.v1beta1.HostMaintenancePolicyResponse; /** * The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types. */ imageType: string; /** * Node kubelet configs. */ kubeletConfig: outputs.container.v1beta1.NodeKubeletConfigResponse; /** * The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ */ labels: { [key: string]: string; }; /** * Parameters that can be configured on Linux nodes. */ linuxNodeConfig: outputs.container.v1beta1.LinuxNodeConfigResponse; /** * Parameters for using raw-block Local NVMe SSDs. */ localNvmeSsdBlockConfig: outputs.container.v1beta1.LocalNvmeSsdBlockConfigResponse; /** * The number of local SSD disks to be attached to the node. The limit for this value is dependent upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. */ localSsdCount: number; /** * Logging configuration. */ loggingConfig: outputs.container.v1beta1.NodePoolLoggingConfigResponse; /** * The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types). If unspecified, the default machine type is `e2-medium`. */ machineType: string; /** * The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: - "cluster-location" - "cluster-name" - "cluster-uid" - "configure-sh" - "containerd-configure-sh" - "enable-oslogin" - "gci-ensure-gke-docker" - "gci-metrics-enabled" - "gci-update-strategy" - "instance-template" - "kube-env" - "startup-script" - "user-data" - "disable-address-manager" - "windows-startup-script-ps1" - "common-psm1" - "k8s-node-setup-psm1" - "install-ssh-psm1" - "user-profile-psm1" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB. */ metadata: { [key: string]: string; }; /** * Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as `minCpuPlatform: "Intel Haswell"` or `minCpuPlatform: "Intel Sandy Bridge"`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). */ minCpuPlatform: string; /** * Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes). */ nodeGroup: string; /** * The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](https://cloud.google.com/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added. */ oauthScopes: string[]; /** * Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more information about preemptible VM instances. */ preemptible: boolean; /** * The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool. */ reservationAffinity: outputs.container.v1beta1.ReservationAffinityResponse; /** * The resource labels for the node pool to use to annotate any related Google Compute Engine resources. */ resourceLabels: { [key: string]: string; }; /** * A map of resource manager tag keys and values to be attached to the nodes. */ resourceManagerTags: outputs.container.v1beta1.ResourceManagerTagsResponse; /** * Sandbox configuration for this node. */ sandboxConfig: outputs.container.v1beta1.SandboxConfigResponse; /** * The Google Cloud Platform Service Account to be used by the node VMs. Specify the email address of the Service Account; otherwise, if no Service Account is specified, the "default" service account is used. */ serviceAccount: string; /** * Shielded Instance options. */ shieldedInstanceConfig: outputs.container.v1beta1.ShieldedInstanceConfigResponse; /** * Parameters for node pools to be backed by shared sole tenant node groups. */ soleTenantConfig: outputs.container.v1beta1.SoleTenantConfigResponse; /** * Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag. */ spot: boolean; /** * The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035. */ tags: string[]; /** * List of kubernetes taints to be applied to each node. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ */ taints: outputs.container.v1beta1.NodeTaintResponse[]; /** * Parameters that can be configured on Windows nodes. */ windowsNodeConfig: outputs.container.v1beta1.WindowsNodeConfigResponse; /** * The workload metadata configuration for this node. */ workloadMetadataConfig: outputs.container.v1beta1.WorkloadMetadataConfigResponse; } /** * Node kubelet configs. */ interface NodeKubeletConfigResponse { /** * Enable CPU CFS quota enforcement for containers that specify CPU limits. This option is enabled by default which makes kubelet use CFS quota (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to enforce container CPU limits. Otherwise, CPU limits will not be enforced at all. Disable this option to mitigate CPU throttling problems while still having your pods to be in Guaranteed QoS class by specifying the CPU limits. The default value is 'true' if unspecified. */ cpuCfsQuota: boolean; /** * Set the CPU CFS quota period value 'cpu.cfs_period_us'. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The value must be a positive duration. */ cpuCfsQuotaPeriod: string; /** * Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * "none": the default, which represents the existing scheduling behavior. * "static": allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is 'none' if unspecified. */ cpuManagerPolicy: string; /** * Enable or disable Kubelet read only port. */ insecureKubeletReadonlyPortEnabled: boolean; /** * Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304. */ podPidsLimit: string; } /** * NodeManagement defines the set of node management services turned on for the node pool. */ interface NodeManagementResponse { /** * Whether the nodes will be automatically repaired. */ autoRepair: boolean; /** * Whether the nodes will be automatically upgraded. */ autoUpgrade: boolean; /** * Specifies the Auto Upgrade knobs for the node pool. */ upgradeOptions: outputs.container.v1beta1.AutoUpgradeOptionsResponse; } /** * Parameters for node pool-level network config. */ interface NodeNetworkConfigResponse { /** * We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface */ additionalNodeNetworkConfigs: outputs.container.v1beta1.AdditionalNodeNetworkConfigResponse[]; /** * We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node */ additionalPodNetworkConfigs: outputs.container.v1beta1.AdditionalPodNetworkConfigResponse[]; /** * Input only. Whether to create a new range for pod IPs in this node pool. Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are not specified. If neither `create_pod_range` or `pod_range` are specified, the cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is used. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created. */ createPodRange: boolean; /** * Whether nodes have internal IP addresses only. If enable_private_nodes is not specified, then the value is derived from cluster.privateClusterConfig.enablePrivateNodes */ enablePrivateNodes: boolean; /** * Network bandwidth tier configuration. */ networkPerformanceConfig: outputs.container.v1beta1.NetworkPerformanceConfigResponse; /** * [PRIVATE FIELD] Pod CIDR size overprovisioning config for the nodepool. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is rounded off to next power of 2 and we then double that to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled. */ podCidrOverprovisionConfig: outputs.container.v1beta1.PodCIDROverprovisionConfigResponse; /** * The IP address range for pod IPs in this node pool. Only applicable if `create_pod_range` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) to pick a specific range to use. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created. */ podIpv4CidrBlock: string; /** * [Output only] The utilization of the IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode. */ podIpv4RangeUtilization: number; /** * The ID of the secondary range for pod IPs. If `create_pod_range` is true, this ID is used for the new range. If `create_pod_range` is false, uses an existing secondary range with this ID. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created. */ podRange: string; } /** * node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters */ interface NodePoolAutoConfigResponse { /** * The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster creation. Each tag within the list must comply with RFC1035. */ networkTags: outputs.container.v1beta1.NetworkTagsResponse; /** * Resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. */ resourceManagerTags: outputs.container.v1beta1.ResourceManagerTagsResponse; } /** * NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. */ interface NodePoolAutoscalingResponse { /** * Can this node pool be deleted automatically. */ autoprovisioned: boolean; /** * Is autoscaling enabled for this node pool. */ enabled: boolean; /** * Location policy used when scaling up a nodepool. */ locationPolicy: string; /** * Maximum number of nodes for one location in the NodePool. Must be >= min_node_count. There has to be enough quota to scale up the cluster. */ maxNodeCount: number; /** * Minimum number of nodes for one location in the NodePool. Must be >= 1 and <= max_node_count. */ minNodeCount: number; /** * Maximum number of nodes in the node pool. Must be greater than total_min_node_count. There has to be enough quota to scale up the cluster. The total_*_node_count fields are mutually exclusive with the *_node_count fields. */ totalMaxNodeCount: number; /** * Minimum number of nodes in the node pool. Must be greater than 1 less than total_max_node_count. The total_*_node_count fields are mutually exclusive with the *_node_count fields. */ totalMinNodeCount: number; } /** * Subset of Nodepool message that has defaults. */ interface NodePoolDefaultsResponse { /** * Subset of NodeConfig message that has defaults. */ nodeConfigDefaults: outputs.container.v1beta1.NodeConfigDefaultsResponse; } /** * NodePoolLoggingConfig specifies logging configuration for nodepools. */ interface NodePoolLoggingConfigResponse { /** * Logging variant configuration. */ variantConfig: outputs.container.v1beta1.LoggingVariantConfigResponse; } /** * NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload. */ interface NodePoolResponse { /** * Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present. */ autoscaling: outputs.container.v1beta1.NodePoolAutoscalingResponse; /** * Enable best effort provisioning for nodes */ bestEffortProvisioning: outputs.container.v1beta1.BestEffortProvisioningResponse; /** * Which conditions caused the current node pool state. */ conditions: outputs.container.v1beta1.StatusConditionResponse[]; /** * The node configuration of the pool. */ config: outputs.container.v1beta1.NodeConfigResponse; /** * This checksum is computed by the server based on the value of node pool fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding. */ etag: string; /** * The initial node count for the pool. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. */ initialNodeCount: number; /** * [Output only] The resource URLs of the [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with this node pool. During the node pool blue-green upgrade operation, the URLs contain both blue and green resources. */ instanceGroupUrls: string[]; /** * The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool's nodes should be located. If this value is unspecified during node pool creation, the [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations) value will be used, instead. Warning: changing node pool locations will result in nodes being added and/or removed. */ locations: string[]; /** * NodeManagement configuration for this NodePool. */ management: outputs.container.v1beta1.NodeManagementResponse; /** * The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool. */ maxPodsConstraint: outputs.container.v1beta1.MaxPodsConstraintResponse; /** * The name of the node pool. */ name: string; /** * Networking configuration for this NodePool. If specified, it overrides the cluster-level defaults. */ networkConfig: outputs.container.v1beta1.NodeNetworkConfigResponse; /** * Specifies the node placement policy. */ placementPolicy: outputs.container.v1beta1.PlacementPolicyResponse; /** * [Output only] The pod CIDR block size per node in this node pool. */ podIpv4CidrSize: number; /** * Specifies the configuration of queued provisioning. */ queuedProvisioning: outputs.container.v1beta1.QueuedProvisioningResponse; /** * [Output only] Server-defined URL for the resource. */ selfLink: string; /** * [Output only] The status of the nodes in this pool instance. */ status: string; /** * [Output only] Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available. * * @deprecated [Output only] Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available. */ statusMessage: string; /** * [Output only] Update info contains relevant information during a node pool update. */ updateInfo: outputs.container.v1beta1.UpdateInfoResponse; /** * Upgrade settings control disruption and speed of the upgrade. */ upgradeSettings: outputs.container.v1beta1.UpgradeSettingsResponse; /** * The version of Kubernetes running on this NodePool's nodes. If unspecified, it defaults as described [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version). */ version: string; } /** * Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values. */ interface NodeTaintResponse { /** * Effect for taint. */ effect: string; /** * Key for taint. */ key: string; /** * Value for taint. */ value: string; } /** * NotificationConfig is the configuration of notifications. */ interface NotificationConfigResponse { /** * Notification config for Pub/Sub. */ pubsub: outputs.container.v1beta1.PubSubResponse; } /** * Strategy that will trigger maintenance on behalf of the customer. */ interface OpportunisticMaintenanceStrategyResponse { /** * The window of time that opportunistic maintenance can run. Example: A setting of 14 days implies that opportunistic maintenance can only be ran in the 2 weeks leading up to the scheduled maintenance date. Setting 28 days allows opportunistic maintenance to run at any time in the scheduled maintenance window (all `PERIODIC` maintenance is set 28 days in advance). */ maintenanceAvailabilityWindow: string; /** * The minimum nodes required to be available in a pool. Blocks maintenance if it would cause the number of running nodes to dip below this value. */ minNodesPerPool: string; /** * The amount of time that a node can remain idle (no customer owned workloads running), before triggering maintenance. */ nodeIdleTimeWindow: string; } /** * ParentProductConfig is the configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of a GKE cluster and take the ownership of the cluster. */ interface ParentProductConfigResponse { /** * Labels contain the configuration of the parent product. */ labels: { [key: string]: string; }; /** * Name of the parent product associated with the cluster. */ productName: string; } /** * PlacementPolicy defines the placement policy used by the node pool. */ interface PlacementPolicyResponse { /** * If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned. */ policyName: string; /** * TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies */ tpuTopology: string; /** * The type of placement. */ type: string; } /** * [PRIVATE FIELD] Config for pod CIDR size overprovisioning. */ interface PodCIDROverprovisionConfigResponse { /** * Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default. */ disable: boolean; } /** * Configuration for the PodSecurityPolicy feature. */ interface PodSecurityPolicyConfigResponse { /** * Enable the PodSecurityPolicy controller for this cluster. If enabled, pods must be valid under a PodSecurityPolicy to be created. */ enabled: boolean; } /** * Binauthz policy that applies to this cluster. */ interface PolicyBindingResponse { /** * The relative resource name of the binauthz platform policy to audit. GKE platform policies have the following format: `projects/{project_number}/platforms/gke/policies/{policy_id}`. */ name: string; } /** * Configuration options for private clusters. */ interface PrivateClusterConfigResponse { /** * Whether the master's internal IP address is used as the cluster endpoint. */ enablePrivateEndpoint: boolean; /** * Whether nodes have internal IP addresses only. If enabled, all nodes are given only RFC 1918 private addresses and communicate with the master via private networking. */ enablePrivateNodes: boolean; /** * Controls master global access settings. */ masterGlobalAccessConfig: outputs.container.v1beta1.PrivateClusterMasterGlobalAccessConfigResponse; /** * The IP range in CIDR notation to use for the hosted master network. This range will be used for assigning internal IP addresses to the master or set of masters, as well as the ILB VIP. This range must not overlap with any other ranges in use within the cluster's network. */ masterIpv4CidrBlock: string; /** * The peering name in the customer VPC used by this cluster. */ peeringName: string; /** * The internal IP address of this cluster's master endpoint. */ privateEndpoint: string; /** * Subnet to provision the master's private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. */ privateEndpointSubnetwork: string; /** * The external IP address of this cluster's master endpoint. */ publicEndpoint: string; } /** * Configuration for controlling master global access settings. */ interface PrivateClusterMasterGlobalAccessConfigResponse { /** * Whenever master is accessible globally or not. */ enabled: boolean; } /** * ProtectConfig defines the flags needed to enable/disable features for the Protect API. */ interface ProtectConfigResponse { /** * WorkloadConfig defines which actions are enabled for a cluster's workload configurations. */ workloadConfig: outputs.container.v1beta1.WorkloadConfigResponse; /** * Sets which mode to use for Protect workload vulnerability scanning feature. */ workloadVulnerabilityMode: string; } /** * Pub/Sub specific notification config. */ interface PubSubResponse { /** * Enable notifications for Pub/Sub. */ enabled: boolean; /** * Allows filtering to one or more specific event types. If no filter is specified, or if a filter is specified with no event types, all event types will be sent */ filter: outputs.container.v1beta1.FilterResponse; /** * The desired Pub/Sub topic to which notifications will be sent by GKE. Format is `projects/{project}/topics/{topic}`. */ topic: string; } /** * QueuedProvisioning defines the queued provisioning used by the node pool. */ interface QueuedProvisioningResponse { /** * Denotes that this nodepool is QRM specific, meaning nodes can be only obtained through queuing via the Cluster Autoscaler ProvisioningRequest API. */ enabled: boolean; } /** * RangeInfo contains the range name and the range utilization by this cluster. */ interface RangeInfoResponse { /** * [Output only] Name of a range. */ rangeName: string; /** * [Output only] The utilization of the range. */ utilization: number; } /** * Represents an arbitrary window of time that recurs. */ interface RecurringTimeWindowResponse { /** * An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how this window reccurs. They go on for the span of time between the start and end time. For example, to have something repeat every weekday, you'd use: `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` To repeat some window daily (equivalent to the DailyMaintenanceWindow): `FREQ=DAILY` For the first weekend of every month: `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU` This specifies how frequently the window starts. Eg, if you wanted to have a 9-5 UTC-4 window every weekday, you'd use something like: ``` start time = 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ``` Windows can span multiple days. Eg, to make the window encompass every weekend from midnight Saturday till the last minute of Sunday UTC: ``` start time = 2019-01-05T00:00:00Z end time = 2019-01-07T23:59:00Z recurrence = FREQ=WEEKLY;BYDAY=SA ``` Note the start and end time's specific dates are largely arbitrary except to specify duration of the window and when it first starts. The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported. */ recurrence: string; /** * The window of the first recurrence. */ window: outputs.container.v1beta1.TimeWindowResponse; } /** * ReleaseChannelConfig exposes configuration for a release channel. */ interface ReleaseChannelConfigResponse { /** * Deprecated. This field has been deprecated and replaced with the valid_versions field. * * @deprecated Deprecated. This field has been deprecated and replaced with the valid_versions field. */ availableVersions: outputs.container.v1beta1.AvailableVersionResponse[]; /** * The release channel this configuration applies to. */ channel: string; /** * The default version for newly created clusters on the channel. */ defaultVersion: string; /** * List of valid versions for the channel. */ validVersions: string[]; } /** * ReleaseChannel indicates which release channel a cluster is subscribed to. Release channels are arranged in order of risk. When a cluster is subscribed to a release channel, Google maintains both the master version and the node version. Node auto-upgrade defaults to true and cannot be disabled. */ interface ReleaseChannelResponse { /** * channel specifies which release channel the cluster is subscribed to. */ channel: string; } /** * [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) is the configuration of desired reservation which instances could take capacity from. */ interface ReservationAffinityResponse { /** * Corresponds to the type of reservation consumption. */ consumeReservationType: string; /** * Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify "compute.googleapis.com/reservation-name" as the key and specify the name of your reservation as its value. */ key: string; /** * Corresponds to the label value(s) of reservation resource(s). */ values: string[]; } /** * Contains information about amount of some resource in the cluster. For memory, value should be in GB. */ interface ResourceLimitResponse { /** * Maximum amount of the resource in the cluster. */ maximum: string; /** * Minimum amount of the resource in the cluster. */ minimum: string; /** * Resource name "cpu", "memory" or gpu-specific string. */ resourceType: string; } /** * A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. */ interface ResourceManagerTagsResponse { /** * Tags must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}` */ tags: { [key: string]: string; }; } /** * Configuration for exporting cluster resource usages. */ interface ResourceUsageExportConfigResponse { /** * Configuration to use BigQuery as usage export destination. */ bigqueryDestination: outputs.container.v1beta1.BigQueryDestinationResponse; /** * Configuration to enable resource consumption metering. */ consumptionMeteringConfig: outputs.container.v1beta1.ConsumptionMeteringConfigResponse; /** * Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic. */ enableNetworkEgressMetering: boolean; } /** * SandboxConfig contains configurations of the sandbox to use for the node. */ interface SandboxConfigResponse { /** * Type of the sandbox to use for the node (e.g. 'gvisor') */ sandboxType: string; /** * Type of the sandbox to use for the node. */ type: string; } /** * SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API. */ interface SecurityPostureConfigResponse { /** * Sets which mode to use for Security Posture features. */ mode: string; /** * Sets which mode to use for vulnerability scanning. */ vulnerabilityMode: string; } /** * Config to block services with externalIPs field. */ interface ServiceExternalIPsConfigResponse { /** * Whether Services with ExternalIPs field are allowed or not. */ enabled: boolean; } /** * A set of Shielded Instance options. */ interface ShieldedInstanceConfigResponse { /** * Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. */ enableIntegrityMonitoring: boolean; /** * Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. */ enableSecureBoot: boolean; } /** * Configuration of Shielded Nodes feature. */ interface ShieldedNodesResponse { /** * Whether Shielded Nodes features are enabled on all nodes in this cluster. */ enabled: boolean; } /** * SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool. */ interface SoleTenantConfigResponse { /** * NodeAffinities used to match to a shared sole tenant node group. */ nodeAffinities: outputs.container.v1beta1.NodeAffinityResponse[]; } /** * Standard rollout policy is the default policy for blue-green. */ interface StandardRolloutPolicyResponse { /** * Number of blue nodes to drain in a batch. */ batchNodeCount: number; /** * Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0]. */ batchPercentage: number; /** * Soak time after each batch gets drained. Default to zero. */ batchSoakDuration: string; } /** * StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED). */ interface StatusConditionResponse { /** * Canonical code of the condition. */ canonicalCode: string; /** * Machine-friendly representation of the condition Deprecated. Use canonical_code instead. * * @deprecated Machine-friendly representation of the condition Deprecated. Use canonical_code instead. */ code: string; /** * Human-friendly representation of the condition */ message: string; } /** * Represents an arbitrary window of time. */ interface TimeWindowResponse { /** * The time that the window ends. The end time should take place after the start time. */ endTime: string; /** * MaintenanceExclusionOptions provides maintenance exclusion related options. */ maintenanceExclusionOptions: outputs.container.v1beta1.MaintenanceExclusionOptionsResponse; /** * The time that the window first starts. */ startTime: string; } /** * Configuration for Cloud TPU. */ interface TpuConfigResponse { /** * Whether Cloud TPU integration is enabled or not. */ enabled: boolean; /** * IPv4 CIDR block reserved for Cloud TPU in the VPC. */ ipv4CidrBlock: string; /** * Whether to use service networking for Cloud TPU or not. */ useServiceNetworking: boolean; } /** * UpdateInfo contains resource (instance groups, etc), status and other intermediate information relevant to a node pool upgrade. */ interface UpdateInfoResponse { /** * Information of a blue-green upgrade. */ blueGreenInfo: outputs.container.v1beta1.BlueGreenInfoResponse; } /** * These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is SURGE, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted. */ interface UpgradeSettingsResponse { /** * Settings for blue-green upgrade strategy. */ blueGreenSettings: outputs.container.v1beta1.BlueGreenSettingsResponse; /** * The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process. */ maxSurge: number; /** * The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready. */ maxUnavailable: number; /** * Update strategy of the node pool. */ strategy: string; } /** * VerticalPodAutoscaling contains global, per-cluster information required by Vertical Pod Autoscaler to automatically adjust the resources of pods controlled by it. */ interface VerticalPodAutoscalingResponse { /** * Enables vertical pod autoscaling. */ enabled: boolean; } /** * Configuration of gVNIC feature. */ interface VirtualNICResponse { /** * Whether gVNIC features are enabled in the node pool. */ enabled: boolean; } /** * Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings */ interface WindowsNodeConfigResponse { /** * OSVersion specifies the Windows node config to be used on the node */ osVersion: string; } /** * Configuration for direct-path (via ALTS) with workload identity. */ interface WorkloadALTSConfigResponse { /** * enable_alts controls whether the alts handshaker should be enabled or not for direct-path. Requires Workload Identity (workload_pool must be non-empty). */ enableAlts: boolean; } /** * Configuration for issuance of mTLS keys and certificates to Kubernetes pods. */ interface WorkloadCertificatesResponse { /** * enable_certificates controls issuance of workload mTLS certificates. If set, the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster, which can then be configured by creating a WorkloadCertificateConfig Custom Resource. Requires Workload Identity (workload_pool must be non-empty). */ enableCertificates: boolean; } /** * WorkloadConfig defines the flags to enable or disable the workload configurations for the cluster. */ interface WorkloadConfigResponse { /** * Sets which mode of auditing should be used for the cluster's workloads. */ auditMode: string; } /** * Configuration for the use of Kubernetes Service Accounts in GCP IAM policies. */ interface WorkloadIdentityConfigResponse { /** * IAM Identity Namespace to attach all Kubernetes Service Accounts to. */ identityNamespace: string; /** * identity provider is the third party identity provider. */ identityProvider: string; /** * The workload pool to attach all Kubernetes service accounts to. */ workloadPool: string; } /** * WorkloadMetadataConfig defines the metadata configuration to expose to workloads on the node pool. */ interface WorkloadMetadataConfigResponse { /** * Mode is the configuration for how to expose metadata to workloads running on the node pool. */ mode: string; /** * NodeMetadata is the configuration for how to expose metadata to the workloads running on the node. */ nodeMetadata: string; } /** * WorkloadPolicyConfig is the configuration of workload policy for autopilot clusters. */ interface WorkloadPolicyConfigResponse { /** * If true, workloads can use NET_ADMIN capability. */ allowNetAdmin: boolean; } } } export declare namespace containeranalysis { namespace v1 { /** * An alias to a repo revision. */ interface AliasContextResponse { /** * The alias kind. */ kind: string; /** * The alias name. */ name: string; } /** * Indicates which analysis completed successfully. Multiple types of analysis can be performed on a single resource. */ interface AnalysisCompletedResponse { analysisType: string[]; } /** * Artifact describes a build product. */ interface ArtifactResponse { /** * Hash or checksum value of a binary, or Docker Registry 2.0 digest of a container. */ checksum: string; /** * Related artifact names. This may be the path to a binary or jar file, or in the case of a container build, the name used to push the container image to Google Container Registry, as presented to `docker push`. Note that a single Artifact ID can have multiple names, for example if two tags are applied to one image. */ names: string[]; } /** * Assessment provides all information that is related to a single vulnerability for this product. */ interface AssessmentResponse { /** * Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs. * * @deprecated Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs. */ cve: string; /** * Contains information about the impact of this vulnerability, this will change with time. */ impacts: string[]; /** * Justification provides the justification when the state of the assessment if NOT_AFFECTED. */ justification: outputs.containeranalysis.v1.JustificationResponse; /** * A detailed description of this Vex. */ longDescription: string; /** * Holds a list of references associated with this vulnerability item and assessment. These uris have additional information about the vulnerability and the assessment itself. E.g. Link to a document which details how this assessment concluded the state of this vulnerability. */ relatedUris: outputs.containeranalysis.v1.RelatedUrlResponse[]; /** * Specifies details on how to handle (and presumably, fix) a vulnerability. */ remediations: outputs.containeranalysis.v1.RemediationResponse[]; /** * A one sentence description of this Vex. */ shortDescription: string; /** * Provides the state of this Vulnerability assessment. */ state: string; /** * The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc. */ vulnerabilityId: string; } /** * Note kind that represents a logical attestation "role" or "authority". For example, an organization might have one `Authority` for "QA" and one for "build". This note is intended to act strictly as a grouping mechanism for the attached occurrences (Attestations). This grouping mechanism also provides a security boundary, since IAM ACLs gate the ability for a principle to attach an occurrence to a given note. It also provides a single point of lookup to find all attached attestation occurrences, even if they don't all live in the same project. */ interface AttestationNoteResponse { /** * Hint hints at the purpose of the attestation authority. */ hint: outputs.containeranalysis.v1.HintResponse; } /** * Occurrence that represents a single "attestation". The authenticity of an attestation can be verified using the attached signature. If the verifier trusts the public key of the signer, then verifying the signature is sufficient to establish trust. In this circumstance, the authority to which this attestation is attached is primarily useful for lookup (how to find this attestation if you already know the authority and artifact to be verified) and intent (for which authority this attestation was intended to sign. */ interface AttestationOccurrenceResponse { /** * One or more JWTs encoding a self-contained attestation. Each JWT encodes the payload that it verifies within the JWT itself. Verifier implementation SHOULD ignore the `serialized_payload` field when verifying these JWTs. If only JWTs are present on this AttestationOccurrence, then the `serialized_payload` SHOULD be left empty. Each JWT SHOULD encode a claim specific to the `resource_uri` of this Occurrence, but this is not validated by Grafeas metadata API implementations. The JWT itself is opaque to Grafeas. */ jwts: outputs.containeranalysis.v1.JwtResponse[]; /** * The serialized payload that is verified by one or more `signatures`. */ serializedPayload: string; /** * One or more signatures over `serialized_payload`. Verifier implementations should consider this attestation message verified if at least one `signature` verifies `serialized_payload`. See `Signature` in common.proto for more details on signature structure and verification. */ signatures: outputs.containeranalysis.v1.SignatureResponse[]; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.containeranalysis.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } interface BuildDefinitionResponse { buildType: string; externalParameters: { [key: string]: string; }; internalParameters: { [key: string]: string; }; resolvedDependencies: outputs.containeranalysis.v1.ResourceDescriptorResponse[]; } interface BuildMetadataResponse { finishedOn: string; invocationId: string; startedOn: string; } /** * Note holding the version of the provider's builder and the signature of the provenance message in the build details occurrence. */ interface BuildNoteResponse { /** * Immutable. Version of the builder which produced this build. */ builderVersion: string; } /** * Details of a build occurrence. */ interface BuildOccurrenceResponse { /** * In-Toto Slsa Provenance V1 represents a slsa provenance meeting the slsa spec, wrapped in an in-toto statement. This allows for direct jsonification of a to-spec in-toto slsa statement with a to-spec slsa provenance. */ inTotoSlsaProvenanceV1: outputs.containeranalysis.v1.InTotoSlsaProvenanceV1Response; /** * Deprecated. See InTotoStatement for the replacement. In-toto Provenance representation as defined in spec. * * @deprecated Deprecated. See InTotoStatement for the replacement. In-toto Provenance representation as defined in spec. */ intotoProvenance: outputs.containeranalysis.v1.InTotoProvenanceResponse; /** * In-toto Statement representation as defined in spec. The intoto_statement can contain any type of provenance. The serialized payload of the statement can be stored and signed in the Occurrence's envelope. */ intotoStatement: outputs.containeranalysis.v1.InTotoStatementResponse; /** * The actual provenance for the build. */ provenance: outputs.containeranalysis.v1.BuildProvenanceResponse; /** * Serialized JSON representation of the provenance, used in generating the build signature in the corresponding build note. After verifying the signature, `provenance_bytes` can be unmarshalled and compared to the provenance to confirm that it is unchanged. A base64-encoded string representation of the provenance bytes is used for the signature in order to interoperate with openssl which expects this format for signature verification. The serialized form is captured both to avoid ambiguity in how the provenance is marshalled to json as well to prevent incompatibilities with future changes. */ provenanceBytes: string; } /** * Provenance of a build. Contains all information needed to verify the full details about the build from source to completion. */ interface BuildProvenanceResponse { /** * Special options applied to this build. This is a catch-all field where build providers can enter any desired additional details. */ buildOptions: { [key: string]: string; }; /** * Version string of the builder at the time this build was executed. */ builderVersion: string; /** * Output of the build. */ builtArtifacts: outputs.containeranalysis.v1.ArtifactResponse[]; /** * Commands requested by the build. */ commands: outputs.containeranalysis.v1.CommandResponse[]; /** * Time at which the build was created. */ createTime: string; /** * E-mail address of the user who initiated this build. Note that this was the user's e-mail address at the time the build was initiated; this address may not represent the same end-user for all time. */ creator: string; /** * Time at which execution of the build was finished. */ endTime: string; /** * URI where any logs for this provenance were written. */ logsUri: string; /** * ID of the project. */ project: string; /** * Details of the Source input to the build. */ sourceProvenance: outputs.containeranalysis.v1.SourceResponse; /** * Time at which execution of the build was started. */ startTime: string; /** * Trigger identifier if the build was triggered automatically; empty if not. */ triggerId: string; } interface BuilderConfigResponse { } /** * Common Vulnerability Scoring System. For details, see https://www.first.org/cvss/specification-document This is a message we will try to use for storing various versions of CVSS rather than making a separate proto for storing a specific version. */ interface CVSSResponse { attackComplexity: string; /** * Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. */ attackVector: string; authentication: string; availabilityImpact: string; /** * The base score is a function of the base metric scores. */ baseScore: number; confidentialityImpact: string; exploitabilityScore: number; impactScore: number; integrityImpact: string; privilegesRequired: string; scope: string; userInteraction: string; } /** * Common Vulnerability Scoring System version 3. For details, see https://www.first.org/cvss/specification-document */ interface CVSSv3Response { attackComplexity: string; /** * Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. */ attackVector: string; availabilityImpact: string; /** * The base score is a function of the base metric scores. */ baseScore: number; confidentialityImpact: string; exploitabilityScore: number; impactScore: number; integrityImpact: string; privilegesRequired: string; scope: string; userInteraction: string; } /** * The category to which the update belongs. */ interface CategoryResponse { /** * The identifier of the category. */ categoryId: string; /** * The localized name of the category. */ name: string; } /** * A compliance check that is a CIS benchmark. */ interface CisBenchmarkResponse { profileLevel: number; severity: string; } /** * A CloudRepoSourceContext denotes a particular revision in a Google Cloud Source Repo. */ interface CloudRepoSourceContextResponse { /** * An alias, which may be a branch or tag. */ aliasContext: outputs.containeranalysis.v1.AliasContextResponse; /** * The ID of the repo. */ repoId: outputs.containeranalysis.v1.RepoIdResponse; /** * A revision ID. */ revisionId: string; } /** * Command describes a step performed as part of the build pipeline. */ interface CommandResponse { /** * Command-line arguments used when executing this command. */ args: string[]; /** * Working directory (relative to project source root) used when running this command. */ dir: string; /** * Environment variables set before running this command. */ env: string[]; /** * Name of the command, as presented on the command line, or if the command is packaged as a Docker container, as presented to `docker pull`. */ name: string; /** * The ID(s) of the command(s) that this command depends on. */ waitFor: string[]; } /** * Indicates that the builder claims certain fields in this message to be complete. */ interface CompletenessResponse { /** * If true, the builder claims that recipe.arguments is complete, meaning that all external inputs are properly captured in the recipe. */ arguments: boolean; /** * If true, the builder claims that recipe.environment is claimed to be complete. */ environment: boolean; /** * If true, the builder claims that materials are complete, usually through some controls to prevent network access. Sometimes called "hermetic". */ materials: boolean; } interface ComplianceNoteResponse { cisBenchmark: outputs.containeranalysis.v1.CisBenchmarkResponse; /** * A description about this compliance check. */ description: string; /** * A rationale for the existence of this compliance check. */ rationale: string; /** * A description of remediation steps if the compliance check fails. */ remediation: string; /** * Serialized scan instructions with a predefined format. */ scanInstructions: string; /** * The title that identifies this compliance check. */ title: string; /** * The OS and config versions the benchmark applies to. */ version: outputs.containeranalysis.v1.ComplianceVersionResponse[]; } /** * An indication that the compliance checks in the associated ComplianceNote were not satisfied for particular resources or a specified reason. */ interface ComplianceOccurrenceResponse { nonComplianceReason: string; nonCompliantFiles: outputs.containeranalysis.v1.NonCompliantFileResponse[]; } /** * Describes the CIS benchmark version that is applicable to a given OS and os version. */ interface ComplianceVersionResponse { /** * The name of the document that defines this benchmark, e.g. "CIS Container-Optimized OS". */ benchmarkDocument: string; /** * The CPE URI (https://cpe.mitre.org/specification/) this benchmark is applicable to. */ cpeUri: string; /** * The version of the benchmark. This is set to the version of the OS-specific CIS document the benchmark is defined in. */ version: string; } interface DSSEAttestationNoteResponse { /** * DSSEHint hints at the purpose of the attestation authority. */ hint: outputs.containeranalysis.v1.DSSEHintResponse; } /** * Deprecated. Prefer to use a regular Occurrence, and populate the Envelope at the top level of the Occurrence. */ interface DSSEAttestationOccurrenceResponse { /** * If doing something security critical, make sure to verify the signatures in this metadata. */ envelope: outputs.containeranalysis.v1.EnvelopeResponse; statement: outputs.containeranalysis.v1.InTotoStatementResponse; } /** * This submessage provides human-readable hints about the purpose of the authority. Because the name of a note acts as its resource reference, it is important to disambiguate the canonical name of the Note (which might be a UUID for security purposes) from "readable" names more suitable for debug output. Note that these hints should not be used to look up authorities in security sensitive contexts, such as when looking up attestations to verify. */ interface DSSEHintResponse { /** * The human readable name of this attestation authority, for example "cloudbuild-prod". */ humanReadableName: string; } /** * An artifact that can be deployed in some runtime. */ interface DeploymentNoteResponse { /** * Resource URI for the artifact being deployed. */ resourceUri: string[]; } /** * The period during which some deployable was active in a runtime. */ interface DeploymentOccurrenceResponse { /** * Address of the runtime element hosting this deployment. */ address: string; /** * Configuration used to create this deployment. */ config: string; /** * Beginning of the lifetime of this deployment. */ deployTime: string; /** * Platform hosting this deployment. */ platform: string; /** * Resource URI for the artifact being deployed taken from the deployable field with the same name. */ resourceUri: string[]; /** * End of the lifetime of this deployment. */ undeployTime: string; /** * Identity of the user that triggered this deployment. */ userEmail: string; } /** * A detail for a distro and package affected by this vulnerability and its associated fix (if one is available). */ interface DetailResponse { /** * The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability affects. */ affectedCpeUri: string; /** * The package this vulnerability affects. */ affectedPackage: string; /** * The version number at the end of an interval in which this vulnerability exists. A vulnerability can affect a package between version numbers that are disjoint sets of intervals (example: [1.0.0-1.1.0], [2.4.6-2.4.8] and [4.5.6-4.6.8]) each of which will be represented in its own Detail. If a specific affected version is provided by a vulnerability database, affected_version_start and affected_version_end will be the same in that Detail. */ affectedVersionEnd: outputs.containeranalysis.v1.VersionResponse; /** * The version number at the start of an interval in which this vulnerability exists. A vulnerability can affect a package between version numbers that are disjoint sets of intervals (example: [1.0.0-1.1.0], [2.4.6-2.4.8] and [4.5.6-4.6.8]) each of which will be represented in its own Detail. If a specific affected version is provided by a vulnerability database, affected_version_start and affected_version_end will be the same in that Detail. */ affectedVersionStart: outputs.containeranalysis.v1.VersionResponse; /** * A vendor-specific description of this vulnerability. */ description: string; /** * The distro recommended [CPE URI](https://cpe.mitre.org/specification/) to update to that contains a fix for this vulnerability. It is possible for this to be different from the affected_cpe_uri. */ fixedCpeUri: string; /** * The distro recommended package to update to that contains a fix for this vulnerability. It is possible for this to be different from the affected_package. */ fixedPackage: string; /** * The distro recommended version to update to that contains a fix for this vulnerability. Setting this to VersionKind.MAXIMUM means no such version is yet available. */ fixedVersion: outputs.containeranalysis.v1.VersionResponse; /** * Whether this detail is obsolete. Occurrences are expected not to point to obsolete details. */ isObsolete: boolean; /** * The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.). */ packageType: string; /** * The distro assigned severity of this vulnerability. */ severityName: string; /** * The source from which the information in this Detail was obtained. */ source: string; /** * The time this information was last changed at the source. This is an upstream timestamp from the underlying information source - e.g. Ubuntu security tracker. */ sourceUpdateTime: string; /** * The name of the vendor of the product. */ vendor: string; } /** * Digest information. */ interface DigestResponse { /** * `SHA1`, `SHA512` etc. */ algo: string; /** * Value of the digest. */ digestBytes: string; } /** * A note that indicates a type of analysis a provider would perform. This note exists in a provider's project. A `Discovery` occurrence is created in a consumer's project at the start of analysis. */ interface DiscoveryNoteResponse { /** * Immutable. The kind of analysis that is handled by this discovery. */ analysisKind: string; } /** * Provides information about the analysis status of a discovered resource. */ interface DiscoveryOccurrenceResponse { analysisCompleted: outputs.containeranalysis.v1.AnalysisCompletedResponse; /** * Indicates any errors encountered during analysis of a resource. There could be 0 or more of these errors. */ analysisError: outputs.containeranalysis.v1.StatusResponse[]; /** * The status of discovery for the resource. */ analysisStatus: string; /** * When an error is encountered this will contain a LocalizedMessage under details to show to the user. The LocalizedMessage is output only and populated by the API. */ analysisStatusError: outputs.containeranalysis.v1.StatusResponse; /** * The time occurrences related to this discovery occurrence were archived. */ archiveTime: string; /** * Whether the resource is continuously analyzed. */ continuousAnalysis: string; /** * The CPE of the resource being scanned. */ cpe: string; /** * The last time this resource was scanned. */ lastScanTime: string; /** * The status of an SBOM generation. */ sbomStatus: outputs.containeranalysis.v1.SBOMStatusResponse; } /** * This represents a particular channel of distribution for a given package. E.g., Debian's jessie-backports dpkg mirror. */ interface DistributionResponse { /** * The CPU architecture for which packages in this distribution channel were built. */ architecture: string; /** * The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. */ cpeUri: string; /** * The distribution channel-specific description of this package. */ description: string; /** * The latest available version of this package in this distribution channel. */ latestVersion: outputs.containeranalysis.v1.VersionResponse; /** * A freeform string denoting the maintainer of this package. */ maintainer: string; /** * The distribution channel-specific homepage for this package. */ url: string; } /** * MUST match https://github.com/secure-systems-lab/dsse/blob/master/envelope.proto. An authenticated message of arbitrary type. */ interface EnvelopeResponse { payload: string; payloadType: string; signatures: outputs.containeranalysis.v1.EnvelopeSignatureResponse[]; } interface EnvelopeSignatureResponse { keyid: string; sig: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A set of properties that uniquely identify a given Docker image. */ interface FingerprintResponse { /** * The layer ID of the final layer in the Docker image's v1 representation. */ v1Name: string; /** * The ordered list of v2 blobs that represent a given image. */ v2Blob: string[]; /** * The name of the image's v2 blobs computed via: [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1]) Only the name of the final blob is kept. */ v2Name: string; } /** * A SourceContext referring to a Gerrit project. */ interface GerritSourceContextResponse { /** * An alias, which may be a branch or tag. */ aliasContext: outputs.containeranalysis.v1.AliasContextResponse; /** * The full project name within the host. Projects may be nested, so "project/subproject" is a valid project name. The "repo name" is the hostURI/project. */ gerritProject: string; /** * The URI of a running Gerrit instance. */ hostUri: string; /** * A revision (commit) ID. */ revisionId: string; } /** * A GitSourceContext denotes a particular revision in a third party Git repository (e.g., GitHub). */ interface GitSourceContextResponse { /** * Git commit hash. */ revisionId: string; /** * Git repository URL. */ url: string; } /** * Indicates the location at which a package was found. */ interface GrafeasV1FileLocationResponse { /** * For jars that are contained inside .war files, this filepath can indicate the path to war file combined with the path to jar file. */ filePath: string; } /** * Identifies the entity that executed the recipe, which is trusted to have correctly performed the operation and populated this provenance. */ interface GrafeasV1SlsaProvenanceZeroTwoSlsaBuilderResponse { } /** * Indicates that the builder claims certain fields in this message to be complete. */ interface GrafeasV1SlsaProvenanceZeroTwoSlsaCompletenessResponse { environment: boolean; materials: boolean; parameters: boolean; } /** * Describes where the config file that kicked off the build came from. This is effectively a pointer to the source where buildConfig came from. */ interface GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSourceResponse { digest: { [key: string]: string; }; entryPoint: string; uri: string; } /** * Identifies the event that kicked off the build. */ interface GrafeasV1SlsaProvenanceZeroTwoSlsaInvocationResponse { configSource: outputs.containeranalysis.v1.GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSourceResponse; environment: { [key: string]: string; }; parameters: { [key: string]: string; }; } /** * The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on. */ interface GrafeasV1SlsaProvenanceZeroTwoSlsaMaterialResponse { digest: { [key: string]: string; }; uri: string; } /** * Other properties of the build. */ interface GrafeasV1SlsaProvenanceZeroTwoSlsaMetadataResponse { buildFinishedOn: string; buildInvocationId: string; buildStartedOn: string; completeness: outputs.containeranalysis.v1.GrafeasV1SlsaProvenanceZeroTwoSlsaCompletenessResponse; reproducible: boolean; } /** * This submessage provides human-readable hints about the purpose of the authority. Because the name of a note acts as its resource reference, it is important to disambiguate the canonical name of the Note (which might be a UUID for security purposes) from "readable" names more suitable for debug output. Note that these hints should not be used to look up authorities in security sensitive contexts, such as when looking up attestations to verify. */ interface HintResponse { /** * The human readable name of this attestation authority, for example "qa". */ humanReadableName: string; } /** * The unique identifier of the update. */ interface IdentityResponse { /** * The revision number of the update. */ revision: number; /** * The revision independent identifier of the update. */ updateId: string; } /** * Basis describes the base image portion (Note) of the DockerImage relationship. Linked occurrences are derived from this or an equivalent image via: FROM Or an equivalent reference, e.g., a tag of the resource_url. */ interface ImageNoteResponse { /** * Immutable. The fingerprint of the base image. */ fingerprint: outputs.containeranalysis.v1.FingerprintResponse; /** * Immutable. The resource_url for the resource representing the basis of associated occurrence images. */ resourceUrl: string; } /** * Details of the derived image portion of the DockerImage relationship. This image would be produced from a Dockerfile with FROM . */ interface ImageOccurrenceResponse { /** * This contains the base image URL for the derived image occurrence. */ baseResourceUrl: string; /** * The number of layers by which this image differs from the associated image basis. */ distance: number; /** * The fingerprint of the derived image. */ fingerprint: outputs.containeranalysis.v1.FingerprintResponse; /** * This contains layer-specific metadata, if populated it has length "distance" and is ordered with [distance] being the layer immediately following the base image and [1] being the final layer. */ layerInfo: outputs.containeranalysis.v1.LayerResponse[]; } interface InTotoProvenanceResponse { /** * required */ builderConfig: outputs.containeranalysis.v1.BuilderConfigResponse; /** * The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on. This is considered to be incomplete unless metadata.completeness.materials is true. Unset or null is equivalent to empty. */ materials: string[]; metadata: outputs.containeranalysis.v1.MetadataResponse; /** * Identifies the configuration used for the build. When combined with materials, this SHOULD fully describe the build, such that re-running this recipe results in bit-for-bit identical output (if the build is reproducible). required */ recipe: outputs.containeranalysis.v1.RecipeResponse; } interface InTotoSlsaProvenanceV1Response { predicate: outputs.containeranalysis.v1.SlsaProvenanceV1Response; predicateType: string; subject: outputs.containeranalysis.v1.SubjectResponse[]; /** * InToto spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement */ type: string; } /** * Spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement The serialized InTotoStatement will be stored as Envelope.payload. Envelope.payloadType is always "application/vnd.in-toto+json". */ interface InTotoStatementResponse { /** * `https://slsa.dev/provenance/v0.1` for SlsaProvenance. */ predicateType: string; provenance: outputs.containeranalysis.v1.InTotoProvenanceResponse; slsaProvenance: outputs.containeranalysis.v1.SlsaProvenanceResponse; slsaProvenanceZeroTwo: outputs.containeranalysis.v1.SlsaProvenanceZeroTwoResponse; subject: outputs.containeranalysis.v1.SubjectResponse[]; /** * Always `https://in-toto.io/Statement/v0.1`. */ type: string; } /** * Justification provides the justification when the state of the assessment if NOT_AFFECTED. */ interface JustificationResponse { /** * Additional details on why this justification was chosen. */ details: string; /** * The justification type for this vulnerability. */ justificationType: string; } interface JwtResponse { /** * The compact encoding of a JWS, which is always three base64 encoded strings joined by periods. For details, see: https://tools.ietf.org/html/rfc7515.html#section-3.1 */ compactJwt: string; } interface KnowledgeBaseResponse { /** * The KB name (generally of the form KB[0-9]+ (e.g., KB123456)). */ name: string; /** * A link to the KB in the [Windows update catalog] (https://www.catalog.update.microsoft.com/). */ url: string; } /** * Layer holds metadata specific to a layer of a Docker image. */ interface LayerResponse { /** * The recovered arguments to the Dockerfile directive. */ arguments: string; /** * The recovered Dockerfile directive used to construct this layer. See https://docs.docker.com/engine/reference/builder/ for more information. */ directive: string; } /** * License information. */ interface LicenseResponse { /** * Comments */ comments: string; /** * Often a single license can be used to represent the licensing terms. Sometimes it is necessary to include a choice of one or more licenses or some combination of license identifiers. Examples: "LGPL-2.1-only OR MIT", "LGPL-2.1-only AND MIT", "GPL-2.0-or-later WITH Bison-exception-2.2". */ expression: string; } /** * An occurrence of a particular package installation found within a system's filesystem. E.g., glibc was found in `/var/lib/dpkg/status`. */ interface LocationResponse { /** * Deprecated. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) * * @deprecated Deprecated. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) */ cpeUri: string; /** * The path from which we gathered that this package/version is installed. */ path: string; /** * Deprecated. The version installed at this location. * * @deprecated Deprecated. The version installed at this location. */ version: outputs.containeranalysis.v1.VersionResponse; } interface MaterialResponse { digest: { [key: string]: string; }; uri: string; } /** * Other properties of the build. */ interface MetadataResponse { /** * The timestamp of when the build completed. */ buildFinishedOn: string; /** * Identifies the particular build invocation, which can be useful for finding associated logs or other ad-hoc analysis. The value SHOULD be globally unique, per in-toto Provenance spec. */ buildInvocationId: string; /** * The timestamp of when the build started. */ buildStartedOn: string; /** * Indicates that the builder claims certain fields in this message to be complete. */ completeness: outputs.containeranalysis.v1.CompletenessResponse; /** * If true, the builder claims that running the recipe on materials will produce bit-for-bit identical output. */ reproducible: boolean; } /** * Details about files that caused a compliance check to fail. display_command is a single command that can be used to display a list of non compliant files. When there is no such command, we can also iterate a list of non compliant file using 'path'. */ interface NonCompliantFileResponse { /** * Command to display the non-compliant files. */ displayCommand: string; /** * Empty if `display_command` is set. */ path: string; /** * Explains why a file is non compliant for a CIS check. */ reason: string; } /** * A detail for a distro and package this vulnerability occurrence was found in and its associated fix (if one is available). */ interface PackageIssueResponse { /** * The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability was found in. */ affectedCpeUri: string; /** * The package this vulnerability was found in. */ affectedPackage: string; /** * The version of the package that is installed on the resource affected by this vulnerability. */ affectedVersion: outputs.containeranalysis.v1.VersionResponse; /** * The distro or language system assigned severity for this vulnerability when that is available and note provider assigned severity when it is not available. */ effectiveSeverity: string; /** * The location at which this package was found. */ fileLocation: outputs.containeranalysis.v1.GrafeasV1FileLocationResponse[]; /** * Whether a fix is available for this package. */ fixAvailable: boolean; /** * The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability was fixed in. It is possible for this to be different from the affected_cpe_uri. */ fixedCpeUri: string; /** * The package this vulnerability was fixed in. It is possible for this to be different from the affected_package. */ fixedPackage: string; /** * The version of the package this vulnerability was fixed in. Setting this to VersionKind.MAXIMUM means no fix is yet available. */ fixedVersion: outputs.containeranalysis.v1.VersionResponse; /** * The type of package (e.g. OS, MAVEN, GO). */ packageType: string; } /** * PackageNote represents a particular package version. */ interface PackageNoteResponse { /** * The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages. */ architecture: string; /** * The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages. */ cpeUri: string; /** * The description of this package. */ description: string; /** * Hash value, typically a file digest, that allows unique identification a specific package. */ digest: outputs.containeranalysis.v1.DigestResponse[]; /** * Deprecated. The various channels by which a package is distributed. * * @deprecated Deprecated. The various channels by which a package is distributed. */ distribution: outputs.containeranalysis.v1.DistributionResponse[]; /** * Licenses that have been declared by the authors of the package. */ license: outputs.containeranalysis.v1.LicenseResponse; /** * A freeform text denoting the maintainer of this package. */ maintainer: string; /** * Immutable. The name of the package. */ name: string; /** * The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.). */ packageType: string; /** * The homepage for this package. */ url: string; /** * The version of the package. */ version: outputs.containeranalysis.v1.VersionResponse; } /** * Details on how a particular software package was installed on a system. */ interface PackageOccurrenceResponse { /** * The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages. */ architecture: string; /** * The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages. */ cpeUri: string; /** * Licenses that have been declared by the authors of the package. */ license: outputs.containeranalysis.v1.LicenseResponse; /** * All of the places within the filesystem versions of this package have been found. */ location: outputs.containeranalysis.v1.LocationResponse[]; /** * The name of the installed package. */ name: string; /** * The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.). */ packageType: string; /** * The version of the package. */ version: outputs.containeranalysis.v1.VersionResponse; } /** * Product contains information about a product and how to uniquely identify it. */ interface ProductResponse { /** * Contains a URI which is vendor-specific. Example: The artifact repository URL of an image. */ genericUri: string; /** * Name of the product. */ name: string; } /** * Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project. */ interface ProjectRepoIdResponse { /** * The ID of the project. */ project: string; /** * The name of the repo. Leave empty for the default repo. */ repoName: string; } interface ProvenanceBuilderResponse { builderDependencies: outputs.containeranalysis.v1.ResourceDescriptorResponse[]; version: { [key: string]: string; }; } /** * Publisher contains information about the publisher of this Note. */ interface PublisherResponse { /** * Provides information about the authority of the issuing party to release the document, in particular, the party's constituency and responsibilities or other obligations. */ issuingAuthority: string; /** * Name of the publisher. Examples: 'Google', 'Google Cloud Platform'. */ name: string; /** * The context or namespace. Contains a URL which is under control of the issuing party and can be used as a globally unique identifier for that issuing party. Example: https://csaf.io */ publisherNamespace: string; } /** * Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe. */ interface RecipeResponse { /** * Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe type were "make", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint. Since the arguments field can greatly vary in structure, depending on the builder and recipe type, this is of form "Any". */ arguments: { [key: string]: string; }[]; /** * Index in materials containing the recipe steps that are not implied by recipe.type. For example, if the recipe type were "make", then this would point to the source containing the Makefile, not the make program itself. Set to -1 if the recipe doesn't come from a material, as zero is default unset value for int64. */ definedInMaterial: string; /** * String identifying the entry point into the build. This is often a path to a configuration file and/or a target label within that file. The syntax and meaning are defined by recipe.type. For example, if the recipe type were "make", then this would reference the directory in which to run make as well as which target to use. */ entryPoint: string; /** * Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy. Since the environment field can greatly vary in structure, depending on the builder and recipe type, this is of form "Any". */ environment: { [key: string]: string; }[]; /** * URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials. */ type: string; } /** * Metadata for any related URL information. */ interface RelatedUrlResponse { /** * Label to describe usage of the URL. */ label: string; /** * Specific URL associated with the resource. */ url: string; } /** * Specifies details on how to handle (and presumably, fix) a vulnerability. */ interface RemediationResponse { /** * Contains a comprehensive human-readable discussion of the remediation. */ details: string; /** * The type of remediation that can be applied. */ remediationType: string; /** * Contains the URL where to obtain the remediation. */ remediationUri: outputs.containeranalysis.v1.RelatedUrlResponse; } /** * A unique identifier for a Cloud Repo. */ interface RepoIdResponse { /** * A combination of a project ID and a repo name. */ projectRepoId: outputs.containeranalysis.v1.ProjectRepoIdResponse; /** * A server-assigned, globally unique identifier. */ uid: string; } interface ResourceDescriptorResponse { annotations: { [key: string]: string; }; content: string; digest: { [key: string]: string; }; downloadLocation: string; mediaType: string; name: string; uri: string; } interface RunDetailsResponse { builder: outputs.containeranalysis.v1.ProvenanceBuilderResponse; byproducts: outputs.containeranalysis.v1.ResourceDescriptorResponse[]; metadata: outputs.containeranalysis.v1.BuildMetadataResponse; } /** * The note representing an SBOM reference. */ interface SBOMReferenceNoteResponse { /** * The format that SBOM takes. E.g. may be spdx, cyclonedx, etc... */ format: string; /** * The version of the format that the SBOM takes. E.g. if the format is spdx, the version may be 2.3. */ version: string; } /** * The occurrence representing an SBOM reference as applied to a specific resource. The occurrence follows the DSSE specification. See https://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more details. */ interface SBOMReferenceOccurrenceResponse { /** * The actual payload that contains the SBOM reference data. */ payload: outputs.containeranalysis.v1.SbomReferenceIntotoPayloadResponse; /** * The kind of payload that SbomReferenceIntotoPayload takes. Since it's in the intoto format, this value is expected to be 'application/vnd.in-toto+json'. */ payloadType: string; /** * The signatures over the payload. */ signatures: outputs.containeranalysis.v1.EnvelopeSignatureResponse[]; } /** * The status of an SBOM generation. */ interface SBOMStatusResponse { /** * If there was an error generating an SBOM, this will indicate what that error was. */ error: string; /** * The progress of the SBOM generation. */ sbomState: string; } /** * The actual payload that contains the SBOM Reference data. The payload follows the intoto statement specification. See https://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md for more details. */ interface SbomReferenceIntotoPayloadResponse { /** * Additional parameters of the Predicate. Includes the actual data about the SBOM. */ predicate: outputs.containeranalysis.v1.SbomReferenceIntotoPredicateResponse; /** * URI identifying the type of the Predicate. */ predicateType: string; /** * Set of software artifacts that the attestation applies to. Each element represents a single software artifact. */ subject: outputs.containeranalysis.v1.SubjectResponse[]; /** * Identifier for the schema of the Statement. */ type: string; } /** * A predicate which describes the SBOM being referenced. */ interface SbomReferenceIntotoPredicateResponse { /** * A map of algorithm to digest of the contents of the SBOM. */ digest: { [key: string]: string; }; /** * The location of the SBOM. */ location: string; /** * The mime type of the SBOM. */ mimeType: string; /** * The person or system referring this predicate to the consumer. */ referrerId: string; } /** * Verifiers (e.g. Kritis implementations) MUST verify signatures with respect to the trust anchors defined in policy (e.g. a Kritis policy). Typically this means that the verifier has been configured with a map from `public_key_id` to public key material (and any required parameters, e.g. signing algorithm). In particular, verification implementations MUST NOT treat the signature `public_key_id` as anything more than a key lookup hint. The `public_key_id` DOES NOT validate or authenticate a public key; it only provides a mechanism for quickly selecting a public key ALREADY CONFIGURED on the verifier through a trusted channel. Verification implementations MUST reject signatures in any of the following circumstances: * The `public_key_id` is not recognized by the verifier. * The public key that `public_key_id` refers to does not verify the signature with respect to the payload. The `signature` contents SHOULD NOT be "attached" (where the payload is included with the serialized `signature` bytes). Verifiers MUST ignore any "attached" payload and only verify signatures with respect to explicitly provided payload (e.g. a `payload` field on the proto message that holds this Signature, or the canonical serialization of the proto message that holds this signature). */ interface SignatureResponse { /** * The identifier for the public key that verifies this signature. * The `public_key_id` is required. * The `public_key_id` SHOULD be an RFC3986 conformant URI. * When possible, the `public_key_id` SHOULD be an immutable reference, such as a cryptographic digest. Examples of valid `public_key_id`s: OpenPGP V4 public key fingerprint: * "openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA" See https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr for more details on this scheme. RFC6920 digest-named SubjectPublicKeyInfo (digest of the DER serialization): * "ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU" * "nih:///sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95a1271589a5" */ publicKeyId: string; /** * The content of the signature, an opaque bytestring. The payload that this signature verifies MUST be unambiguously provided with the Signature during verification. A wrapper message might provide the payload explicitly. Alternatively, a message might have a canonical serialization that can always be unambiguously computed to derive the payload. */ signature: string; } interface SlsaBuilderResponse { } /** * Indicates that the builder claims certain fields in this message to be complete. */ interface SlsaCompletenessResponse { /** * If true, the builder claims that recipe.arguments is complete, meaning that all external inputs are properly captured in the recipe. */ arguments: boolean; /** * If true, the builder claims that recipe.environment is claimed to be complete. */ environment: boolean; /** * If true, the builder claims that materials are complete, usually through some controls to prevent network access. Sometimes called "hermetic". */ materials: boolean; } /** * Other properties of the build. */ interface SlsaMetadataResponse { /** * The timestamp of when the build completed. */ buildFinishedOn: string; /** * Identifies the particular build invocation, which can be useful for finding associated logs or other ad-hoc analysis. The value SHOULD be globally unique, per in-toto Provenance spec. */ buildInvocationId: string; /** * The timestamp of when the build started. */ buildStartedOn: string; /** * Indicates that the builder claims certain fields in this message to be complete. */ completeness: outputs.containeranalysis.v1.SlsaCompletenessResponse; /** * If true, the builder claims that running the recipe on materials will produce bit-for-bit identical output. */ reproducible: boolean; } interface SlsaProvenanceResponse { /** * required */ builder: outputs.containeranalysis.v1.SlsaBuilderResponse; /** * The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on. This is considered to be incomplete unless metadata.completeness.materials is true. Unset or null is equivalent to empty. */ materials: outputs.containeranalysis.v1.MaterialResponse[]; metadata: outputs.containeranalysis.v1.SlsaMetadataResponse; /** * Identifies the configuration used for the build. When combined with materials, this SHOULD fully describe the build, such that re-running this recipe results in bit-for-bit identical output (if the build is reproducible). required */ recipe: outputs.containeranalysis.v1.SlsaRecipeResponse; } /** * Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto Builder renamed to ProvenanceBuilder because of Java conflicts. */ interface SlsaProvenanceV1Response { buildDefinition: outputs.containeranalysis.v1.BuildDefinitionResponse; runDetails: outputs.containeranalysis.v1.RunDetailsResponse; } /** * See full explanation of fields at slsa.dev/provenance/v0.2. */ interface SlsaProvenanceZeroTwoResponse { buildConfig: { [key: string]: string; }; buildType: string; builder: outputs.containeranalysis.v1.GrafeasV1SlsaProvenanceZeroTwoSlsaBuilderResponse; invocation: outputs.containeranalysis.v1.GrafeasV1SlsaProvenanceZeroTwoSlsaInvocationResponse; materials: outputs.containeranalysis.v1.GrafeasV1SlsaProvenanceZeroTwoSlsaMaterialResponse[]; metadata: outputs.containeranalysis.v1.GrafeasV1SlsaProvenanceZeroTwoSlsaMetadataResponse; } /** * Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe. */ interface SlsaRecipeResponse { /** * Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe type were "make", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint. Depending on the recipe Type, the structure may be different. */ arguments: { [key: string]: string; }; /** * Index in materials containing the recipe steps that are not implied by recipe.type. For example, if the recipe type were "make", then this would point to the source containing the Makefile, not the make program itself. Set to -1 if the recipe doesn't come from a material, as zero is default unset value for int64. */ definedInMaterial: string; /** * String identifying the entry point into the build. This is often a path to a configuration file and/or a target label within that file. The syntax and meaning are defined by recipe.type. For example, if the recipe type were "make", then this would reference the directory in which to run make as well as which target to use. */ entryPoint: string; /** * Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy. Depending on the recipe Type, the structure may be different. */ environment: { [key: string]: string; }; /** * URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials. */ type: string; } /** * A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory. */ interface SourceContextResponse { /** * A SourceContext referring to a revision in a Google Cloud Source Repo. */ cloudRepo: outputs.containeranalysis.v1.CloudRepoSourceContextResponse; /** * A SourceContext referring to a Gerrit project. */ gerrit: outputs.containeranalysis.v1.GerritSourceContextResponse; /** * A SourceContext referring to any third party Git repo (e.g., GitHub). */ git: outputs.containeranalysis.v1.GitSourceContextResponse; /** * Labels with user defined metadata. */ labels: { [key: string]: string; }; } /** * Source describes the location of the source used for the build. */ interface SourceResponse { /** * If provided, some of the source code used for the build may be found in these locations, in the case where the source repository had multiple remotes or submodules. This list will not include the context specified in the context field. */ additionalContexts: outputs.containeranalysis.v1.SourceContextResponse[]; /** * If provided, the input binary artifacts for the build came from this location. */ artifactStorageSourceUri: string; /** * If provided, the source code used for the build came from this location. */ context: outputs.containeranalysis.v1.SourceContextResponse; /** * Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (.tar.gz), the FileHash will be for the single path to that file. */ fileHashes: { [key: string]: string; }; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } interface SubjectResponse { /** * `"": ""` Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/attestation/blob/main/spec/field_types.md#DigestSet */ digest: { [key: string]: string; }; name: string; } /** * The Upgrade Distribution represents metadata about the Upgrade for each operating system (CPE). Some distributions have additional metadata around updates, classifying them into various categories and severities. */ interface UpgradeDistributionResponse { /** * The operating system classification of this Upgrade, as specified by the upstream operating system upgrade feed. For Windows the classification is one of the category_ids listed at https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ff357803(v=vs.85) */ classification: string; /** * Required - The specific operating system this metadata applies to. See https://cpe.mitre.org/specification/. */ cpeUri: string; /** * The cve tied to this Upgrade. */ cve: string[]; /** * The severity as specified by the upstream operating system. */ severity: string; } /** * An Upgrade Note represents a potential upgrade of a package to a given version. For each package version combination (i.e. bash 4.0, bash 4.1, bash 4.1.2), there will be an Upgrade Note. For Windows, windows_update field represents the information related to the update. */ interface UpgradeNoteResponse { /** * Metadata about the upgrade for each specific operating system. */ distributions: outputs.containeranalysis.v1.UpgradeDistributionResponse[]; /** * Required for non-Windows OS. The package this Upgrade is for. */ package: string; /** * Required for non-Windows OS. The version of the package in machine + human readable form. */ version: outputs.containeranalysis.v1.VersionResponse; /** * Required for Windows OS. Represents the metadata about the Windows update. */ windowsUpdate: outputs.containeranalysis.v1.WindowsUpdateResponse; } /** * An Upgrade Occurrence represents that a specific resource_url could install a specific upgrade. This presence is supplied via local sources (i.e. it is present in the mirror and the running system has noticed its availability). For Windows, both distribution and windows_update contain information for the Windows update. */ interface UpgradeOccurrenceResponse { /** * Metadata about the upgrade for available for the specific operating system for the resource_url. This allows efficient filtering, as well as making it easier to use the occurrence. */ distribution: outputs.containeranalysis.v1.UpgradeDistributionResponse; /** * Required for non-Windows OS. The package this Upgrade is for. */ package: string; /** * Required for non-Windows OS. The version of the package in a machine + human readable form. */ parsedVersion: outputs.containeranalysis.v1.VersionResponse; /** * Required for Windows OS. Represents the metadata about the Windows update. */ windowsUpdate: outputs.containeranalysis.v1.WindowsUpdateResponse; } /** * Version contains structured information about the version of a package. */ interface VersionResponse { /** * Used to correct mistakes in the version numbering scheme. */ epoch: number; /** * Human readable version string. This string is of the form :- and is only set when kind is NORMAL. */ fullName: string; /** * Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range. */ inclusive: boolean; /** * Distinguishes between sentinel MIN/MAX versions and normal versions. */ kind: string; /** * Required only when version kind is NORMAL. The main part of the version name. */ name: string; /** * The iteration of the package build from the above version. */ revision: string; } /** * VexAssessment provides all publisher provided Vex information that is related to this vulnerability. */ interface VexAssessmentResponse { /** * Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs. * * @deprecated Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs. */ cve: string; /** * Contains information about the impact of this vulnerability, this will change with time. */ impacts: string[]; /** * Justification provides the justification when the state of the assessment if NOT_AFFECTED. */ justification: outputs.containeranalysis.v1.JustificationResponse; /** * The VulnerabilityAssessment note from which this VexAssessment was generated. This will be of the form: `projects/[PROJECT_ID]/notes/[NOTE_ID]`. */ noteName: string; /** * Holds a list of references associated with this vulnerability item and assessment. */ relatedUris: outputs.containeranalysis.v1.RelatedUrlResponse[]; /** * Specifies details on how to handle (and presumably, fix) a vulnerability. */ remediations: outputs.containeranalysis.v1.RemediationResponse[]; /** * Provides the state of this Vulnerability assessment. */ state: string; /** * The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc. */ vulnerabilityId: string; } /** * A single VulnerabilityAssessmentNote represents one particular product's vulnerability assessment for one CVE. */ interface VulnerabilityAssessmentNoteResponse { /** * Represents a vulnerability assessment for the product. */ assessment: outputs.containeranalysis.v1.AssessmentResponse; /** * Identifies the language used by this document, corresponding to IETF BCP 47 / RFC 5646. */ languageCode: string; /** * A detailed description of this Vex. */ longDescription: string; /** * The product affected by this vex. */ product: outputs.containeranalysis.v1.ProductResponse; /** * Publisher details of this Note. */ publisher: outputs.containeranalysis.v1.PublisherResponse; /** * A one sentence description of this Vex. */ shortDescription: string; /** * The title of the note. E.g. `Vex-Debian-11.4` */ title: string; } /** * A security vulnerability that can be found in resources. */ interface VulnerabilityNoteResponse { /** * The CVSS score of this vulnerability. CVSS score is on a scale of 0 - 10 where 0 indicates low severity and 10 indicates high severity. */ cvssScore: number; /** * The full description of the v2 CVSS for this vulnerability. */ cvssV2: outputs.containeranalysis.v1.CVSSResponse; /** * The full description of the CVSSv3 for this vulnerability. */ cvssV3: outputs.containeranalysis.v1.CVSSv3Response; /** * CVSS version used to populate cvss_score and severity. */ cvssVersion: string; /** * Details of all known distros and packages affected by this vulnerability. */ details: outputs.containeranalysis.v1.DetailResponse[]; /** * The note provider assigned severity of this vulnerability. */ severity: string; /** * The time this information was last changed at the source. This is an upstream timestamp from the underlying information source - e.g. Ubuntu security tracker. */ sourceUpdateTime: string; /** * Windows details get their own format because the information format and model don't match a normal detail. Specifically Windows updates are done as patches, thus Windows vulnerabilities really are a missing package, rather than a package being at an incorrect version. */ windowsDetails: outputs.containeranalysis.v1.WindowsDetailResponse[]; } /** * An occurrence of a severity vulnerability on a resource. */ interface VulnerabilityOccurrenceResponse { /** * The CVSS score of this vulnerability. CVSS score is on a scale of 0 - 10 where 0 indicates low severity and 10 indicates high severity. */ cvssScore: number; /** * The cvss v2 score for the vulnerability. */ cvssV2: outputs.containeranalysis.v1.CVSSResponse; /** * CVSS version used to populate cvss_score and severity. */ cvssVersion: string; /** * The cvss v3 score for the vulnerability. */ cvssv3: outputs.containeranalysis.v1.CVSSResponse; /** * The distro assigned severity for this vulnerability when it is available, otherwise this is the note provider assigned severity. When there are multiple PackageIssues for this vulnerability, they can have different effective severities because some might be provided by the distro while others are provided by the language ecosystem for a language pack. For this reason, it is advised to use the effective severity on the PackageIssue level. In the case where multiple PackageIssues have differing effective severities, this field should be the highest severity for any of the PackageIssues. */ effectiveSeverity: string; /** * Occurrence-specific extra details about the vulnerability. */ extraDetails: string; /** * Whether at least one of the affected packages has a fix available. */ fixAvailable: boolean; /** * A detailed description of this vulnerability. */ longDescription: string; /** * The set of affected locations and their fixes (if available) within the associated resource. */ packageIssue: outputs.containeranalysis.v1.PackageIssueResponse[]; /** * URLs related to this vulnerability. */ relatedUrls: outputs.containeranalysis.v1.RelatedUrlResponse[]; /** * The note provider assigned severity of this vulnerability. */ severity: string; /** * A one sentence description of this vulnerability. */ shortDescription: string; /** * The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.). */ type: string; vexAssessment: outputs.containeranalysis.v1.VexAssessmentResponse; } interface WindowsDetailResponse { /** * The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability affects. */ cpeUri: string; /** * The description of this vulnerability. */ description: string; /** * The names of the KBs which have hotfixes to mitigate this vulnerability. Note that there may be multiple hotfixes (and thus multiple KBs) that mitigate a given vulnerability. Currently any listed KBs presence is considered a fix. */ fixingKbs: outputs.containeranalysis.v1.KnowledgeBaseResponse[]; /** * The name of this vulnerability. */ name: string; } /** * Windows Update represents the metadata about the update for the Windows operating system. The fields in this message come from the Windows Update API documented at https://docs.microsoft.com/en-us/windows/win32/api/wuapi/nn-wuapi-iupdate. */ interface WindowsUpdateResponse { /** * The list of categories to which the update belongs. */ categories: outputs.containeranalysis.v1.CategoryResponse[]; /** * The localized description of the update. */ description: string; /** * Required - The unique identifier for the update. */ identity: outputs.containeranalysis.v1.IdentityResponse; /** * The Microsoft Knowledge Base article IDs that are associated with the update. */ kbArticleIds: string[]; /** * The last published timestamp of the update. */ lastPublishedTimestamp: string; /** * The hyperlink to the support information for the update. */ supportUrl: string; /** * The localized title of the update. */ title: string; } } namespace v1alpha1 { /** * Indicates which analysis completed successfully. Multiple types of analysis can be performed on a single resource. */ interface AnalysisCompletedResponse { /** * type of analysis that were completed on a resource. */ analysisType: string[]; } /** * Artifact describes a build product. */ interface ArtifactResponse { /** * Hash or checksum value of a binary, or Docker Registry 2.0 digest of a container. */ checksum: string; /** * Name of the artifact. This may be the path to a binary or jar file, or in the case of a container build, the name used to push the container image to Google Container Registry, as presented to `docker push`. This field is deprecated in favor of the plural `names` field; it continues to exist here to allow existing BuildProvenance serialized to json in google.devtools.containeranalysis.v1alpha1.BuildDetails.provenance_bytes to deserialize back into proto. * * @deprecated Name of the artifact. This may be the path to a binary or jar file, or in the case of a container build, the name used to push the container image to Google Container Registry, as presented to `docker push`. This field is deprecated in favor of the plural `names` field; it continues to exist here to allow existing BuildProvenance serialized to json in google.devtools.containeranalysis.v1alpha1.BuildDetails.provenance_bytes to deserialize back into proto. */ name: string; /** * Related artifact names. This may be the path to a binary or jar file, or in the case of a container build, the name used to push the container image to Google Container Registry, as presented to `docker push`. Note that a single Artifact ID can have multiple names, for example if two tags are applied to one image. */ names: string[]; } /** * Assessment provides all information that is related to a single vulnerability for this product. */ interface AssessmentResponse { /** * Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. */ cve: string; /** * Contains information about the impact of this vulnerability, this will change with time. */ impacts: string[]; /** * Justification provides the justification when the state of the assessment if NOT_AFFECTED. */ justification: outputs.containeranalysis.v1alpha1.JustificationResponse; /** * A detailed description of this Vex. */ longDescription: string; /** * Holds a list of references associated with this vulnerability item and assessment. These uris have additional information about the vulnerability and the assessment itself. E.g. Link to a document which details how this assessment concluded the state of this vulnerability. */ relatedUris: outputs.containeranalysis.v1alpha1.URIResponse[]; /** * Specifies details on how to handle (and presumably, fix) a vulnerability. */ remediations: outputs.containeranalysis.v1alpha1.RemediationResponse[]; /** * A one sentence description of this Vex. */ shortDescription: string; /** * Provides the state of this Vulnerability assessment. */ state: string; /** * The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc. */ vulnerabilityId: string; } /** * This submessage provides human-readable hints about the purpose of the AttestationAuthority. Because the name of a Note acts as its resource reference, it is important to disambiguate the canonical name of the Note (which might be a UUID for security purposes) from "readable" names more suitable for debug output. Note that these hints should NOT be used to look up AttestationAuthorities in security sensitive contexts, such as when looking up Attestations to verify. */ interface AttestationAuthorityHintResponse { /** * The human readable name of this Attestation Authority, for example "qa". */ humanReadableName: string; } /** * Note kind that represents a logical attestation "role" or "authority". For example, an organization might have one `AttestationAuthority` for "QA" and one for "build". This Note is intended to act strictly as a grouping mechanism for the attached Occurrences (Attestations). This grouping mechanism also provides a security boundary, since IAM ACLs gate the ability for a principle to attach an Occurrence to a given Note. It also provides a single point of lookup to find all attached Attestation Occurrences, even if they don't all live in the same project. */ interface AttestationAuthorityResponse { hint: outputs.containeranalysis.v1alpha1.AttestationAuthorityHintResponse; } /** * Occurrence that represents a single "attestation". The authenticity of an Attestation can be verified using the attached signature. If the verifier trusts the public key of the signer, then verifying the signature is sufficient to establish trust. In this circumstance, the AttestationAuthority to which this Attestation is attached is primarily useful for look-up (how to find this Attestation if you already know the Authority and artifact to be verified) and intent (which authority was this attestation intended to sign for). */ interface AttestationResponse { pgpSignedAttestation: outputs.containeranalysis.v1alpha1.PgpSignedAttestationResponse; } /** * Basis describes the base image portion (Note) of the DockerImage relationship. Linked occurrences are derived from this or an equivalent image via: FROM Or an equivalent reference, e.g. a tag of the resource_url. */ interface BasisResponse { /** * The fingerprint of the base image. */ fingerprint: outputs.containeranalysis.v1alpha1.FingerprintResponse; /** * The resource_url for the resource representing the basis of associated occurrence images. */ resourceUrl: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.containeranalysis.v1alpha1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } interface BuildDefinitionResponse { buildType: string; externalParameters: { [key: string]: string; }; internalParameters: { [key: string]: string; }; resolvedDependencies: outputs.containeranalysis.v1alpha1.ResourceDescriptorResponse[]; } /** * Message encapsulating build provenance details. */ interface BuildDetailsResponse { /** * In-Toto Slsa Provenance V1 represents a slsa provenance meeting the slsa spec, wrapped in an in-toto statement. This allows for direct jsonification of a to-spec in-toto slsa statement with a to-spec slsa provenance. */ inTotoSlsaProvenanceV1: outputs.containeranalysis.v1alpha1.InTotoSlsaProvenanceV1Response; /** * Deprecated. See InTotoStatement for the replacement. In-toto Provenance representation as defined in spec. * * @deprecated Deprecated. See InTotoStatement for the replacement. In-toto Provenance representation as defined in spec. */ intotoProvenance: outputs.containeranalysis.v1alpha1.InTotoProvenanceResponse; /** * In-toto Statement representation as defined in spec. The intoto_statement can contain any type of provenance. The serialized payload of the statement can be stored and signed in the Occurrence's envelope. */ intotoStatement: outputs.containeranalysis.v1alpha1.InTotoStatementResponse; /** * The actual provenance */ provenance: outputs.containeranalysis.v1alpha1.BuildProvenanceResponse; /** * Serialized JSON representation of the provenance, used in generating the `BuildSignature` in the corresponding Result. After verifying the signature, `provenance_bytes` can be unmarshalled and compared to the provenance to confirm that it is unchanged. A base64-encoded string representation of the provenance bytes is used for the signature in order to interoperate with openssl which expects this format for signature verification. The serialized form is captured both to avoid ambiguity in how the provenance is marshalled to json as well to prevent incompatibilities with future changes. */ provenanceBytes: string; } interface BuildMetadataResponse { finishedOn: string; invocationId: string; startedOn: string; } /** * Provenance of a build. Contains all information needed to verify the full details about the build from source to completion. */ interface BuildProvenanceResponse { /** * Special options applied to this build. This is a catch-all field where build providers can enter any desired additional details. */ buildOptions: { [key: string]: string; }; /** * Version string of the builder at the time this build was executed. */ builderVersion: string; /** * Output of the build. */ builtArtifacts: outputs.containeranalysis.v1alpha1.ArtifactResponse[]; /** * Commands requested by the build. */ commands: outputs.containeranalysis.v1alpha1.CommandResponse[]; /** * Time at which the build was created. */ createTime: string; /** * E-mail address of the user who initiated this build. Note that this was the user's e-mail address at the time the build was initiated; this address may not represent the same end-user for all time. */ creator: string; /** * Time at which execution of the build was finished. */ finishTime: string; /** * Google Cloud Storage bucket where logs were written. */ logsBucket: string; /** * ID of the project. */ project: string; /** * Details of the Source input to the build. */ sourceProvenance: outputs.containeranalysis.v1alpha1.SourceResponse; /** * Time at which execution of the build was started. */ startTime: string; /** * Trigger identifier if the build was triggered automatically; empty if not. */ triggerId: string; } /** * Message encapsulating the signature of the verified build. */ interface BuildSignatureResponse { /** * An Id for the key used to sign. This could be either an Id for the key stored in `public_key` (such as the Id or fingerprint for a PGP key, or the CN for a cert), or a reference to an external key (such as a reference to a key in Cloud Key Management Service). */ keyId: string; /** * The type of the key, either stored in `public_key` or referenced in `key_id` */ keyType: string; /** * Public key of the builder which can be used to verify that the related findings are valid and unchanged. If `key_type` is empty, this defaults to PEM encoded public keys. This field may be empty if `key_id` references an external key. For Cloud Build based signatures, this is a PEM encoded public key. To verify the Cloud Build signature, place the contents of this field into a file (public.pem). The signature field is base64-decoded into its binary representation in signature.bin, and the provenance bytes from `BuildDetails` are base64-decoded into a binary representation in signed.bin. OpenSSL can then verify the signature: `openssl sha256 -verify public.pem -signature signature.bin signed.bin` */ publicKey: string; /** * Signature of the related `BuildProvenance`, encoded in a base64 string. */ signature: string; } /** * Note holding the version of the provider's builder and the signature of the provenance message in linked BuildDetails. */ interface BuildTypeResponse { /** * Version of the builder which produced this Note. */ builderVersion: string; /** * Signature of the build in Occurrences pointing to the Note containing this `BuilderDetails`. */ signature: outputs.containeranalysis.v1alpha1.BuildSignatureResponse; } interface BuilderConfigResponse { } /** * Common Vulnerability Scoring System. This message is compatible with CVSS v2 and v3. For CVSS v2 details, see https://www.first.org/cvss/v2/guide CVSS v2 calculator: https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator For CVSS v3 details, see https://www.first.org/cvss/specification-document CVSS v3 calculator: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator */ interface CVSSResponse { /** * Defined in CVSS v3, CVSS v2 */ attackComplexity: string; /** * Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. Defined in CVSS v3, CVSS v2 */ attackVector: string; /** * Defined in CVSS v2 */ authentication: string; /** * Defined in CVSS v3, CVSS v2 */ availabilityImpact: string; /** * The base score is a function of the base metric scores. */ baseScore: number; /** * Defined in CVSS v3, CVSS v2 */ confidentialityImpact: string; exploitabilityScore: number; impactScore: number; /** * Defined in CVSS v3, CVSS v2 */ integrityImpact: string; /** * Defined in CVSS v3 */ privilegesRequired: string; /** * Defined in CVSS v3 */ scope: string; /** * Defined in CVSS v3 */ userInteraction: string; } /** * A compliance check that is a CIS benchmark. */ interface CisBenchmarkResponse { /** * The profile level of this CIS benchmark check. */ profileLevel: number; /** * The severity level of this CIS benchmark check. */ severity: string; } /** * Command describes a step performed as part of the build pipeline. */ interface CommandResponse { /** * Command-line arguments used when executing this Command. */ args: string[]; /** * Working directory (relative to project source root) used when running this Command. */ dir: string; /** * Environment variables set before running this Command. */ env: string[]; /** * Name of the command, as presented on the command line, or if the command is packaged as a Docker container, as presented to `docker pull`. */ name: string; /** * The ID(s) of the Command(s) that this Command depends on. */ waitFor: string[]; } /** * Indicates that the builder claims certain fields in this message to be complete. */ interface CompletenessResponse { /** * If true, the builder claims that recipe.arguments is complete, meaning that all external inputs are properly captured in the recipe. */ arguments: boolean; /** * If true, the builder claims that recipe.environment is claimed to be complete. */ environment: boolean; /** * If true, the builder claims that materials are complete, usually through some controls to prevent network access. Sometimes called "hermetic". */ materials: boolean; } /** * ComplianceNote encapsulates all information about a specific compliance check. */ interface ComplianceNoteResponse { /** * Right now we only have one compliance type, but we may add additional types in the future. */ cisBenchmark: outputs.containeranalysis.v1alpha1.CisBenchmarkResponse; /** * A description about this compliance check. */ description: string; /** * A rationale for the existence of this compliance check. */ rationale: string; /** * A description of remediation steps if the compliance check fails. */ remediation: string; /** * Serialized scan instructions with a predefined format. */ scanInstructions: string; /** * The title that identifies this compliance check. */ title: string; /** * The OS and config versions the benchmark applies to. */ version: outputs.containeranalysis.v1alpha1.ComplianceVersionResponse[]; } /** * An indication that the compliance checks in the associated ComplianceNote were not satisfied for particular resources or a specified reason. */ interface ComplianceOccurrenceResponse { /** * The reason for non compliance of these files. */ nonComplianceReason: string; /** * A list of files which are violating compliance checks. */ nonCompliantFiles: outputs.containeranalysis.v1alpha1.NonCompliantFileResponse[]; } /** * Describes the CIS benchmark version that is applicable to a given OS and os version. */ interface ComplianceVersionResponse { /** * The name of the document that defines this benchmark, e.g. "CIS Container-Optimized OS". */ benchmarkDocument: string; /** * The CPE URI (https://cpe.mitre.org/specification/) this benchmark is applicable to. */ cpeUri: string; /** * The version of the benchmark. This is set to the version of the OS-specific CIS document the benchmark is defined in. */ version: string; } /** * A note describing an attestation */ interface DSSEAttestationNoteResponse { /** * DSSEHint hints at the purpose of the attestation authority. */ hint: outputs.containeranalysis.v1alpha1.DSSEHintResponse; } /** * An occurrence describing an attestation on a resource */ interface DSSEAttestationOccurrenceResponse { /** * If doing something security critical, make sure to verify the signatures in this metadata. */ envelope: outputs.containeranalysis.v1alpha1.EnvelopeResponse; statement: outputs.containeranalysis.v1alpha1.InTotoStatementResponse; } /** * This submessage provides human-readable hints about the purpose of the authority. Because the name of a note acts as its resource reference, it is important to disambiguate the canonical name of the Note (which might be a UUID for security purposes) from "readable" names more suitable for debug output. Note that these hints should not be used to look up authorities in security sensitive contexts, such as when looking up attestations to verify. */ interface DSSEHintResponse { /** * The human readable name of this attestation authority, for example "cloudbuild-prod". */ humanReadableName: string; } /** * An artifact that can be deployed in some runtime. */ interface DeployableResponse { /** * Resource URI for the artifact being deployed. */ resourceUri: string[]; } /** * The period during which some deployable was active in a runtime. */ interface DeploymentResponse { /** * Address of the runtime element hosting this deployment. */ address: string; /** * Configuration used to create this deployment. */ config: string; /** * Beginning of the lifetime of this deployment. */ deployTime: string; /** * Platform hosting this deployment. */ platform: string; /** * Resource URI for the artifact being deployed taken from the deployable field with the same name. */ resourceUri: string[]; /** * End of the lifetime of this deployment. */ undeployTime: string; /** * Identity of the user that triggered this deployment. */ userEmail: string; } /** * Derived describes the derived image portion (Occurrence) of the DockerImage relationship. This image would be produced from a Dockerfile with FROM . */ interface DerivedResponse { /** * This contains the base image URL for the derived image occurrence. */ baseResourceUrl: string; /** * The number of layers by which this image differs from the associated image basis. */ distance: number; /** * The fingerprint of the derived image. */ fingerprint: outputs.containeranalysis.v1alpha1.FingerprintResponse; /** * This contains layer-specific metadata, if populated it has length "distance" and is ordered with [distance] being the layer immediately following the base image and [1] being the final layer. */ layerInfo: outputs.containeranalysis.v1alpha1.LayerResponse[]; } /** * Identifies all occurrences of this vulnerability in the package for a specific distro/location For example: glibc in cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2 */ interface DetailResponse { /** * The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/) in which the vulnerability manifests. Examples include distro or storage location for vulnerable jar. This field can be used as a filter in list requests. */ cpeUri: string; /** * A vendor-specific description of this note. */ description: string; /** * The fix for this specific package version. */ fixedLocation: outputs.containeranalysis.v1alpha1.VulnerabilityLocationResponse; /** * Whether this Detail is obsolete. Occurrences are expected not to point to obsolete details. */ isObsolete: boolean; /** * The max version of the package in which the vulnerability exists. */ maxAffectedVersion: outputs.containeranalysis.v1alpha1.VersionResponse; /** * The min version of the package in which the vulnerability exists. */ minAffectedVersion: outputs.containeranalysis.v1alpha1.VersionResponse; /** * The name of the package where the vulnerability was found. This field can be used as a filter in list requests. */ package: string; /** * The type of package; whether native or non native(ruby gems, node.js packages etc) */ packageType: string; /** * The severity (eg: distro assigned severity) for this vulnerability. */ severityName: string; /** * The source from which the information in this Detail was obtained. */ source: string; /** * The vendor of the product. e.g. "google" */ vendor: string; } /** * Digest information. */ interface DigestResponse { /** * `SHA1`, `SHA512` etc. */ algo: string; /** * Value of the digest. */ digestBytes: string; } /** * Provides information about the scan status of a discovered resource. */ interface DiscoveredResponse { /** * The list of analysis that were completed for a resource. */ analysisCompleted: outputs.containeranalysis.v1alpha1.AnalysisCompletedResponse; /** * Indicates any errors encountered during analysis of a resource. There could be 0 or more of these errors. */ analysisError: outputs.containeranalysis.v1alpha1.StatusResponse[]; /** * The status of discovery for the resource. */ analysisStatus: string; /** * When an error is encountered this will contain a LocalizedMessage under details to show to the user. The LocalizedMessage output only and populated by the API. */ analysisStatusError: outputs.containeranalysis.v1alpha1.StatusResponse; /** * The time occurrences related to this discovery occurrence were archived. */ archiveTime: string; /** * Whether the resource is continuously analyzed. */ continuousAnalysis: string; /** * The CPE of the resource being scanned. */ cpe: string; /** * The last time this resource was scanned. */ lastScanTime: string; /** * An operation that indicates the status of the current scan. This field is deprecated, do not use. * * @deprecated Output only. An operation that indicates the status of the current scan. This field is deprecated, do not use. */ operation: outputs.containeranalysis.v1alpha1.OperationResponse; /** * The status of an SBOM generation. */ sbomStatus: outputs.containeranalysis.v1alpha1.SBOMStatusResponse; } /** * A note that indicates a type of analysis a provider would perform. This note exists in a provider's project. A `Discovery` occurrence is created in a consumer's project at the start of analysis. The occurrence's operation will indicate the status of the analysis. Absence of an occurrence linked to this note for a resource indicates that analysis hasn't started. */ interface DiscoveryResponse { /** * The kind of analysis that is handled by this discovery. */ analysisKind: string; } /** * This represents a particular channel of distribution for a given package. e.g. Debian's jessie-backports dpkg mirror */ interface DistributionResponse { /** * The CPU architecture for which packages in this distribution channel were built */ architecture: string; /** * The cpe_uri in [cpe format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. */ cpeUri: string; /** * The distribution channel-specific description of this package. */ description: string; /** * The latest available version of this package in this distribution channel. */ latestVersion: outputs.containeranalysis.v1alpha1.VersionResponse; /** * A freeform string denoting the maintainer of this package. */ maintainer: string; /** * The distribution channel-specific homepage for this package. */ url: string; } /** * DocumentNote represents an SPDX Document Creation Infromation section: https://spdx.github.io/spdx-spec/2-document-creation-information/ */ interface DocumentNoteResponse { /** * Compliance with the SPDX specification includes populating the SPDX fields therein with data related to such fields ("SPDX-Metadata") */ dataLicence: string; /** * Provide a reference number that can be used to understand how to parse and interpret the rest of the file */ spdxVersion: string; } /** * DocumentOccurrence represents an SPDX Document Creation Information section: https://spdx.github.io/spdx-spec/2-document-creation-information/ */ interface DocumentOccurrenceResponse { /** * Identify when the SPDX file was originally created. The date is to be specified according to combined date and time in UTC format as specified in ISO 8601 standard */ createTime: string; /** * A field for creators of the SPDX file to provide general comments about the creation of the SPDX file or any other relevant comment not included in the other fields */ creatorComment: string; /** * Identify who (or what, in the case of a tool) created the SPDX file. If the SPDX file was created by an individual, indicate the person's name */ creators: string[]; /** * A field for creators of the SPDX file content to provide comments to the consumers of the SPDX document */ documentComment: string; /** * Identify any external SPDX documents referenced within this SPDX document */ externalDocumentRefs: string[]; /** * A field for creators of the SPDX file to provide the version of the SPDX License List used when the SPDX file was created */ licenseListVersion: string; /** * Provide an SPDX document specific namespace as a unique absolute Uniform Resource Identifier (URI) as specified in RFC-3986, with the exception of the ‘#’ delimiter */ namespace: string; /** * Identify name of this document as designated by creator */ title: string; } /** * MUST match https://github.com/secure-systems-lab/dsse/blob/master/envelope.proto. An authenticated message of arbitrary type. */ interface EnvelopeResponse { /** * The bytes being signed */ payload: string; /** * The type of payload being signed */ payloadType: string; /** * The signatures over the payload */ signatures: outputs.containeranalysis.v1alpha1.EnvelopeSignatureResponse[]; } /** * A DSSE signature */ interface EnvelopeSignatureResponse { /** * A reference id to the key being used for signing */ keyid: string; /** * The signature itself */ sig: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * An External Reference allows a Package to reference an external source of additional information, metadata, enumerations, asset identifiers, or downloadable content believed to be relevant to the Package */ interface ExternalRefResponse { /** * An External Reference allows a Package to reference an external source of additional information, metadata, enumerations, asset identifiers, or downloadable content believed to be relevant to the Package */ category: string; /** * Human-readable information about the purpose and target of the reference */ comment: string; /** * The unique string with no spaces necessary to access the package-specific information, metadata, or content within the target location */ locator: string; /** * Type of category (e.g. 'npm' for the PACKAGE_MANAGER category) */ type: string; } /** * Indicates the location at which a package was found. */ interface FileLocationResponse { /** * For jars that are contained inside .war files, this filepath can indicate the path to war file combined with the path to jar file. */ filePath: string; } /** * FileNote represents an SPDX File Information section: https://spdx.github.io/spdx-spec/4-file-information/ */ interface FileNoteResponse { /** * Provide a unique identifier to match analysis information on each specific file in a package */ checksum: string[]; /** * This field provides information about the type of file identified */ fileType: string; /** * Identify the full path and filename that corresponds to the file information in this section */ title: string; } /** * FileOccurrence represents an SPDX File Information section: https://spdx.github.io/spdx-spec/4-file-information/ */ interface FileOccurrenceResponse { /** * This field provides a place for the SPDX data creator to record, at the file level, acknowledgements that may be needed to be communicated in some contexts */ attributions: string[]; /** * This field provides a place for the SPDX file creator to record any general comments about the file */ comment: string; /** * This field provides a place for the SPDX file creator to record file contributors */ contributors: string[]; /** * Identify the copyright holder of the file, as well as any dates present */ copyright: string; /** * This field contains the license information actually found in the file, if any */ filesLicenseInfo: string[]; /** * This field contains the license the SPDX file creator has concluded as governing the file or alternative values if the governing license cannot be determined */ licenseConcluded: outputs.containeranalysis.v1alpha1.LicenseResponse; /** * This field provides a place for the SPDX file creator to record license notices or other such related notices found in the file */ notice: string; } /** * A set of properties that uniquely identify a given Docker image. */ interface FingerprintResponse { /** * The layer-id of the final layer in the Docker image's v1 representation. This field can be used as a filter in list requests. */ v1Name: string; /** * The ordered list of v2 blobs that represent a given image. */ v2Blob: string[]; /** * The name of the image's v2 blobs computed via: [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1]) Only the name of the final blob is kept. This field can be used as a filter in list requests. */ v2Name: string; } /** * An alias to a repo revision. */ interface GoogleDevtoolsContaineranalysisV1alpha1AliasContextResponse { /** * The alias kind. */ kind: string; /** * The alias name. */ name: string; } /** * A CloudRepoSourceContext denotes a particular revision in a Google Cloud Source Repo. */ interface GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContextResponse { /** * An alias, which may be a branch or tag. */ aliasContext: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1AliasContextResponse; /** * The ID of the repo. */ repoId: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1RepoIdResponse; /** * A revision ID. */ revisionId: string; } /** * A SourceContext referring to a Gerrit project. */ interface GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContextResponse { /** * An alias, which may be a branch or tag. */ aliasContext: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1AliasContextResponse; /** * The full project name within the host. Projects may be nested, so "project/subproject" is a valid project name. The "repo name" is the hostURI/project. */ gerritProject: string; /** * The URI of a running Gerrit instance. */ hostUri: string; /** * A revision (commit) ID. */ revisionId: string; } /** * A GitSourceContext denotes a particular revision in a third party Git repository (e.g., GitHub). */ interface GoogleDevtoolsContaineranalysisV1alpha1GitSourceContextResponse { /** * Git commit hash. */ revisionId: string; /** * Git repository URL. */ url: string; } /** * Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project. */ interface GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoIdResponse { /** * The ID of the project. */ project: string; /** * The name of the repo. Leave empty for the default repo. */ repoName: string; } /** * A unique identifier for a Cloud Repo. */ interface GoogleDevtoolsContaineranalysisV1alpha1RepoIdResponse { /** * A combination of a project ID and a repo name. */ projectRepoId: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoIdResponse; /** * A server-assigned, globally unique identifier. */ uid: string; } /** * Identifies the entity that executed the recipe, which is trusted to have correctly performed the operation and populated this provenance. */ interface GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaBuilderResponse { } /** * Indicates that the builder claims certain fields in this message to be complete. */ interface GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaCompletenessResponse { /** * If true, the builder claims that invocation.environment is complete. */ environment: boolean; /** * If true, the builder claims that materials is complete. */ materials: boolean; /** * If true, the builder claims that invocation.parameters is complete. */ parameters: boolean; } /** * Describes where the config file that kicked off the build came from. This is effectively a pointer to the source where buildConfig came from. */ interface GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaConfigSourceResponse { /** * Collection of cryptographic digests for the contents of the artifact specified by invocation.configSource.uri. */ digest: { [key: string]: string; }; /** * String identifying the entry point into the build. */ entryPoint: string; /** * URI indicating the identity of the source of the config. */ uri: string; } /** * Identifies the event that kicked off the build. */ interface GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaInvocationResponse { /** * Describes where the config file that kicked off the build came from. */ configSource: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaConfigSourceResponse; /** * Any other builder-controlled inputs necessary for correctly evaluating the build. */ environment: { [key: string]: string; }; /** * Collection of all external inputs that influenced the build on top of invocation.configSource. */ parameters: { [key: string]: string; }; } /** * The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on. */ interface GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaMaterialResponse { /** * Collection of cryptographic digests for the contents of this artifact. */ digest: { [key: string]: string; }; /** * The method by which this artifact was referenced during the build. */ uri: string; } /** * Other properties of the build. */ interface GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaMetadataResponse { /** * The timestamp of when the build completed. */ buildFinishedOn: string; /** * Identifies this particular build invocation, which can be useful for finding associated logs or other ad-hoc analysis. */ buildInvocationId: string; /** * The timestamp of when the build started. */ buildStartedOn: string; /** * Indicates that the builder claims certain fields in this message to be complete. */ completeness: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaCompletenessResponse; /** * If true, the builder claims that running invocation on materials will produce bit-for-bit identical output. */ reproducible: boolean; } /** * A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory. */ interface GoogleDevtoolsContaineranalysisV1alpha1SourceContextResponse { /** * A SourceContext referring to a revision in a Google Cloud Source Repo. */ cloudRepo: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContextResponse; /** * A SourceContext referring to a Gerrit project. */ gerrit: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContextResponse; /** * A SourceContext referring to any third party Git repo (e.g., GitHub). */ git: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1GitSourceContextResponse; /** * Labels with user defined metadata. */ labels: { [key: string]: string; }; } /** * Container message for hash values. */ interface HashResponse { /** * The type of hash that was performed. */ type: string; /** * The hash value. */ value: string; } /** * Helps in identifying the underlying product. This should be treated like a one-of field. Only one field should be set in this proto. This is a workaround because spanner indexes on one-of fields restrict addition and deletion of fields. */ interface IdentifierHelperResponse { /** * The field that is set in the API proto. */ field: string; /** * Contains a URI which is vendor-specific. Example: The artifact repository URL of an image. */ genericUri: string; } interface InTotoProvenanceResponse { /** * required */ builderConfig: outputs.containeranalysis.v1alpha1.BuilderConfigResponse; /** * The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on. This is considered to be incomplete unless metadata.completeness.materials is true. Unset or null is equivalent to empty. */ materials: string[]; metadata: outputs.containeranalysis.v1alpha1.MetadataResponse; /** * Identifies the configuration used for the build. When combined with materials, this SHOULD fully describe the build, such that re-running this recipe results in bit-for-bit identical output (if the build is reproducible). required */ recipe: outputs.containeranalysis.v1alpha1.RecipeResponse; } interface InTotoSlsaProvenanceV1Response { predicate: outputs.containeranalysis.v1alpha1.SlsaProvenanceV1Response; predicateType: string; subject: outputs.containeranalysis.v1alpha1.SubjectResponse[]; /** * InToto spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement */ type: string; } /** * Spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement The serialized InTotoStatement will be stored as Envelope.payload. Envelope.payloadType is always "application/vnd.in-toto+json". */ interface InTotoStatementResponse { /** * "https://slsa.dev/provenance/v0.1" for SlsaProvenance. */ predicateType: string; /** * Generic Grafeas provenance. */ provenance: outputs.containeranalysis.v1alpha1.InTotoProvenanceResponse; /** * SLSA 0.1 provenance. */ slsaProvenance: outputs.containeranalysis.v1alpha1.SlsaProvenanceResponse; /** * SLSA 0.2 provenance. */ slsaProvenanceZeroTwo: outputs.containeranalysis.v1alpha1.SlsaProvenanceZeroTwoResponse; /** * subject is the subjects of the intoto statement */ subject: outputs.containeranalysis.v1alpha1.SubjectResponse[]; /** * Always "https://in-toto.io/Statement/v0.1". */ type: string; } /** * This represents how a particular software package may be installed on a system. */ interface InstallationResponse { /** * The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages. */ architecture: string; /** * The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages. */ cpeUri: string; /** * Licenses that have been declared by the authors of the package. */ license: outputs.containeranalysis.v1alpha1.LicenseResponse; /** * All of the places within the filesystem versions of this package have been found. */ location: outputs.containeranalysis.v1alpha1.LocationResponse[]; /** * The name of the installed package. */ name: string; /** * The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.). */ packageType: string; /** * The version of the package. */ version: outputs.containeranalysis.v1alpha1.VersionResponse; } /** * Justification provides the justification when the state of the assessment if NOT_AFFECTED. */ interface JustificationResponse { /** * Additional details on why this justification was chosen. */ details: string; /** * The justification type for this vulnerability. */ justificationType: string; } /** * Layer holds metadata specific to a layer of a Docker image. */ interface LayerResponse { /** * The recovered arguments to the Dockerfile directive. */ arguments: string; /** * The recovered Dockerfile directive used to construct this layer. */ directive: string; } /** * License information. */ interface LicenseResponse { /** * Comments */ comments: string; /** * Often a single license can be used to represent the licensing terms. Sometimes it is necessary to include a choice of one or more licenses or some combination of license identifiers. Examples: "LGPL-2.1-only OR MIT", "LGPL-2.1-only AND MIT", "GPL-2.0-or-later WITH Bison-exception-2.2". */ expression: string; } /** * An occurrence of a particular package installation found within a system's filesystem. e.g. glibc was found in /var/lib/dpkg/status */ interface LocationResponse { /** * Deprecated. The cpe_uri in [cpe format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. * * @deprecated Deprecated. The cpe_uri in [cpe format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. */ cpeUri: string; /** * The path from which we gathered that this package/version is installed. */ path: string; /** * Deprecated. The version installed at this location. * * @deprecated Deprecated. The version installed at this location. */ version: outputs.containeranalysis.v1alpha1.VersionResponse; } /** * Material is a material used in the generation of the provenance */ interface MaterialResponse { /** * digest is a map from a hash algorithm (e.g. sha256) to the value in the material */ digest: { [key: string]: string; }; /** * uri is the uri of the material */ uri: string; } /** * Other properties of the build. */ interface MetadataResponse { /** * The timestamp of when the build completed. */ buildFinishedOn: string; /** * Identifies the particular build invocation, which can be useful for finding associated logs or other ad-hoc analysis. The value SHOULD be globally unique, per in-toto Provenance spec. */ buildInvocationId: string; /** * The timestamp of when the build started. */ buildStartedOn: string; /** * Indicates that the builder claims certain fields in this message to be complete. */ completeness: outputs.containeranalysis.v1alpha1.CompletenessResponse; /** * If true, the builder claims that running the recipe on materials will produce bit-for-bit identical output. */ reproducible: boolean; } /** * Details about files that caused a compliance check to fail. */ interface NonCompliantFileResponse { /** * Command to display the non-compliant files. */ displayCommand: string; /** * display_command is a single command that can be used to display a list of non compliant files. When there is no such command, we can also iterate a list of non compliant file using 'path'. Empty if `display_command` is set. */ path: string; /** * Explains why a file is non compliant for a CIS check. */ reason: string; } /** * This resource represents a long-running operation that is the result of a network API call. */ interface OperationResponse { /** * If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available. */ done: boolean; /** * The error result of the operation in case of failure or cancellation. */ error: outputs.containeranalysis.v1alpha1.StatusResponse; /** * Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. */ metadata: { [key: string]: string; }; /** * The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`. */ name: string; /** * The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. */ response: { [key: string]: string; }; } /** * PackageInfoNote represents an SPDX Package Information section: https://spdx.github.io/spdx-spec/3-package-information/ */ interface PackageInfoNoteResponse { /** * Indicates whether the file content of this package has been available for or subjected to analysis when creating the SPDX document */ analyzed: boolean; /** * A place for the SPDX data creator to record, at the package level, acknowledgements that may be needed to be communicated in some contexts */ attribution: string; /** * Provide an independently reproducible mechanism that permits unique identification of a specific package that correlates to the data in this SPDX file */ checksum: string; /** * Identify the copyright holders of the package, as well as any dates present */ copyright: string; /** * A more detailed description of the package */ detailedDescription: string; /** * This section identifies the download Universal Resource Locator (URL), or a specific location within a version control system (VCS) for the package at the time that the SPDX file was created */ downloadLocation: string; /** * ExternalRef */ externalRefs: outputs.containeranalysis.v1alpha1.ExternalRefResponse[]; /** * Contain the license the SPDX file creator has concluded as governing the This field is to contain a list of all licenses found in the package. The relationship between licenses (i.e., conjunctive, disjunctive) is not specified in this field – it is simply a listing of all licenses found */ filesLicenseInfo: string[]; /** * Provide a place for the SPDX file creator to record a web site that serves as the package's home page */ homePage: string; /** * List the licenses that have been declared by the authors of the package */ licenseDeclared: outputs.containeranalysis.v1alpha1.LicenseResponse; /** * If the package identified in the SPDX file originated from a different person or organization than identified as Package Supplier, this field identifies from where or whom the package originally came */ originator: string; /** * The type of package: OS, MAVEN, GO, GO_STDLIB, etc. */ packageType: string; /** * A short description of the package */ summaryDescription: string; /** * Identify the actual distribution source for the package/directory identified in the SPDX file */ supplier: string; /** * Identify the full name of the package as given by the Package Originator */ title: string; /** * This field provides an independently reproducible mechanism identifying specific contents of a package based on the actual files (except the SPDX file itself, if it is included in the package) that make up each package and that correlates to the data in this SPDX file */ verificationCode: string; /** * Identify the version of the package */ version: string; } /** * PackageInfoOccurrence represents an SPDX Package Information section: https://spdx.github.io/spdx-spec/3-package-information/ */ interface PackageInfoOccurrenceResponse { /** * A place for the SPDX file creator to record any general comments about the package being described */ comment: string; /** * Provide the actual file name of the package, or path of the directory being treated as a package */ filename: string; /** * Provide a place for the SPDX file creator to record a web site that serves as the package's home page */ homePage: string; /** * package or alternative values, if the governing license cannot be determined */ licenseConcluded: outputs.containeranalysis.v1alpha1.LicenseResponse; /** * The type of package: OS, MAVEN, GO, GO_STDLIB, etc. */ packageType: string; /** * Provide a place for the SPDX file creator to record any relevant background information or additional comments about the origin of the package */ sourceInfo: string; /** * A short description of the package */ summaryDescription: string; /** * Identify the full name of the package as given by the Package Originator */ title: string; /** * Identify the version of the package */ version: string; } /** * This message wraps a location affected by a vulnerability and its associated fix (if one is available). */ interface PackageIssueResponse { /** * The location of the vulnerability. */ affectedLocation: outputs.containeranalysis.v1alpha1.VulnerabilityLocationResponse; /** * The distro or language system assigned severity for this vulnerability when that is available and note provider assigned severity when distro or language system has not yet assigned a severity for this vulnerability. */ effectiveSeverity: string; /** * The location of the available fix for vulnerability. */ fixedLocation: outputs.containeranalysis.v1alpha1.VulnerabilityLocationResponse; /** * The type of package (e.g. OS, MAVEN, GO). */ packageType: string; severityName: string; } /** * This represents a particular package that is distributed over various channels. e.g. glibc (aka libc6) is distributed by many, at various versions. */ interface PackageResponse { /** * The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages. */ architecture: string; /** * The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages. */ cpeUri: string; /** * The description of this package. */ description: string; /** * Hash value, typically a file digest, that allows unique identification a specific package. */ digest: outputs.containeranalysis.v1alpha1.DigestResponse[]; /** * The various channels by which a package is distributed. */ distribution: outputs.containeranalysis.v1alpha1.DistributionResponse[]; /** * Licenses that have been declared by the authors of the package. */ license: outputs.containeranalysis.v1alpha1.LicenseResponse; /** * A freeform text denoting the maintainer of this package. */ maintainer: string; /** * The name of the package. */ name: string; /** * The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.). */ packageType: string; /** * The homepage for this package. */ url: string; /** * The version of the package. */ version: outputs.containeranalysis.v1alpha1.VersionResponse; } /** * An attestation wrapper with a PGP-compatible signature. This message only supports `ATTACHED` signatures, where the payload that is signed is included alongside the signature itself in the same file. */ interface PgpSignedAttestationResponse { /** * Type (for example schema) of the attestation payload that was signed. The verifier must ensure that the provided type is one that the verifier supports, and that the attestation payload is a valid instantiation of that type (for example by validating a JSON schema). */ contentType: string; /** * The cryptographic fingerprint of the key used to generate the signature, as output by, e.g. `gpg --list-keys`. This should be the version 4, full 160-bit fingerprint, expressed as a 40 character hexadecimal string. See https://tools.ietf.org/html/rfc4880#section-12.2 for details. Implementations may choose to acknowledge "LONG", "SHORT", or other abbreviated key IDs, but only the full fingerprint is guaranteed to work. In gpg, the full fingerprint can be retrieved from the `fpr` field returned when calling --list-keys with --with-colons. For example: ``` gpg --with-colons --with-fingerprint --force-v4-certs \ --list-keys attester@example.com tru::1:1513631572:0:3:1:5 pub:...... fpr:::::::::24FF6481B76AC91E66A00AC657A93A81EF3AE6FB: ``` Above, the fingerprint is `24FF6481B76AC91E66A00AC657A93A81EF3AE6FB`. */ pgpKeyId: string; /** * The raw content of the signature, as output by GNU Privacy Guard (GPG) or equivalent. Since this message only supports attached signatures, the payload that was signed must be attached. While the signature format supported is dependent on the verification implementation, currently only ASCII-armored (`--armor` to gpg), non-clearsigned (`--sign` rather than `--clearsign` to gpg) are supported. Concretely, `gpg --sign --armor --output=signature.gpg payload.json` will create the signature content expected in this field in `signature.gpg` for the `payload.json` attestation payload. */ signature: string; } /** * Product contains information about a product and how to uniquely identify it. */ interface ProductResponse { /** * Helps in identifying the underlying product. */ identifierHelper: outputs.containeranalysis.v1alpha1.IdentifierHelperResponse; /** * Name of the product. */ name: string; } interface ProvenanceBuilderResponse { builderDependencies: outputs.containeranalysis.v1alpha1.ResourceDescriptorResponse[]; version: { [key: string]: string; }; } /** * Publisher contains information about the publisher of this Note. */ interface PublisherResponse { /** * Provides information about the authority of the issuing party to release the document, in particular, the party's constituency and responsibilities or other obligations. */ issuingAuthority: string; /** * Name of the publisher. Examples: 'Google', 'Google Cloud Platform'. */ name: string; /** * The context or namespace. Contains a URL which is under control of the issuing party and can be used as a globally unique identifier for that issuing party. Example: https://csaf.io */ publisherNamespace: string; } /** * Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe. */ interface RecipeResponse { /** * Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe type were "make", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint. */ arguments: { [key: string]: string; }[]; /** * Index in materials containing the recipe steps that are not implied by recipe.type. For example, if the recipe type were "make", then this would point to the source containing the Makefile, not the make program itself. Set to -1 if the recipe doesn't come from a material, as zero is default unset value for int64. */ definedInMaterial: string; /** * String identifying the entry point into the build. This is often a path to a configuration file and/or a target label within that file. The syntax and meaning are defined by recipe.type. For example, if the recipe type were "make", then this would reference the directory in which to run make as well as which target to use. */ entryPoint: string; /** * Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy. */ environment: { [key: string]: string; }[]; /** * URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials. */ type: string; } /** * Metadata for any related URL information */ interface RelatedUrlResponse { /** * Label to describe usage of the URL */ label: string; /** * Specific URL to associate with the note */ url: string; } /** * RelationshipNote represents an SPDX Relationship section: https://spdx.github.io/spdx-spec/7-relationships-between-SPDX-elements/ */ interface RelationshipNoteResponse { /** * The type of relationship between the source and target SPDX elements */ type: string; } /** * RelationshipOccurrence represents an SPDX Relationship section: https://spdx.github.io/spdx-spec/7-relationships-between-SPDX-elements/ */ interface RelationshipOccurrenceResponse { /** * A place for the SPDX file creator to record any general comments about the relationship */ comment: string; /** * Also referred to as SPDXRef-A The source SPDX element (file, package, etc) */ source: string; /** * Also referred to as SPDXRef-B The target SPDC element (file, package, etc) In cases where there are "known unknowns", the use of the keyword NOASSERTION can be used The keywords NONE can be used to indicate that an SPDX element (package/file/snippet) has no other elements connected by some relationship to it */ target: string; /** * The type of relationship between the source and target SPDX elements */ type: string; } /** * Specifies details on how to handle (and presumably, fix) a vulnerability. */ interface RemediationResponse { /** * Contains a comprehensive human-readable discussion of the remediation. */ details: string; /** * The type of remediation that can be applied. */ remediationType: string; /** * Contains the URL where to obtain the remediation. */ remediationUri: outputs.containeranalysis.v1alpha1.URIResponse; } /** * RepoSource describes the location of the source in a Google Cloud Source Repository. */ interface RepoSourceResponse { /** * Name of the branch to build. */ branchName: string; /** * Explicit commit SHA to build. */ commitSha: string; /** * ID of the project that owns the repo. */ project: string; /** * Name of the repo. */ repoName: string; /** * Name of the tag to build. */ tagName: string; } interface ResourceDescriptorResponse { annotations: { [key: string]: string; }; content: string; digest: { [key: string]: string; }; downloadLocation: string; mediaType: string; name: string; uri: string; } /** * Resource is an entity that can have metadata. E.g., a Docker image. */ interface ResourceResponse { /** * The hash of the resource content. E.g., the Docker digest. */ contentHash: outputs.containeranalysis.v1alpha1.HashResponse; /** * The name of the resource. E.g., the name of a Docker image - "Debian". */ name: string; /** * The unique URI of the resource. E.g., "https://gcr.io/project/image@sha256:foo" for a Docker image. */ uri: string; } interface RunDetailsResponse { builder: outputs.containeranalysis.v1alpha1.ProvenanceBuilderResponse; byproducts: outputs.containeranalysis.v1alpha1.ResourceDescriptorResponse[]; metadata: outputs.containeranalysis.v1alpha1.BuildMetadataResponse; } /** * The note representing an SBOM reference. */ interface SBOMReferenceNoteResponse { /** * The format that SBOM takes. E.g. may be spdx, cyclonedx, etc... */ format: string; /** * The version of the format that the SBOM takes. E.g. if the format is spdx, the version may be 2.3. */ version: string; } /** * The occurrence representing an SBOM reference as applied to a specific resource. The occurrence follows the DSSE specification. See https://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more details. */ interface SBOMReferenceOccurrenceResponse { /** * The actual payload that contains the SBOM reference data. */ payload: outputs.containeranalysis.v1alpha1.SbomReferenceIntotoPayloadResponse; /** * The kind of payload that SbomReferenceIntotoPayload takes. Since it's in the intoto format, this value is expected to be 'application/vnd.in-toto+json'. */ payloadType: string; /** * The signatures over the payload. */ signatures: outputs.containeranalysis.v1alpha1.EnvelopeSignatureResponse[]; } /** * The status of an SBOM generation. */ interface SBOMStatusResponse { /** * If there was an error generating an SBOM, this will indicate what that error was. */ error: string; /** * The progress of the SBOM generation. */ sbomState: string; } /** * The actual payload that contains the SBOM Reference data. The payload follows the intoto statement specification. See https://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md for more details. */ interface SbomReferenceIntotoPayloadResponse { /** * Additional parameters of the Predicate. Includes the actual data about the SBOM. */ predicate: outputs.containeranalysis.v1alpha1.SbomReferenceIntotoPredicateResponse; /** * URI identifying the type of the Predicate. */ predicateType: string; /** * Set of software artifacts that the attestation applies to. Each element represents a single software artifact. */ subject: outputs.containeranalysis.v1alpha1.SubjectResponse[]; /** * Identifier for the schema of the Statement. */ type: string; } /** * A predicate which describes the SBOM being referenced. */ interface SbomReferenceIntotoPredicateResponse { /** * A map of algorithm to digest of the contents of the SBOM. */ digest: { [key: string]: string; }; /** * The location of the SBOM. */ location: string; /** * The mime type of the SBOM. */ mimeType: string; /** * The person or system referring this predicate to the consumer. */ referrerId: string; } /** * SlsaBuilder encapsulates the identity of the builder of this provenance. */ interface SlsaBuilderResponse { } /** * Indicates that the builder claims certain fields in this message to be complete. */ interface SlsaCompletenessResponse { /** * If true, the builder claims that recipe.arguments is complete, meaning that all external inputs are properly captured in the recipe. */ arguments: boolean; /** * If true, the builder claims that recipe.environment is claimed to be complete. */ environment: boolean; /** * If true, the builder claims that materials are complete, usually through some controls to prevent network access. Sometimes called "hermetic". */ materials: boolean; } /** * Other properties of the build. */ interface SlsaMetadataResponse { /** * The timestamp of when the build completed. */ buildFinishedOn: string; /** * Identifies the particular build invocation, which can be useful for finding associated logs or other ad-hoc analysis. The value SHOULD be globally unique, per in-toto Provenance spec. */ buildInvocationId: string; /** * The timestamp of when the build started. */ buildStartedOn: string; /** * Indicates that the builder claims certain fields in this message to be complete. */ completeness: outputs.containeranalysis.v1alpha1.SlsaCompletenessResponse; /** * If true, the builder claims that running the recipe on materials will produce bit-for-bit identical output. */ reproducible: boolean; } /** * SlsaProvenance is the slsa provenance as defined by the slsa spec. */ interface SlsaProvenanceResponse { /** * builder is the builder of this provenance */ builder: outputs.containeranalysis.v1alpha1.SlsaBuilderResponse; /** * The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on. This is considered to be incomplete unless metadata.completeness.materials is true. Unset or null is equivalent to empty. */ materials: outputs.containeranalysis.v1alpha1.MaterialResponse[]; /** * metadata is the metadata of the provenance */ metadata: outputs.containeranalysis.v1alpha1.SlsaMetadataResponse; /** * Identifies the configuration used for the build. When combined with materials, this SHOULD fully describe the build, such that re-running this recipe results in bit-for-bit identical output (if the build is reproducible). */ recipe: outputs.containeranalysis.v1alpha1.SlsaRecipeResponse; } /** * Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto Builder renamed to ProvenanceBuilder because of Java conflicts. */ interface SlsaProvenanceV1Response { buildDefinition: outputs.containeranalysis.v1alpha1.BuildDefinitionResponse; runDetails: outputs.containeranalysis.v1alpha1.RunDetailsResponse; } /** * SlsaProvenanceZeroTwo is the slsa provenance as defined by the slsa spec. See full explanation of fields at slsa.dev/provenance/v0.2. */ interface SlsaProvenanceZeroTwoResponse { /** * Lists the steps in the build. */ buildConfig: { [key: string]: string; }; /** * URI indicating what type of build was performed. */ buildType: string; /** * Identifies the entity that executed the recipe, which is trusted to have correctly performed the operation and populated this provenance. */ builder: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaBuilderResponse; /** * Identifies the event that kicked off the build. */ invocation: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaInvocationResponse; /** * The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on. */ materials: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaMaterialResponse[]; /** * Other properties of the build. */ metadata: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaMetadataResponse; } /** * Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe. */ interface SlsaRecipeResponse { /** * Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe type were "make", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint. Depending on the recipe Type, the structure may be different. */ arguments: { [key: string]: string; }; /** * Index in materials containing the recipe steps that are not implied by recipe.type. For example, if the recipe type were "make", then this would point to the source containing the Makefile, not the make program itself. Set to -1 if the recipe doesn't come from a material, as zero is default unset value for int64. */ definedInMaterial: string; /** * String identifying the entry point into the build. This is often a path to a configuration file and/or a target label within that file. The syntax and meaning are defined by recipe.type. For example, if the recipe type were "make", then this would reference the directory in which to run make as well as which target to use. */ entryPoint: string; /** * Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy. Depending on the recipe Type, the structure may be different. */ environment: { [key: string]: string; }; /** * URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials. */ type: string; } /** * Source describes the location of the source used for the build. */ interface SourceResponse { /** * If provided, some of the source code used for the build may be found in these locations, in the case where the source repository had multiple remotes or submodules. This list will not include the context specified in the context field. */ additionalContexts: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1SourceContextResponse[]; /** * If provided, the input binary artifacts for the build came from this location. */ artifactStorageSource: outputs.containeranalysis.v1alpha1.StorageSourceResponse; /** * If provided, the source code used for the build came from this location. */ context: outputs.containeranalysis.v1alpha1.GoogleDevtoolsContaineranalysisV1alpha1SourceContextResponse; /** * Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (.tar.gz), the FileHash will be for the single path to that file. */ fileHashes: { [key: string]: string; }; /** * If provided, get source from this location in a Cloud Repo. */ repoSource: outputs.containeranalysis.v1alpha1.RepoSourceResponse; /** * If provided, get the source from this location in Google Cloud Storage. */ storageSource: outputs.containeranalysis.v1alpha1.StorageSourceResponse; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * StorageSource describes the location of the source in an archive file in Google Cloud Storage. */ interface StorageSourceResponse { /** * Google Cloud Storage bucket containing source (see [Bucket Name Requirements] (https://cloud.google.com/storage/docs/bucket-naming#requirements)). */ bucket: string; /** * Google Cloud Storage generation for the object. */ generation: string; /** * Google Cloud Storage object containing source. */ object: string; } /** * Subject refers to the subject of the intoto statement */ interface SubjectResponse { /** * "": "" Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/attestation/blob/main/spec/field_types.md#DigestSet */ digest: { [key: string]: string; }; /** * name is the name of the Subject used here */ name: string; } /** * An URI message. */ interface URIResponse { /** * A label for the URI. */ label: string; /** * The unique resource identifier. */ uri: string; } /** * The Upgrade Distribution represents metadata about the Upgrade for each operating system (CPE). Some distributions have additional metadata around updates, classifying them into various categories and severities. */ interface UpgradeDistributionResponse { /** * The operating system classification of this Upgrade, as specified by the upstream operating system upgrade feed. */ classification: string; /** * Required - The specific operating system this metadata applies to. See https://cpe.mitre.org/specification/. */ cpeUri: string; /** * The cve that would be resolved by this upgrade. */ cve: string[]; /** * The severity as specified by the upstream operating system. */ severity: string; } /** * An Upgrade Note represents a potential upgrade of a package to a given version. For each package version combination (i.e. bash 4.0, bash 4.1, bash 4.1.2), there will be a Upgrade Note. */ interface UpgradeNoteResponse { /** * Metadata about the upgrade for each specific operating system. */ distributions: outputs.containeranalysis.v1alpha1.UpgradeDistributionResponse[]; /** * Required - The package this Upgrade is for. */ package: string; /** * Required - The version of the package in machine + human readable form. */ version: outputs.containeranalysis.v1alpha1.VersionResponse; } /** * An Upgrade Occurrence represents that a specific resource_url could install a specific upgrade. This presence is supplied via local sources (i.e. it is present in the mirror and the running system has noticed its availability). */ interface UpgradeOccurrenceResponse { /** * Metadata about the upgrade for available for the specific operating system for the resource_url. This allows efficient filtering, as well as making it easier to use the occurrence. */ distribution: outputs.containeranalysis.v1alpha1.UpgradeDistributionResponse; /** * Required - The package this Upgrade is for. */ package: string; /** * Required - The version of the package in a machine + human readable form. */ parsedVersion: outputs.containeranalysis.v1alpha1.VersionResponse; } /** * Version contains structured information about the version of the package. For a discussion of this in Debian/Ubuntu: http://serverfault.com/questions/604541/debian-packages-version-convention For a discussion of this in Redhat/Fedora/Centos: http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/ */ interface VersionResponse { /** * Used to correct mistakes in the version numbering scheme. */ epoch: number; /** * Whether this version is vulnerable, when defining the version bounds. For example, if the minimum version is 2.0, inclusive=true would say 2.0 is vulnerable, while inclusive=false would say it's not */ inclusive: boolean; /** * Distinguish between sentinel MIN/MAX versions and normal versions. If kind is not NORMAL, then the other fields are ignored. */ kind: string; /** * The main part of the version name. */ name: string; /** * The iteration of the package build from the above version. */ revision: string; } /** * VexAssessment provides all publisher provided Vex information that is related to this vulnerability. */ interface VexAssessmentResponse { /** * Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. */ cve: string; /** * Contains information about the impact of this vulnerability, this will change with time. */ impacts: string[]; /** * Justification provides the justification when the state of the assessment if NOT_AFFECTED. */ justification: outputs.containeranalysis.v1alpha1.JustificationResponse; /** * The VulnerabilityAssessment note from which this VexAssessment was generated. This will be of the form: `projects/[PROJECT_ID]/notes/[NOTE_ID]`. */ noteName: string; /** * Holds a list of references associated with this vulnerability item and assessment. These uris have additional information about the vulnerability and the assessment itself. E.g. Link to a document which details how this assessment concluded the state of this vulnerability. */ relatedUris: outputs.containeranalysis.v1alpha1.URIResponse[]; /** * Specifies details on how to handle (and presumably, fix) a vulnerability. */ remediations: outputs.containeranalysis.v1alpha1.RemediationResponse[]; /** * Provides the state of this Vulnerability assessment. */ state: string; /** * The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc. */ vulnerabilityId: string; } /** * A single VulnerabilityAssessmentNote represents one particular product's vulnerability assessment for one CVE. Multiple VulnerabilityAssessmentNotes together form a Vex statement. Please go/sds-vex-example for a sample Vex statement in the CSAF format. */ interface VulnerabilityAssessmentNoteResponse { /** * Represents a vulnerability assessment for the product. */ assessment: outputs.containeranalysis.v1alpha1.AssessmentResponse; /** * Identifies the language used by this document, corresponding to IETF BCP 47 / RFC 5646. */ languageCode: string; /** * A detailed description of this Vex. */ longDescription: string; /** * The product affected by this vex. */ product: outputs.containeranalysis.v1alpha1.ProductResponse; /** * Publisher details of this Note. */ publisher: outputs.containeranalysis.v1alpha1.PublisherResponse; /** * A one sentence description of this Vex. */ shortDescription: string; /** * The title of the note. E.g. `Vex-Debian-11.4` */ title: string; } /** * Used by Occurrence to point to where the vulnerability exists and how to fix it. */ interface VulnerabilityDetailsResponse { /** * The CVSS score of this vulnerability. CVSS score is on a scale of 0-10 where 0 indicates low severity and 10 indicates high severity. */ cvssScore: number; /** * The CVSS v2 score of this vulnerability. */ cvssV2: outputs.containeranalysis.v1alpha1.CVSSResponse; /** * The CVSS v3 score of this vulnerability. */ cvssV3: outputs.containeranalysis.v1alpha1.CVSSResponse; /** * CVSS version used to populate cvss_score and severity. */ cvssVersion: string; /** * The distro assigned severity for this vulnerability when that is available and note provider assigned severity when distro has not yet assigned a severity for this vulnerability. When there are multiple package issues for this vulnerability, they can have different effective severities because some might come from the distro and some might come from installed language packs (e.g. Maven JARs or Go binaries). For this reason, it is advised to use the effective severity on the PackageIssue level, as this field may eventually be deprecated. In the case where multiple PackageIssues have different effective severities, the one set here will be the highest severity of any of the PackageIssues. */ effectiveSeverity: string; /** * Occurrence-specific extra details about the vulnerability. */ extraDetails: string; /** * The set of affected locations and their fixes (if available) within the associated resource. */ packageIssue: outputs.containeranalysis.v1alpha1.PackageIssueResponse[]; /** * The note provider assigned Severity of the vulnerability. */ severity: string; /** * The type of package; whether native or non native(ruby gems, node.js packages etc). This may be deprecated in the future because we can have multiple PackageIssues with different package types. */ type: string; /** * VexAssessment provides all publisher provided Vex information that is related to this vulnerability for this resource. */ vexAssessment: outputs.containeranalysis.v1alpha1.VexAssessmentResponse; } /** * The location of the vulnerability */ interface VulnerabilityLocationResponse { /** * The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/) format. Examples include distro or storage location for vulnerable jar. This field can be used as a filter in list requests. */ cpeUri: string; /** * The file location at which this package was found. */ fileLocation: outputs.containeranalysis.v1alpha1.FileLocationResponse[]; /** * The package being described. */ package: string; /** * The version of the package being described. This field can be used as a filter in list requests. */ version: outputs.containeranalysis.v1alpha1.VersionResponse; } /** * VulnerabilityType provides metadata about a security vulnerability. */ interface VulnerabilityTypeResponse { /** * The CVSS score for this Vulnerability. */ cvssScore: number; /** * The full description of the CVSS for version 2. */ cvssV2: outputs.containeranalysis.v1alpha1.CVSSResponse; /** * CVSS version used to populate cvss_score and severity. */ cvssVersion: string; /** * A list of CWE for this vulnerability. For details, see: https://cwe.mitre.org/index.html */ cwe: string[]; /** * All information about the package to specifically identify this vulnerability. One entry per (version range and cpe_uri) the package vulnerability has manifested in. */ details: outputs.containeranalysis.v1alpha1.DetailResponse[]; /** * Note provider assigned impact of the vulnerability */ severity: string; } } namespace v1beta1 { /** * An alias to a repo revision. */ interface AliasContextResponse { /** * The alias kind. */ kind: string; /** * The alias name. */ name: string; } /** * Indicates which analysis completed successfully. Multiple types of analysis can be performed on a single resource. */ interface AnalysisCompletedResponse { analysisType: string[]; } /** * Defines a hash object for use in Materials and Products. */ interface ArtifactHashesResponse { sha256: string; } /** * Artifact describes a build product. */ interface ArtifactResponse { /** * Hash or checksum value of a binary, or Docker Registry 2.0 digest of a container. */ checksum: string; /** * Related artifact names. This may be the path to a binary or jar file, or in the case of a container build, the name used to push the container image to Google Container Registry, as presented to `docker push`. Note that a single Artifact ID can have multiple names, for example if two tags are applied to one image. */ names: string[]; } /** * Defines an object to declare an in-toto artifact rule */ interface ArtifactRuleResponse { artifactRule: string[]; } /** * Assessment provides all information that is related to a single vulnerability for this product. */ interface AssessmentResponse { /** * Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs. * * @deprecated Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs. */ cve: string; /** * Contains information about the impact of this vulnerability, this will change with time. */ impacts: string[]; /** * Justification provides the justification when the state of the assessment if NOT_AFFECTED. */ justification: outputs.containeranalysis.v1beta1.JustificationResponse; /** * A detailed description of this Vex. */ longDescription: string; /** * Holds a list of references associated with this vulnerability item and assessment. These uris have additional information about the vulnerability and the assessment itself. E.g. Link to a document which details how this assessment concluded the state of this vulnerability. */ relatedUris: outputs.containeranalysis.v1beta1.RelatedUrlResponse[]; /** * Specifies details on how to handle (and presumably, fix) a vulnerability. */ remediations: outputs.containeranalysis.v1beta1.RemediationResponse[]; /** * A one sentence description of this Vex. */ shortDescription: string; /** * Provides the state of this Vulnerability assessment. */ state: string; /** * The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc. */ vulnerabilityId: string; } /** * Occurrence that represents a single "attestation". The authenticity of an attestation can be verified using the attached signature. If the verifier trusts the public key of the signer, then verifying the signature is sufficient to establish trust. In this circumstance, the authority to which this attestation is attached is primarily useful for look-up (how to find this attestation if you already know the authority and artifact to be verified) and intent (which authority was this attestation intended to sign for). */ interface AttestationResponse { genericSignedAttestation: outputs.containeranalysis.v1beta1.GenericSignedAttestationResponse; /** * A PGP signed attestation. */ pgpSignedAttestation: outputs.containeranalysis.v1beta1.PgpSignedAttestationResponse; } /** * Note kind that represents a logical attestation "role" or "authority". For example, an organization might have one `Authority` for "QA" and one for "build". This note is intended to act strictly as a grouping mechanism for the attached occurrences (Attestations). This grouping mechanism also provides a security boundary, since IAM ACLs gate the ability for a principle to attach an occurrence to a given note. It also provides a single point of lookup to find all attached attestation occurrences, even if they don't all live in the same project. */ interface AuthorityResponse { /** * Hint hints at the purpose of the attestation authority. */ hint: outputs.containeranalysis.v1beta1.HintResponse; } /** * Basis describes the base image portion (Note) of the DockerImage relationship. Linked occurrences are derived from this or an equivalent image via: FROM Or an equivalent reference, e.g. a tag of the resource_url. */ interface BasisResponse { /** * Immutable. The fingerprint of the base image. */ fingerprint: outputs.containeranalysis.v1beta1.FingerprintResponse; /** * Immutable. The resource_url for the resource representing the basis of associated occurrence images. */ resourceUrl: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.containeranalysis.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } interface BuildDefinitionResponse { buildType: string; externalParameters: { [key: string]: string; }; internalParameters: { [key: string]: string; }; resolvedDependencies: outputs.containeranalysis.v1beta1.ResourceDescriptorResponse[]; } interface BuildMetadataResponse { finishedOn: string; invocationId: string; startedOn: string; } /** * Provenance of a build. Contains all information needed to verify the full details about the build from source to completion. */ interface BuildProvenanceResponse { /** * Special options applied to this build. This is a catch-all field where build providers can enter any desired additional details. */ buildOptions: { [key: string]: string; }; /** * Version string of the builder at the time this build was executed. */ builderVersion: string; /** * Output of the build. */ builtArtifacts: outputs.containeranalysis.v1beta1.ArtifactResponse[]; /** * Commands requested by the build. */ commands: outputs.containeranalysis.v1beta1.CommandResponse[]; /** * Time at which the build was created. */ createTime: string; /** * E-mail address of the user who initiated this build. Note that this was the user's e-mail address at the time the build was initiated; this address may not represent the same end-user for all time. */ creator: string; /** * Time at which execution of the build was finished. */ endTime: string; /** * URI where any logs for this provenance were written. */ logsUri: string; /** * ID of the project. */ project: string; /** * Details of the Source input to the build. */ sourceProvenance: outputs.containeranalysis.v1beta1.SourceResponse; /** * Time at which execution of the build was started. */ startTime: string; /** * Trigger identifier if the build was triggered automatically; empty if not. */ triggerId: string; } /** * Note holding the version of the provider's builder and the signature of the provenance message in the build details occurrence. */ interface BuildResponse { /** * Immutable. Version of the builder which produced this build. */ builderVersion: string; /** * Signature of the build in occurrences pointing to this build note containing build details. */ signature: outputs.containeranalysis.v1beta1.BuildSignatureResponse; } /** * Message encapsulating the signature of the verified build. */ interface BuildSignatureResponse { /** * An ID for the key used to sign. This could be either an ID for the key stored in `public_key` (such as the ID or fingerprint for a PGP key, or the CN for a cert), or a reference to an external key (such as a reference to a key in Cloud Key Management Service). */ keyId: string; /** * The type of the key, either stored in `public_key` or referenced in `key_id`. */ keyType: string; /** * Public key of the builder which can be used to verify that the related findings are valid and unchanged. If `key_type` is empty, this defaults to PEM encoded public keys. This field may be empty if `key_id` references an external key. For Cloud Build based signatures, this is a PEM encoded public key. To verify the Cloud Build signature, place the contents of this field into a file (public.pem). The signature field is base64-decoded into its binary representation in signature.bin, and the provenance bytes from `BuildDetails` are base64-decoded into a binary representation in signed.bin. OpenSSL can then verify the signature: `openssl sha256 -verify public.pem -signature signature.bin signed.bin` */ publicKey: string; /** * Signature of the related `BuildProvenance`. In JSON, this is base-64 encoded. */ signature: string; } /** * Defines an object for the byproducts field in in-toto links. The suggested fields are "stderr", "stdout", and "return-value". */ interface ByProductsResponse { customValues: { [key: string]: string; }; } /** * Common Vulnerability Scoring System. This message is compatible with CVSS v2 and v3. For CVSS v2 details, see https://www.first.org/cvss/v2/guide CVSS v2 calculator: https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator For CVSS v3 details, see https://www.first.org/cvss/specification-document CVSS v3 calculator: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator */ interface CVSSResponse { /** * Defined in CVSS v3, CVSS v2 */ attackComplexity: string; /** * Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. Defined in CVSS v3, CVSS v2 */ attackVector: string; /** * Defined in CVSS v2 */ authentication: string; /** * Defined in CVSS v3, CVSS v2 */ availabilityImpact: string; /** * The base score is a function of the base metric scores. */ baseScore: number; /** * Defined in CVSS v3, CVSS v2 */ confidentialityImpact: string; exploitabilityScore: number; impactScore: number; /** * Defined in CVSS v3, CVSS v2 */ integrityImpact: string; /** * Defined in CVSS v3 */ privilegesRequired: string; /** * Defined in CVSS v3 */ scope: string; /** * Defined in CVSS v3 */ userInteraction: string; } /** * Deprecated. Common Vulnerability Scoring System version 3. For details, see https://www.first.org/cvss/specification-document */ interface CVSSv3Response { attackComplexity: string; /** * Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. */ attackVector: string; availabilityImpact: string; /** * The base score is a function of the base metric scores. */ baseScore: number; confidentialityImpact: string; exploitabilityScore: number; impactScore: number; integrityImpact: string; privilegesRequired: string; scope: string; userInteraction: string; } /** * A CloudRepoSourceContext denotes a particular revision in a Google Cloud Source Repo. */ interface CloudRepoSourceContextResponse { /** * An alias, which may be a branch or tag. */ aliasContext: outputs.containeranalysis.v1beta1.AliasContextResponse; /** * The ID of the repo. */ repoId: outputs.containeranalysis.v1beta1.RepoIdResponse; /** * A revision ID. */ revisionId: string; } /** * Command describes a step performed as part of the build pipeline. */ interface CommandResponse { /** * Command-line arguments used when executing this command. */ args: string[]; /** * Working directory (relative to project source root) used when running this command. */ dir: string; /** * Environment variables set before running this command. */ env: string[]; /** * Name of the command, as presented on the command line, or if the command is packaged as a Docker container, as presented to `docker pull`. */ name: string; /** * The ID(s) of the command(s) that this command depends on. */ waitFor: string[]; } /** * An artifact that can be deployed in some runtime. */ interface DeployableResponse { /** * Resource URI for the artifact being deployed. */ resourceUri: string[]; } /** * The period during which some deployable was active in a runtime. */ interface DeploymentResponse { /** * Address of the runtime element hosting this deployment. */ address: string; /** * Configuration used to create this deployment. */ config: string; /** * Beginning of the lifetime of this deployment. */ deployTime: string; /** * Platform hosting this deployment. */ platform: string; /** * Resource URI for the artifact being deployed taken from the deployable field with the same name. */ resourceUri: string[]; /** * End of the lifetime of this deployment. */ undeployTime: string; /** * Identity of the user that triggered this deployment. */ userEmail: string; } /** * Derived describes the derived image portion (Occurrence) of the DockerImage relationship. This image would be produced from a Dockerfile with FROM . */ interface DerivedResponse { /** * This contains the base image URL for the derived image occurrence. */ baseResourceUrl: string; /** * The number of layers by which this image differs from the associated image basis. */ distance: number; /** * The fingerprint of the derived image. */ fingerprint: outputs.containeranalysis.v1beta1.FingerprintResponse; /** * This contains layer-specific metadata, if populated it has length "distance" and is ordered with [distance] being the layer immediately following the base image and [1] being the final layer. */ layerInfo: outputs.containeranalysis.v1beta1.LayerResponse[]; } /** * Identifies all appearances of this vulnerability in the package for a specific distro/location. For example: glibc in cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2 */ interface DetailResponse { /** * The CPE URI in [cpe format](https://cpe.mitre.org/specification/) in which the vulnerability manifests. Examples include distro or storage location for vulnerable jar. */ cpeUri: string; /** * A vendor-specific description of this note. */ description: string; /** * The fix for this specific package version. */ fixedLocation: outputs.containeranalysis.v1beta1.VulnerabilityLocationResponse; /** * Whether this detail is obsolete. Occurrences are expected not to point to obsolete details. */ isObsolete: boolean; /** * The max version of the package in which the vulnerability exists. */ maxAffectedVersion: outputs.containeranalysis.v1beta1.VersionResponse; /** * The min version of the package in which the vulnerability exists. */ minAffectedVersion: outputs.containeranalysis.v1beta1.VersionResponse; /** * The name of the package where the vulnerability was found. */ package: string; /** * The type of package; whether native or non native(ruby gems, node.js packages etc). */ packageType: string; /** * The severity (eg: distro assigned severity) for this vulnerability. */ severityName: string; /** * The source from which the information in this Detail was obtained. */ source: string; /** * The time this information was last changed at the source. This is an upstream timestamp from the underlying information source - e.g. Ubuntu security tracker. */ sourceUpdateTime: string; /** * The name of the vendor of the product. */ vendor: string; } /** * Details of an attestation occurrence. */ interface DetailsResponse { /** * Attestation for the resource. */ attestation: outputs.containeranalysis.v1beta1.AttestationResponse; } /** * Digest information. */ interface DigestResponse { /** * `SHA1`, `SHA512` etc. */ algo: string; /** * Value of the digest. */ digestBytes: string; } /** * Provides information about the analysis status of a discovered resource. */ interface DiscoveredResponse { analysisCompleted: outputs.containeranalysis.v1beta1.AnalysisCompletedResponse; /** * Indicates any errors encountered during analysis of a resource. There could be 0 or more of these errors. */ analysisError: outputs.containeranalysis.v1beta1.StatusResponse[]; /** * The status of discovery for the resource. */ analysisStatus: string; /** * When an error is encountered this will contain a LocalizedMessage under details to show to the user. The LocalizedMessage is output only and populated by the API. */ analysisStatusError: outputs.containeranalysis.v1beta1.StatusResponse; /** * Whether the resource is continuously analyzed. */ continuousAnalysis: string; /** * The last time continuous analysis was done for this resource. Deprecated, do not use. * * @deprecated The last time continuous analysis was done for this resource. Deprecated, do not use. */ lastAnalysisTime: string; /** * The last time this resource was scanned. */ lastScanTime: string; /** * The status of an SBOM generation. */ sbomStatus: outputs.containeranalysis.v1beta1.SBOMStatusResponse; } /** * A note that indicates a type of analysis a provider would perform. This note exists in a provider's project. A `Discovery` occurrence is created in a consumer's project at the start of analysis. */ interface DiscoveryResponse { /** * Immutable. The kind of analysis that is handled by this discovery. */ analysisKind: string; } /** * This represents a particular channel of distribution for a given package. E.g., Debian's jessie-backports dpkg mirror. */ interface DistributionResponse { /** * The CPU architecture for which packages in this distribution channel were built. */ architecture: string; /** * The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. */ cpeUri: string; /** * The distribution channel-specific description of this package. */ description: string; /** * The latest available version of this package in this distribution channel. */ latestVersion: outputs.containeranalysis.v1beta1.VersionResponse; /** * A freeform string denoting the maintainer of this package. */ maintainer: string; /** * The distribution channel-specific homepage for this package. */ url: string; } /** * DocumentNote represents an SPDX Document Creation Information section: https://spdx.github.io/spdx-spec/2-document-creation-information/ */ interface DocumentNoteResponse { /** * Compliance with the SPDX specification includes populating the SPDX fields therein with data related to such fields ("SPDX-Metadata") */ dataLicence: string; /** * Provide a reference number that can be used to understand how to parse and interpret the rest of the file */ spdxVersion: string; } /** * DocumentOccurrence represents an SPDX Document Creation Information section: https://spdx.github.io/spdx-spec/2-document-creation-information/ */ interface DocumentOccurrenceResponse { /** * Identify when the SPDX file was originally created. The date is to be specified according to combined date and time in UTC format as specified in ISO 8601 standard */ createTime: string; /** * A field for creators of the SPDX file to provide general comments about the creation of the SPDX file or any other relevant comment not included in the other fields */ creatorComment: string; /** * Identify who (or what, in the case of a tool) created the SPDX file. If the SPDX file was created by an individual, indicate the person's name */ creators: string[]; /** * A field for creators of the SPDX file content to provide comments to the consumers of the SPDX document */ documentComment: string; /** * Identify any external SPDX documents referenced within this SPDX document */ externalDocumentRefs: string[]; /** * A field for creators of the SPDX file to provide the version of the SPDX License List used when the SPDX file was created */ licenseListVersion: string; /** * Provide an SPDX document specific namespace as a unique absolute Uniform Resource Identifier (URI) as specified in RFC-3986, with the exception of the ‘#’ delimiter */ namespace: string; /** * Identify name of this document as designated by creator */ title: string; } /** * MUST match https://github.com/secure-systems-lab/dsse/blob/master/envelope.proto. An authenticated message of arbitrary type. */ interface EnvelopeResponse { payload: string; payloadType: string; signatures: outputs.containeranalysis.v1beta1.EnvelopeSignatureResponse[]; } interface EnvelopeSignatureResponse { keyid: string; sig: string; } /** * Defines an object for the environment field in in-toto links. The suggested fields are "variables", "filesystem", and "workdir". */ interface EnvironmentResponse { customValues: { [key: string]: string; }; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * An External Reference allows a Package to reference an external source of additional information, metadata, enumerations, asset identifiers, or downloadable content believed to be relevant to the Package */ interface ExternalRefResponse { /** * An External Reference allows a Package to reference an external source of additional information, metadata, enumerations, asset identifiers, or downloadable content believed to be relevant to the Package */ category: string; /** * Human-readable information about the purpose and target of the reference */ comment: string; /** * The unique string with no spaces necessary to access the package-specific information, metadata, or content within the target location */ locator: string; /** * Type of category (e.g. 'npm' for the PACKAGE_MANAGER category) */ type: string; } /** * FileNote represents an SPDX File Information section: https://spdx.github.io/spdx-spec/4-file-information/ */ interface FileNoteResponse { /** * Provide a unique identifier to match analysis information on each specific file in a package */ checksum: string[]; /** * This field provides information about the type of file identified */ fileType: string; /** * Identify the full path and filename that corresponds to the file information in this section */ title: string; } /** * FileOccurrence represents an SPDX File Information section: https://spdx.github.io/spdx-spec/4-file-information/ */ interface FileOccurrenceResponse { /** * This field provides a place for the SPDX data creator to record, at the file level, acknowledgements that may be needed to be communicated in some contexts */ attributions: string[]; /** * This field provides a place for the SPDX file creator to record any general comments about the file */ comment: string; /** * This field provides a place for the SPDX file creator to record file contributors */ contributors: string[]; /** * Identify the copyright holder of the file, as well as any dates present */ copyright: string; /** * This field contains the license information actually found in the file, if any */ filesLicenseInfo: string[]; /** * This field contains the license the SPDX file creator has concluded as governing the file or alternative values if the governing license cannot be determined */ licenseConcluded: outputs.containeranalysis.v1beta1.LicenseResponse; /** * This field provides a place for the SPDX file creator to record license notices or other such related notices found in the file */ notice: string; } /** * A set of properties that uniquely identify a given Docker image. */ interface FingerprintResponse { /** * The layer ID of the final layer in the Docker image's v1 representation. */ v1Name: string; /** * The ordered list of v2 blobs that represent a given image. */ v2Blob: string[]; /** * The name of the image's v2 blobs computed via: [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1]) Only the name of the final blob is kept. */ v2Name: string; } /** * An attestation wrapper that uses the Grafeas `Signature` message. This attestation must define the `serialized_payload` that the `signatures` verify and any metadata necessary to interpret that plaintext. The signatures should always be over the `serialized_payload` bytestring. */ interface GenericSignedAttestationResponse { /** * Type (for example schema) of the attestation payload that was signed. The verifier must ensure that the provided type is one that the verifier supports, and that the attestation payload is a valid instantiation of that type (for example by validating a JSON schema). */ contentType: string; /** * The serialized payload that is verified by one or more `signatures`. The encoding and semantic meaning of this payload must match what is set in `content_type`. */ serializedPayload: string; /** * One or more signatures over `serialized_payload`. Verifier implementations should consider this attestation message verified if at least one `signature` verifies `serialized_payload`. See `Signature` in common.proto for more details on signature structure and verification. */ signatures: outputs.containeranalysis.v1beta1.SignatureResponse[]; } /** * A SourceContext referring to a Gerrit project. */ interface GerritSourceContextResponse { /** * An alias, which may be a branch or tag. */ aliasContext: outputs.containeranalysis.v1beta1.AliasContextResponse; /** * The full project name within the host. Projects may be nested, so "project/subproject" is a valid project name. The "repo name" is the hostURI/project. */ gerritProject: string; /** * The URI of a running Gerrit instance. */ hostUri: string; /** * A revision (commit) ID. */ revisionId: string; } /** * A GitSourceContext denotes a particular revision in a third party Git repository (e.g., GitHub). */ interface GitSourceContextResponse { /** * Git commit hash. */ revisionId: string; /** * Git repository URL. */ url: string; } /** * Details of a build occurrence. */ interface GrafeasV1beta1BuildDetailsResponse { inTotoSlsaProvenanceV1: outputs.containeranalysis.v1beta1.InTotoSlsaProvenanceV1Response; /** * The actual provenance for the build. */ provenance: outputs.containeranalysis.v1beta1.BuildProvenanceResponse; /** * Serialized JSON representation of the provenance, used in generating the build signature in the corresponding build note. After verifying the signature, `provenance_bytes` can be unmarshalled and compared to the provenance to confirm that it is unchanged. A base64-encoded string representation of the provenance bytes is used for the signature in order to interoperate with openssl which expects this format for signature verification. The serialized form is captured both to avoid ambiguity in how the provenance is marshalled to json as well to prevent incompatibilities with future changes. */ provenanceBytes: string; } /** * Details of a deployment occurrence. */ interface GrafeasV1beta1DeploymentDetailsResponse { /** * Deployment history for the resource. */ deployment: outputs.containeranalysis.v1beta1.DeploymentResponse; } /** * Details of a discovery occurrence. */ interface GrafeasV1beta1DiscoveryDetailsResponse { /** * Analysis status for the discovered resource. */ discovered: outputs.containeranalysis.v1beta1.DiscoveredResponse; } /** * Details of an image occurrence. */ interface GrafeasV1beta1ImageDetailsResponse { /** * Immutable. The child image derived from the base image. */ derivedImage: outputs.containeranalysis.v1beta1.DerivedResponse; } interface GrafeasV1beta1IntotoArtifactResponse { hashes: outputs.containeranalysis.v1beta1.ArtifactHashesResponse; resourceUri: string; } /** * This corresponds to a signed in-toto link - it is made up of one or more signatures and the in-toto link itself. This is used for occurrences of a Grafeas in-toto note. */ interface GrafeasV1beta1IntotoDetailsResponse { signatures: outputs.containeranalysis.v1beta1.GrafeasV1beta1IntotoSignatureResponse[]; signed: outputs.containeranalysis.v1beta1.LinkResponse; } /** * A signature object consists of the KeyID used and the signature itself. */ interface GrafeasV1beta1IntotoSignatureResponse { keyid: string; sig: string; } /** * Details of a package occurrence. */ interface GrafeasV1beta1PackageDetailsResponse { /** * Where the package was installed. */ installation: outputs.containeranalysis.v1beta1.InstallationResponse; } /** * Details of a vulnerability Occurrence. */ interface GrafeasV1beta1VulnerabilityDetailsResponse { /** * The CVSS score of this vulnerability. CVSS score is on a scale of 0-10 where 0 indicates low severity and 10 indicates high severity. */ cvssScore: number; /** * The cvss v2 score for the vulnerability. */ cvssV2: outputs.containeranalysis.v1beta1.CVSSResponse; /** * The cvss v3 score for the vulnerability. */ cvssV3: outputs.containeranalysis.v1beta1.CVSSResponse; /** * CVSS version used to populate cvss_score and severity. */ cvssVersion: string; /** * The distro assigned severity for this vulnerability when it is available, and note provider assigned severity when distro has not yet assigned a severity for this vulnerability. When there are multiple PackageIssues for this vulnerability, they can have different effective severities because some might be provided by the distro while others are provided by the language ecosystem for a language pack. For this reason, it is advised to use the effective severity on the PackageIssue level. In the case where multiple PackageIssues have differing effective severities, this field should be the highest severity for any of the PackageIssues. */ effectiveSeverity: string; /** * Occurrence-specific extra details about the vulnerability. */ extraDetails: string; /** * A detailed description of this vulnerability. */ longDescription: string; /** * The set of affected locations and their fixes (if available) within the associated resource. */ packageIssue: outputs.containeranalysis.v1beta1.PackageIssueResponse[]; /** * URLs related to this vulnerability. */ relatedUrls: outputs.containeranalysis.v1beta1.RelatedUrlResponse[]; /** * The note provider assigned Severity of the vulnerability. */ severity: string; /** * A one sentence description of this vulnerability. */ shortDescription: string; /** * The type of package; whether native or non native(ruby gems, node.js packages etc) */ type: string; vexAssessment: outputs.containeranalysis.v1beta1.VexAssessmentResponse; } /** * Container message for hash values. */ interface HashResponse { /** * The type of hash that was performed. */ type: string; /** * The hash value. */ value: string; } /** * This submessage provides human-readable hints about the purpose of the authority. Because the name of a note acts as its resource reference, it is important to disambiguate the canonical name of the Note (which might be a UUID for security purposes) from "readable" names more suitable for debug output. Note that these hints should not be used to look up authorities in security sensitive contexts, such as when looking up attestations to verify. */ interface HintResponse { /** * The human readable name of this attestation authority, for example "qa". */ humanReadableName: string; } /** * This contains the fields corresponding to the definition of a software supply chain step in an in-toto layout. This information goes into a Grafeas note. */ interface InTotoResponse { /** * This field contains the expected command used to perform the step. */ expectedCommand: string[]; /** * The following fields contain in-toto artifact rules identifying the artifacts that enter this supply chain step, and exit the supply chain step, i.e. materials and products of the step. */ expectedMaterials: outputs.containeranalysis.v1beta1.ArtifactRuleResponse[]; expectedProducts: outputs.containeranalysis.v1beta1.ArtifactRuleResponse[]; /** * This field contains the public keys that can be used to verify the signatures on the step metadata. */ signingKeys: outputs.containeranalysis.v1beta1.SigningKeyResponse[]; /** * This field identifies the name of the step in the supply chain. */ stepName: string; /** * This field contains a value that indicates the minimum number of keys that need to be used to sign the step's in-toto link. */ threshold: string; } interface InTotoSlsaProvenanceV1Response { predicate: outputs.containeranalysis.v1beta1.SlsaProvenanceV1Response; predicateType: string; subject: outputs.containeranalysis.v1beta1.SubjectResponse[]; /** * InToto spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement */ type: string; } /** * This represents how a particular software package may be installed on a system. */ interface InstallationResponse { /** * The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages. */ architecture: string; /** * The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages. */ cpeUri: string; /** * Licenses that have been declared by the authors of the package. */ license: outputs.containeranalysis.v1beta1.LicenseResponse; /** * All of the places within the filesystem versions of this package have been found. */ location: outputs.containeranalysis.v1beta1.LocationResponse[]; /** * The name of the installed package. */ name: string; /** * The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.). */ packageType: string; /** * The version of the package. */ version: outputs.containeranalysis.v1beta1.VersionResponse; } /** * Justification provides the justification when the state of the assessment if NOT_AFFECTED. */ interface JustificationResponse { /** * Additional details on why this justification was chosen. */ details: string; /** * The justification type for this vulnerability. */ justificationType: string; } interface KnowledgeBaseResponse { /** * The KB name (generally of the form KB[0-9]+ i.e. KB123456). */ name: string; /** * A link to the KB in the Windows update catalog - https://www.catalog.update.microsoft.com/ */ url: string; } /** * Layer holds metadata specific to a layer of a Docker image. */ interface LayerResponse { /** * The recovered arguments to the Dockerfile directive. */ arguments: string; /** * The recovered Dockerfile directive used to construct this layer. */ directive: string; } /** * License information. */ interface LicenseResponse { /** * Comments */ comments: string; /** * Often a single license can be used to represent the licensing terms. Sometimes it is necessary to include a choice of one or more licenses or some combination of license identifiers. Examples: "LGPL-2.1-only OR MIT", "LGPL-2.1-only AND MIT", "GPL-2.0-or-later WITH Bison-exception-2.2". */ expression: string; } /** * This corresponds to an in-toto link. */ interface LinkResponse { /** * ByProducts are data generated as part of a software supply chain step, but are not the actual result of the step. */ byproducts: outputs.containeranalysis.v1beta1.ByProductsResponse; /** * This field contains the full command executed for the step. This can also be empty if links are generated for operations that aren't directly mapped to a specific command. Each term in the command is an independent string in the list. An example of a command in the in-toto metadata field is: "command": ["git", "clone", "https://github.com/in-toto/demo-project.git"] */ command: string[]; /** * This is a field that can be used to capture information about the environment. It is suggested for this field to contain information that details environment variables, filesystem information, and the present working directory. The recommended structure of this field is: "environment": { "custom_values": { "variables": "", "filesystem": "", "workdir": "", "": "..." } } */ environment: outputs.containeranalysis.v1beta1.EnvironmentResponse; /** * Materials are the supply chain artifacts that go into the step and are used for the operation performed. The key of the map is the path of the artifact and the structure contains the recorded hash information. An example is: "materials": [ { "resource_uri": "foo/bar", "hashes": { "sha256": "ebebf...", : } } ] */ materials: outputs.containeranalysis.v1beta1.GrafeasV1beta1IntotoArtifactResponse[]; /** * Products are the supply chain artifacts generated as a result of the step. The structure is identical to that of materials. */ products: outputs.containeranalysis.v1beta1.GrafeasV1beta1IntotoArtifactResponse[]; } /** * An occurrence of a particular package installation found within a system's filesystem. E.g., glibc was found in `/var/lib/dpkg/status`. */ interface LocationResponse { /** * Deprecated. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. * * @deprecated Deprecated. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. */ cpeUri: string; /** * The path from which we gathered that this package/version is installed. */ path: string; /** * Deprecated. The version installed at this location. * * @deprecated Deprecated. The version installed at this location. */ version: outputs.containeranalysis.v1beta1.VersionResponse; } /** * PackageInfoNote represents an SPDX Package Information section: https://spdx.github.io/spdx-spec/3-package-information/ */ interface PackageInfoNoteResponse { /** * Indicates whether the file content of this package has been available for or subjected to analysis when creating the SPDX document */ analyzed: boolean; /** * A place for the SPDX data creator to record, at the package level, acknowledgements that may be needed to be communicated in some contexts */ attribution: string; /** * Provide an independently reproducible mechanism that permits unique identification of a specific package that correlates to the data in this SPDX file */ checksum: string; /** * Identify the copyright holders of the package, as well as any dates present */ copyright: string; /** * A more detailed description of the package */ detailedDescription: string; /** * This section identifies the download Universal Resource Locator (URL), or a specific location within a version control system (VCS) for the package at the time that the SPDX file was created */ downloadLocation: string; /** * ExternalRef */ externalRefs: outputs.containeranalysis.v1beta1.ExternalRefResponse[]; /** * Contain the license the SPDX file creator has concluded as governing the This field is to contain a list of all licenses found in the package. The relationship between licenses (i.e., conjunctive, disjunctive) is not specified in this field – it is simply a listing of all licenses found */ filesLicenseInfo: string[]; /** * Provide a place for the SPDX file creator to record a web site that serves as the package's home page */ homePage: string; /** * List the licenses that have been declared by the authors of the package */ licenseDeclared: outputs.containeranalysis.v1beta1.LicenseResponse; /** * If the package identified in the SPDX file originated from a different person or organization than identified as Package Supplier, this field identifies from where or whom the package originally came */ originator: string; /** * The type of package: OS, MAVEN, GO, GO_STDLIB, etc. */ packageType: string; /** * A short description of the package */ summaryDescription: string; /** * Identify the actual distribution source for the package/directory identified in the SPDX file */ supplier: string; /** * Identify the full name of the package as given by the Package Originator */ title: string; /** * This field provides an independently reproducible mechanism identifying specific contents of a package based on the actual files (except the SPDX file itself, if it is included in the package) that make up each package and that correlates to the data in this SPDX file */ verificationCode: string; /** * Identify the version of the package */ version: string; } /** * PackageInfoOccurrence represents an SPDX Package Information section: https://spdx.github.io/spdx-spec/3-package-information/ */ interface PackageInfoOccurrenceResponse { /** * A place for the SPDX file creator to record any general comments about the package being described */ comment: string; /** * Provide the actual file name of the package, or path of the directory being treated as a package */ filename: string; /** * Provide a place for the SPDX file creator to record a web site that serves as the package's home page */ homePage: string; /** * package or alternative values, if the governing license cannot be determined */ licenseConcluded: outputs.containeranalysis.v1beta1.LicenseResponse; /** * The type of package: OS, MAVEN, GO, GO_STDLIB, etc. */ packageType: string; /** * Provide a place for the SPDX file creator to record any relevant background information or additional comments about the origin of the package */ sourceInfo: string; /** * A short description of the package */ summaryDescription: string; /** * Identify the full name of the package as given by the Package Originator */ title: string; /** * Identify the version of the package */ version: string; } /** * This message wraps a location affected by a vulnerability and its associated fix (if one is available). */ interface PackageIssueResponse { /** * The location of the vulnerability. */ affectedLocation: outputs.containeranalysis.v1beta1.VulnerabilityLocationResponse; /** * The distro or language system assigned severity for this vulnerability when that is available and note provider assigned severity when it is not available. */ effectiveSeverity: string; /** * The location of the available fix for vulnerability. */ fixedLocation: outputs.containeranalysis.v1beta1.VulnerabilityLocationResponse; /** * The type of package (e.g. OS, MAVEN, GO). */ packageType: string; /** * Deprecated, use Details.effective_severity instead The severity (e.g., distro assigned severity) for this vulnerability. * * @deprecated Deprecated, use Details.effective_severity instead The severity (e.g., distro assigned severity) for this vulnerability. */ severityName: string; } /** * Package represents a particular package version. */ interface PackageResponse { /** * The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages. */ architecture: string; /** * The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages. */ cpeUri: string; /** * The description of this package. */ description: string; /** * Hash value, typically a file digest, that allows unique identification a specific package. */ digest: outputs.containeranalysis.v1beta1.DigestResponse[]; /** * The various channels by which a package is distributed. */ distribution: outputs.containeranalysis.v1beta1.DistributionResponse[]; /** * Licenses that have been declared by the authors of the package. */ license: outputs.containeranalysis.v1beta1.LicenseResponse; /** * A freeform text denoting the maintainer of this package. */ maintainer: string; /** * Immutable. The name of the package. */ name: string; /** * The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.). */ packageType: string; /** * The homepage for this package. */ url: string; /** * The version of the package. */ version: outputs.containeranalysis.v1beta1.VersionResponse; } /** * An attestation wrapper with a PGP-compatible signature. This message only supports `ATTACHED` signatures, where the payload that is signed is included alongside the signature itself in the same file. */ interface PgpSignedAttestationResponse { /** * Type (for example schema) of the attestation payload that was signed. The verifier must ensure that the provided type is one that the verifier supports, and that the attestation payload is a valid instantiation of that type (for example by validating a JSON schema). */ contentType: string; /** * The cryptographic fingerprint of the key used to generate the signature, as output by, e.g. `gpg --list-keys`. This should be the version 4, full 160-bit fingerprint, expressed as a 40 character hexadecimal string. See https://tools.ietf.org/html/rfc4880#section-12.2 for details. Implementations may choose to acknowledge "LONG", "SHORT", or other abbreviated key IDs, but only the full fingerprint is guaranteed to work. In gpg, the full fingerprint can be retrieved from the `fpr` field returned when calling --list-keys with --with-colons. For example: ``` gpg --with-colons --with-fingerprint --force-v4-certs \ --list-keys attester@example.com tru::1:1513631572:0:3:1:5 pub:...... fpr:::::::::24FF6481B76AC91E66A00AC657A93A81EF3AE6FB: ``` Above, the fingerprint is `24FF6481B76AC91E66A00AC657A93A81EF3AE6FB`. */ pgpKeyId: string; /** * The raw content of the signature, as output by GNU Privacy Guard (GPG) or equivalent. Since this message only supports attached signatures, the payload that was signed must be attached. While the signature format supported is dependent on the verification implementation, currently only ASCII-armored (`--armor` to gpg), non-clearsigned (`--sign` rather than `--clearsign` to gpg) are supported. Concretely, `gpg --sign --armor --output=signature.gpg payload.json` will create the signature content expected in this field in `signature.gpg` for the `payload.json` attestation payload. */ signature: string; } /** * Product contains information about a product and how to uniquely identify it. */ interface ProductResponse { /** * Contains a URI which is vendor-specific. Example: The artifact repository URL of an image. */ genericUri: string; /** * Name of the product. */ name: string; } /** * Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project. */ interface ProjectRepoIdResponse { /** * The ID of the project. */ project: string; /** * The name of the repo. Leave empty for the default repo. */ repoName: string; } interface ProvenanceBuilderResponse { builderDependencies: outputs.containeranalysis.v1beta1.ResourceDescriptorResponse[]; version: { [key: string]: string; }; } /** * Publisher contains information about the publisher of this Note. */ interface PublisherResponse { /** * Provides information about the authority of the issuing party to release the document, in particular, the party's constituency and responsibilities or other obligations. */ issuingAuthority: string; /** * Name of the publisher. Examples: 'Google', 'Google Cloud Platform'. */ name: string; /** * The context or namespace. Contains a URL which is under control of the issuing party and can be used as a globally unique identifier for that issuing party. Example: https://csaf.io */ publisherNamespace: string; } /** * Metadata for any related URL information. */ interface RelatedUrlResponse { /** * Label to describe usage of the URL. */ label: string; /** * Specific URL associated with the resource. */ url: string; } /** * RelationshipNote represents an SPDX Relationship section: https://spdx.github.io/spdx-spec/7-relationships-between-SPDX-elements/ */ interface RelationshipNoteResponse { /** * The type of relationship between the source and target SPDX elements */ type: string; } /** * RelationshipOccurrence represents an SPDX Relationship section: https://spdx.github.io/spdx-spec/7-relationships-between-SPDX-elements/ */ interface RelationshipOccurrenceResponse { /** * A place for the SPDX file creator to record any general comments about the relationship */ comment: string; /** * Also referred to as SPDXRef-A The source SPDX element (file, package, etc) */ source: string; /** * Also referred to as SPDXRef-B The target SPDC element (file, package, etc) In cases where there are "known unknowns", the use of the keyword NOASSERTION can be used The keywords NONE can be used to indicate that an SPDX element (package/file/snippet) has no other elements connected by some relationship to it */ target: string; /** * The type of relationship between the source and target SPDX elements */ type: string; } /** * Specifies details on how to handle (and presumably, fix) a vulnerability. */ interface RemediationResponse { /** * Contains a comprehensive human-readable discussion of the remediation. */ details: string; /** * The type of remediation that can be applied. */ remediationType: string; /** * Contains the URL where to obtain the remediation. */ remediationUri: outputs.containeranalysis.v1beta1.RelatedUrlResponse; } /** * A unique identifier for a Cloud Repo. */ interface RepoIdResponse { /** * A combination of a project ID and a repo name. */ projectRepoId: outputs.containeranalysis.v1beta1.ProjectRepoIdResponse; /** * A server-assigned, globally unique identifier. */ uid: string; } interface ResourceDescriptorResponse { annotations: { [key: string]: string; }; content: string; digest: { [key: string]: string; }; downloadLocation: string; mediaType: string; name: string; uri: string; } /** * An entity that can have metadata. For example, a Docker image. */ interface ResourceResponse { /** * Deprecated, do not use. Use uri instead. The hash of the resource content. For example, the Docker digest. * * @deprecated Deprecated, do not use. Use uri instead. The hash of the resource content. For example, the Docker digest. */ contentHash: outputs.containeranalysis.v1beta1.HashResponse; /** * Deprecated, do not use. Use uri instead. The name of the resource. For example, the name of a Docker image - "Debian". * * @deprecated Deprecated, do not use. Use uri instead. The name of the resource. For example, the name of a Docker image - "Debian". */ name: string; /** * The unique URI of the resource. For example, `https://gcr.io/project/image@sha256:foo` for a Docker image. */ uri: string; } interface RunDetailsResponse { builder: outputs.containeranalysis.v1beta1.ProvenanceBuilderResponse; byproducts: outputs.containeranalysis.v1beta1.ResourceDescriptorResponse[]; metadata: outputs.containeranalysis.v1beta1.BuildMetadataResponse; } /** * The note representing an SBOM reference. */ interface SBOMReferenceNoteResponse { /** * The format that SBOM takes. E.g. may be spdx, cyclonedx, etc... */ format: string; /** * The version of the format that the SBOM takes. E.g. if the format is spdx, the version may be 2.3. */ version: string; } /** * The occurrence representing an SBOM reference as applied to a specific resource. The occurrence follows the DSSE specification. See https://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more details. */ interface SBOMReferenceOccurrenceResponse { /** * The actual payload that contains the SBOM reference data. */ payload: outputs.containeranalysis.v1beta1.SbomReferenceIntotoPayloadResponse; /** * The kind of payload that SbomReferenceIntotoPayload takes. Since it's in the intoto format, this value is expected to be 'application/vnd.in-toto+json'. */ payloadType: string; /** * The signatures over the payload. */ signatures: outputs.containeranalysis.v1beta1.EnvelopeSignatureResponse[]; } /** * The status of an SBOM generation. */ interface SBOMStatusResponse { /** * If there was an error generating an SBOM, this will indicate what that error was. */ error: string; /** * The progress of the SBOM generation. */ sbomState: string; } /** * The actual payload that contains the SBOM Reference data. The payload follows the intoto statement specification. See https://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md for more details. */ interface SbomReferenceIntotoPayloadResponse { /** * Additional parameters of the Predicate. Includes the actual data about the SBOM. */ predicate: outputs.containeranalysis.v1beta1.SbomReferenceIntotoPredicateResponse; /** * URI identifying the type of the Predicate. */ predicateType: string; /** * Set of software artifacts that the attestation applies to. Each element represents a single software artifact. */ subject: outputs.containeranalysis.v1beta1.SubjectResponse[]; /** * Identifier for the schema of the Statement. */ type: string; } /** * A predicate which describes the SBOM being referenced. */ interface SbomReferenceIntotoPredicateResponse { /** * A map of algorithm to digest of the contents of the SBOM. */ digest: { [key: string]: string; }; /** * The location of the SBOM. */ location: string; /** * The mime type of the SBOM. */ mimeType: string; /** * The person or system referring this predicate to the consumer. */ referrerId: string; } /** * Verifiers (e.g. Kritis implementations) MUST verify signatures with respect to the trust anchors defined in policy (e.g. a Kritis policy). Typically this means that the verifier has been configured with a map from `public_key_id` to public key material (and any required parameters, e.g. signing algorithm). In particular, verification implementations MUST NOT treat the signature `public_key_id` as anything more than a key lookup hint. The `public_key_id` DOES NOT validate or authenticate a public key; it only provides a mechanism for quickly selecting a public key ALREADY CONFIGURED on the verifier through a trusted channel. Verification implementations MUST reject signatures in any of the following circumstances: * The `public_key_id` is not recognized by the verifier. * The public key that `public_key_id` refers to does not verify the signature with respect to the payload. The `signature` contents SHOULD NOT be "attached" (where the payload is included with the serialized `signature` bytes). Verifiers MUST ignore any "attached" payload and only verify signatures with respect to explicitly provided payload (e.g. a `payload` field on the proto message that holds this Signature, or the canonical serialization of the proto message that holds this signature). */ interface SignatureResponse { /** * The identifier for the public key that verifies this signature. * The `public_key_id` is required. * The `public_key_id` SHOULD be an RFC3986 conformant URI. * When possible, the `public_key_id` SHOULD be an immutable reference, such as a cryptographic digest. Examples of valid `public_key_id`s: OpenPGP V4 public key fingerprint: * "openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA" See https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr for more details on this scheme. RFC6920 digest-named SubjectPublicKeyInfo (digest of the DER serialization): * "ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU" * "nih:///sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95a1271589a5" */ publicKeyId: string; /** * The content of the signature, an opaque bytestring. The payload that this signature verifies MUST be unambiguously provided with the Signature during verification. A wrapper message might provide the payload explicitly. Alternatively, a message might have a canonical serialization that can always be unambiguously computed to derive the payload. */ signature: string; } /** * This defines the format used to record keys used in the software supply chain. An in-toto link is attested using one or more keys defined in the in-toto layout. An example of this is: { "key_id": "776a00e29f3559e0141b3b096f696abc6cfb0c657ab40f441132b345b0...", "key_type": "rsa", "public_key_value": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0B...", "key_scheme": "rsassa-pss-sha256" } The format for in-toto's key definition can be found in section 4.2 of the in-toto specification. */ interface SigningKeyResponse { /** * key_id is an identifier for the signing key. */ keyId: string; /** * This field contains the corresponding signature scheme. Eg: "rsassa-pss-sha256". */ keyScheme: string; /** * This field identifies the specific signing method. Eg: "rsa", "ed25519", and "ecdsa". */ keyType: string; /** * This field contains the actual public key. */ publicKeyValue: string; } /** * Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto Builder renamed to ProvenanceBuilder because of Java conflicts. */ interface SlsaProvenanceV1Response { buildDefinition: outputs.containeranalysis.v1beta1.BuildDefinitionResponse; runDetails: outputs.containeranalysis.v1beta1.RunDetailsResponse; } /** * A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory. */ interface SourceContextResponse { /** * A SourceContext referring to a revision in a Google Cloud Source Repo. */ cloudRepo: outputs.containeranalysis.v1beta1.CloudRepoSourceContextResponse; /** * A SourceContext referring to a Gerrit project. */ gerrit: outputs.containeranalysis.v1beta1.GerritSourceContextResponse; /** * A SourceContext referring to any third party Git repo (e.g., GitHub). */ git: outputs.containeranalysis.v1beta1.GitSourceContextResponse; /** * Labels with user defined metadata. */ labels: { [key: string]: string; }; } /** * Source describes the location of the source used for the build. */ interface SourceResponse { /** * If provided, some of the source code used for the build may be found in these locations, in the case where the source repository had multiple remotes or submodules. This list will not include the context specified in the context field. */ additionalContexts: outputs.containeranalysis.v1beta1.SourceContextResponse[]; /** * If provided, the input binary artifacts for the build came from this location. */ artifactStorageSourceUri: string; /** * If provided, the source code used for the build came from this location. */ context: outputs.containeranalysis.v1beta1.SourceContextResponse; /** * Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (.tar.gz), the FileHash will be for the single path to that file. */ fileHashes: { [key: string]: string; }; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Set of software artifacts that the attestation applies to. Each element represents a single software artifact. */ interface SubjectResponse { /** * `"": ""` Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/attestation/blob/main/spec/field_types.md#DigestSet */ digest: { [key: string]: string; }; /** * Identifier to distinguish this artifact from others within the subject. */ name: string; } /** * Version contains structured information about the version of a package. */ interface VersionResponse { /** * Used to correct mistakes in the version numbering scheme. */ epoch: number; /** * Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range. */ inclusive: boolean; /** * Distinguishes between sentinel MIN/MAX versions and normal versions. */ kind: string; /** * Required only when version kind is NORMAL. The main part of the version name. */ name: string; /** * The iteration of the package build from the above version. */ revision: string; } /** * VexAssessment provides all publisher provided Vex information that is related to this vulnerability. */ interface VexAssessmentResponse { /** * Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs. * * @deprecated Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) tracking number for the vulnerability. Deprecated: Use vulnerability_id instead to denote CVEs. */ cve: string; /** * Contains information about the impact of this vulnerability, this will change with time. */ impacts: string[]; /** * Justification provides the justification when the state of the assessment if NOT_AFFECTED. */ justification: outputs.containeranalysis.v1beta1.JustificationResponse; /** * The VulnerabilityAssessment note from which this VexAssessment was generated. This will be of the form: `projects/[PROJECT_ID]/notes/[NOTE_ID]`. */ noteName: string; /** * Holds a list of references associated with this vulnerability item and assessment. */ relatedUris: outputs.containeranalysis.v1beta1.RelatedUrlResponse[]; /** * Specifies details on how to handle (and presumably, fix) a vulnerability. */ remediations: outputs.containeranalysis.v1beta1.RemediationResponse[]; /** * Provides the state of this Vulnerability assessment. */ state: string; /** * The vulnerability identifier for this Assessment. Will hold one of common identifiers e.g. CVE, GHSA etc. */ vulnerabilityId: string; } /** * A single VulnerabilityAssessmentNote represents one particular product's vulnerability assessment for one CVE. */ interface VulnerabilityAssessmentNoteResponse { /** * Represents a vulnerability assessment for the product. */ assessment: outputs.containeranalysis.v1beta1.AssessmentResponse; /** * Identifies the language used by this document, corresponding to IETF BCP 47 / RFC 5646. */ languageCode: string; /** * A detailed description of this Vex. */ longDescription: string; /** * The product affected by this vex. */ product: outputs.containeranalysis.v1beta1.ProductResponse; /** * Publisher details of this Note. */ publisher: outputs.containeranalysis.v1beta1.PublisherResponse; /** * A one sentence description of this Vex. */ shortDescription: string; /** * The title of the note. E.g. `Vex-Debian-11.4` */ title: string; } /** * The location of the vulnerability. */ interface VulnerabilityLocationResponse { /** * The CPE URI in [cpe format](https://cpe.mitre.org/specification/) format. Examples include distro or storage location for vulnerable jar. */ cpeUri: string; /** * The package being described. */ package: string; /** * The version of the package being described. */ version: outputs.containeranalysis.v1beta1.VersionResponse; } /** * Vulnerability provides metadata about a security vulnerability in a Note. */ interface VulnerabilityResponse { /** * The CVSS score for this vulnerability. */ cvssScore: number; /** * The full description of the CVSS for version 2. */ cvssV2: outputs.containeranalysis.v1beta1.CVSSResponse; /** * The full description of the CVSS for version 3. */ cvssV3: outputs.containeranalysis.v1beta1.CVSSv3Response; /** * CVSS version used to populate cvss_score and severity. */ cvssVersion: string; /** * A list of CWE for this vulnerability. For details, see: https://cwe.mitre.org/index.html */ cwe: string[]; /** * All information about the package to specifically identify this vulnerability. One entry per (version range and cpe_uri) the package vulnerability has manifested in. */ details: outputs.containeranalysis.v1beta1.DetailResponse[]; /** * Note provider assigned impact of the vulnerability. */ severity: string; /** * The time this information was last changed at the source. This is an upstream timestamp from the underlying information source - e.g. Ubuntu security tracker. */ sourceUpdateTime: string; /** * Windows details get their own format because the information format and model don't match a normal detail. Specifically Windows updates are done as patches, thus Windows vulnerabilities really are a missing package, rather than a package being at an incorrect version. */ windowsDetails: outputs.containeranalysis.v1beta1.WindowsDetailResponse[]; } interface WindowsDetailResponse { /** * The CPE URI in [cpe format](https://cpe.mitre.org/specification/) in which the vulnerability manifests. Examples include distro or storage location for vulnerable jar. */ cpeUri: string; /** * The description of the vulnerability. */ description: string; /** * The names of the KBs which have hotfixes to mitigate this vulnerability. Note that there may be multiple hotfixes (and thus multiple KBs) that mitigate a given vulnerability. Currently any listed kb's presence is considered a fix. */ fixingKbs: outputs.containeranalysis.v1beta1.KnowledgeBaseResponse[]; /** * The name of the vulnerability. */ name: string; } } } export declare namespace contentwarehouse { namespace v1 { /** * Represents the action responsible for access control list management operations. */ interface GoogleCloudContentwarehouseV1AccessControlActionResponse { /** * Identifies the type of operation. */ operationType: string; /** * Represents the new policy from which bindings are added, removed or replaced based on the type of the operation. the policy is limited to a few 10s of KB. */ policy: outputs.contentwarehouse.v1.GoogleIamV1PolicyResponse; } /** * Represents the action triggered by Rule Engine when the rule is true. */ interface GoogleCloudContentwarehouseV1ActionResponse { /** * Action triggering access control operations. */ accessControl: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1AccessControlActionResponse; /** * ID of the action. Managed internally. */ actionId: string; /** * Action triggering create document link operation. */ addToFolder: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1AddToFolderActionResponse; /** * Action triggering data update operations. */ dataUpdate: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1DataUpdateActionResponse; /** * Action triggering data validation operations. */ dataValidation: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1DataValidationActionResponse; /** * Action deleting the document. */ deleteDocumentAction: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1DeleteDocumentActionResponse; /** * Action publish to Pub/Sub operation. */ publishToPubSub: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1PublishActionResponse; /** * Action removing a document from a folder. */ removeFromFolderAction: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1RemoveFromFolderActionResponse; } /** * Represents the action responsible for adding document under a folder. */ interface GoogleCloudContentwarehouseV1AddToFolderActionResponse { /** * Names of the folder under which new document is to be added. Format: projects/{project_number}/locations/{location}/documents/{document_id}. */ folders: string[]; } /** * Represents the action responsible for properties update operations. */ interface GoogleCloudContentwarehouseV1DataUpdateActionResponse { /** * Map of (K, V) -> (valid name of the field, new value of the field) E.g., ("age", "60") entry triggers update of field age with a value of 60. If the field is not present then new entry is added. During update action execution, value strings will be casted to appropriate types. */ entries: { [key: string]: string; }; } /** * Represents the action responsible for data validation operations. */ interface GoogleCloudContentwarehouseV1DataValidationActionResponse { /** * Map of (K, V) -> (field, string condition to be evaluated on the field) E.g., ("age", "age > 18 && age < 60") entry triggers validation of field age with the given condition. Map entries will be ANDed during validation. */ conditions: { [key: string]: string; }; } /** * DateTime values. */ interface GoogleCloudContentwarehouseV1DateTimeArrayResponse { /** * List of datetime values. Both OffsetDateTime and ZonedDateTime are supported. */ values: outputs.contentwarehouse.v1.GoogleTypeDateTimeResponse[]; } /** * Configurations for a date time property. */ interface GoogleCloudContentwarehouseV1DateTimeTypeOptionsResponse { } /** * Represents the action responsible for deleting the document. */ interface GoogleCloudContentwarehouseV1DeleteDocumentActionResponse { /** * Boolean field to select between hard vs soft delete options. Set 'true' for 'hard delete' and 'false' for 'soft delete'. */ enableHardDelete: boolean; } /** * Enum values. */ interface GoogleCloudContentwarehouseV1EnumArrayResponse { /** * List of enum values. */ values: string[]; } /** * Configurations for an enum/categorical property. */ interface GoogleCloudContentwarehouseV1EnumTypeOptionsResponse { /** * List of possible enum values. */ possibleValues: string[]; /** * Make sure the Enum property value provided in the document is in the possile value list during document creation. The validation check runs by default. */ validationCheckDisabled: boolean; } /** * Float values. */ interface GoogleCloudContentwarehouseV1FloatArrayResponse { /** * List of float values. */ values: number[]; } /** * Configurations for a float property. */ interface GoogleCloudContentwarehouseV1FloatTypeOptionsResponse { } /** * Integer values. */ interface GoogleCloudContentwarehouseV1IntegerArrayResponse { /** * List of integer values. */ values: number[]; } /** * Configurations for an integer property. */ interface GoogleCloudContentwarehouseV1IntegerTypeOptionsResponse { } /** * Map property value. Represents a structured entries of key value pairs, consisting of field names which map to dynamically typed values. */ interface GoogleCloudContentwarehouseV1MapPropertyResponse { /** * Unordered map of dynamically typed values. */ fields: { [key: string]: string; }; } /** * Configurations for a Map property. */ interface GoogleCloudContentwarehouseV1MapTypeOptionsResponse { } /** * Property values. */ interface GoogleCloudContentwarehouseV1PropertyArrayResponse { /** * List of property values. */ properties: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1PropertyResponse[]; } /** * Defines the metadata for a schema property. */ interface GoogleCloudContentwarehouseV1PropertyDefinitionResponse { /** * Date time property. It is not supported by CMEK compliant deployment. */ dateTimeTypeOptions: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1DateTimeTypeOptionsResponse; /** * The display-name for the property, used for front-end. */ displayName: string; /** * Enum/categorical property. */ enumTypeOptions: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1EnumTypeOptionsResponse; /** * Float property. */ floatTypeOptions: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1FloatTypeOptionsResponse; /** * Integer property. */ integerTypeOptions: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1IntegerTypeOptionsResponse; /** * Whether the property can be filtered. If this is a sub-property, all the parent properties must be marked filterable. */ isFilterable: boolean; /** * Whether the property is user supplied metadata. This out-of-the box placeholder setting can be used to tag derived properties. Its value and interpretation logic should be implemented by API user. */ isMetadata: boolean; /** * Whether the property can have multiple values. */ isRepeatable: boolean; /** * Whether the property is mandatory. Default is 'false', i.e. populating property value can be skipped. If 'true' then user must populate the value for this property. */ isRequired: boolean; /** * Indicates that the property should be included in a global search. */ isSearchable: boolean; /** * Map property. */ mapTypeOptions: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1MapTypeOptionsResponse; /** * The name of the metadata property. Must be unique within a document schema and is case insensitive. Names must be non-blank, start with a letter, and can contain alphanumeric characters and: /, :, -, _, and . */ name: string; /** * Nested structured data property. */ propertyTypeOptions: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1PropertyTypeOptionsResponse; /** * The retrieval importance of the property during search. */ retrievalImportance: string; /** * The mapping information between this property to another schema source. */ schemaSources: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1PropertyDefinitionSchemaSourceResponse[]; /** * Text/string property. */ textTypeOptions: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1TextTypeOptionsResponse; /** * Timestamp property. It is not supported by CMEK compliant deployment. */ timestampTypeOptions: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1TimestampTypeOptionsResponse; } /** * The schema source information. */ interface GoogleCloudContentwarehouseV1PropertyDefinitionSchemaSourceResponse { /** * The schema name in the source. */ name: string; /** * The Doc AI processor type name. */ processorType: string; } /** * Property of a document. */ interface GoogleCloudContentwarehouseV1PropertyResponse { /** * Date time property values. It is not supported by CMEK compliant deployment. */ dateTimeValues: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1DateTimeArrayResponse; /** * Enum property values. */ enumValues: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1EnumArrayResponse; /** * Float property values. */ floatValues: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1FloatArrayResponse; /** * Integer property values. */ integerValues: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1IntegerArrayResponse; /** * Map property values. */ mapProperty: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1MapPropertyResponse; /** * Must match the name of a PropertyDefinition in the DocumentSchema. */ name: string; /** * Nested structured data property values. */ propertyValues: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1PropertyArrayResponse; /** * String/text property values. */ textValues: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1TextArrayResponse; /** * Timestamp property values. It is not supported by CMEK compliant deployment. */ timestampValues: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1TimestampArrayResponse; } /** * Configurations for a nested structured data property. */ interface GoogleCloudContentwarehouseV1PropertyTypeOptionsResponse { /** * List of property definitions. */ propertyDefinitions: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1PropertyDefinitionResponse[]; } /** * Represents the action responsible for publishing messages to a Pub/Sub topic. */ interface GoogleCloudContentwarehouseV1PublishActionResponse { /** * Messages to be published. */ messages: string[]; /** * The topic id in the Pub/Sub service for which messages will be published to. */ topicId: string; } /** * Represents the action responsible for remove a document from a specific folder. */ interface GoogleCloudContentwarehouseV1RemoveFromFolderActionResponse { /** * Condition of the action to be executed. */ condition: string; /** * Name of the folder under which new document is to be added. Format: projects/{project_number}/locations/{location}/documents/{document_id}. */ folder: string; } /** * Represents the rule for a content warehouse trigger. */ interface GoogleCloudContentwarehouseV1RuleResponse { /** * List of actions that are executed when the rule is satisfied. */ actions: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1ActionResponse[]; /** * Represents the conditional expression to be evaluated. Expression should evaluate to a boolean result. When the condition is true actions are executed. Example: user_role = "hsbc_role_1" AND doc.salary > 20000 */ condition: string; /** * Short description of the rule and its context. */ description: string; /** * ID of the rule. It has to be unique across all the examples. This is managed internally. */ ruleId: string; /** * Identifies the trigger type for running the policy. */ triggerType: string; } /** * Represents a list of words given by the customer All these words are synonyms of each other. */ interface GoogleCloudContentwarehouseV1SynonymSetSynonymResponse { /** * For example: sale, invoice, bill, order */ words: string[]; } /** * String/text values. */ interface GoogleCloudContentwarehouseV1TextArrayResponse { /** * List of text values. */ values: string[]; } /** * Configurations for a text property. */ interface GoogleCloudContentwarehouseV1TextTypeOptionsResponse { } /** * Timestamp values. */ interface GoogleCloudContentwarehouseV1TimestampArrayResponse { /** * List of timestamp values. */ values: outputs.contentwarehouse.v1.GoogleCloudContentwarehouseV1TimestampValueResponse[]; } /** * Configurations for a timestamp property. */ interface GoogleCloudContentwarehouseV1TimestampTypeOptionsResponse { } /** * Timestamp value type. */ interface GoogleCloudContentwarehouseV1TimestampValueResponse { /** * The string must represent a valid instant in UTC and is parsed using java.time.format.DateTimeFormatter.ISO_INSTANT. e.g. "2013-09-29T18:46:19Z" */ textValue: string; /** * Timestamp value */ timestampValue: string; } /** * Encodes the detailed information of a barcode. */ interface GoogleCloudDocumentaiV1BarcodeResponse { /** * Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type. */ format: string; /** * Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`. */ rawValue: string; /** * Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license. */ valueFormat: string; } /** * A bounding polygon for the detected image annotation. */ interface GoogleCloudDocumentaiV1BoundingPolyResponse { /** * The bounding polygon normalized vertices. */ normalizedVertices: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1NormalizedVertexResponse[]; /** * The bounding polygon vertices. */ vertices: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1VertexResponse[]; } /** * Parsed and normalized entity value. */ interface GoogleCloudDocumentaiV1DocumentEntityNormalizedValueResponse { /** * Postal address. See also: https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto */ addressValue: outputs.contentwarehouse.v1.GoogleTypePostalAddressResponse; /** * Boolean value. Can be used for entities with binary values, or for checkboxes. */ booleanValue: boolean; /** * Date value. Includes year, month, day. See also: https://github.com/googleapis/googleapis/blob/master/google/type/date.proto */ dateValue: outputs.contentwarehouse.v1.GoogleTypeDateResponse; /** * DateTime value. Includes date, time, and timezone. See also: https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto */ datetimeValue: outputs.contentwarehouse.v1.GoogleTypeDateTimeResponse; /** * Float value. */ floatValue: number; /** * Integer value. */ integerValue: number; /** * Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto */ moneyValue: outputs.contentwarehouse.v1.GoogleTypeMoneyResponse; /** * Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format. */ text: string; } /** * Relationship between Entities. */ interface GoogleCloudDocumentaiV1DocumentEntityRelationResponse { /** * Object entity id. */ objectId: string; /** * Relationship description. */ relation: string; /** * Subject entity id. */ subjectId: string; } /** * An entity that could be a phrase in the text or a property that belongs to the document. It is a known entity type, such as a person, an organization, or location. */ interface GoogleCloudDocumentaiV1DocumentEntityResponse { /** * Optional. Confidence of detected Schema entity. Range `[0, 1]`. */ confidence: number; /** * Optional. Deprecated. Use `id` field instead. * * @deprecated Optional. Deprecated. Use `id` field instead. */ mentionId: string; /** * Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`. */ mentionText: string; /** * Optional. Normalized entity value. Absent if the extracted value could not be converted or the type (e.g. address) is not supported for certain parsers. This field is also only populated for certain supported document types. */ normalizedValue: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentEntityNormalizedValueResponse; /** * Optional. Represents the provenance of this entity wrt. the location on the page where it was found. */ pageAnchor: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageAnchorResponse; /** * Optional. Entities can be nested to form a hierarchical data structure representing the content in the document. */ properties: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentEntityResponse[]; /** * Optional. The history of this annotation. */ provenance: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentProvenanceResponse; /** * Optional. Whether the entity will be redacted for de-identification purposes. */ redacted: boolean; /** * Optional. Provenance of the entity. Text anchor indexing into the Document.text. */ textAnchor: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentTextAnchorResponse; /** * Entity type from a schema e.g. `Address`. */ type: string; } /** * Represents a weak reference to a page element within a document. */ interface GoogleCloudDocumentaiV1DocumentPageAnchorPageRefResponse { /** * Optional. Identifies the bounding polygon of a layout element on the page. */ boundingPoly: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1BoundingPolyResponse; /** * Optional. Confidence of detected page element, if applicable. Range `[0, 1]`. */ confidence: number; /** * Optional. Deprecated. Use PageRef.bounding_poly instead. * * @deprecated Optional. Deprecated. Use PageRef.bounding_poly instead. */ layoutId: string; /** * Optional. The type of the layout element that is being referenced if any. */ layoutType: string; /** * Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json. */ page: string; } /** * Referencing the visual context of the entity in the Document.pages. Page anchors can be cross-page, consist of multiple bounding polygons and optionally reference specific layout element types. */ interface GoogleCloudDocumentaiV1DocumentPageAnchorResponse { /** * One or more references to visual page elements */ pageRefs: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageAnchorPageRefResponse[]; } /** * A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation. */ interface GoogleCloudDocumentaiV1DocumentPageBlockResponse { /** * A list of detected languages together with confidence. */ detectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * Layout for Block. */ layout: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; /** * The history of this annotation. */ provenance: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentProvenanceResponse; } /** * A detected barcode. */ interface GoogleCloudDocumentaiV1DocumentPageDetectedBarcodeResponse { /** * Detailed barcode information of the DetectedBarcode. */ barcode: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1BarcodeResponse; /** * Layout for DetectedBarcode. */ layout: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; } /** * Detected language for a structural component. */ interface GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse { /** * Confidence of detected language. Range `[0, 1]`. */ confidence: number; /** * The [BCP-47 language code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), such as `en-US` or `sr-Latn`. */ languageCode: string; } /** * Dimension for the page. */ interface GoogleCloudDocumentaiV1DocumentPageDimensionResponse { /** * Page height. */ height: number; /** * Dimension unit. */ unit: string; /** * Page width. */ width: number; } /** * A form field detected on the page. */ interface GoogleCloudDocumentaiV1DocumentPageFormFieldResponse { /** * Created for Labeling UI to export key text. If corrections were made to the text identified by the `field_name.text_anchor`, this field will contain the correction. */ correctedKeyText: string; /** * Created for Labeling UI to export value text. If corrections were made to the text identified by the `field_value.text_anchor`, this field will contain the correction. */ correctedValueText: string; /** * Layout for the FormField name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc. */ fieldName: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; /** * Layout for the FormField value. */ fieldValue: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; /** * A list of detected languages for name together with confidence. */ nameDetectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * The history of this annotation. */ provenance: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentProvenanceResponse; /** * A list of detected languages for value together with confidence. */ valueDetectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox` */ valueType: string; } /** * Image Quality Defects */ interface GoogleCloudDocumentaiV1DocumentPageImageQualityScoresDetectedDefectResponse { /** * Confidence of detected defect. Range `[0, 1]` where `1` indicates strong confidence that the defect exists. */ confidence: number; /** * Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare` */ type: string; } /** * Image quality scores for the page image. */ interface GoogleCloudDocumentaiV1DocumentPageImageQualityScoresResponse { /** * A list of detected defects. */ detectedDefects: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageImageQualityScoresDetectedDefectResponse[]; /** * The overall quality score. Range `[0, 1]` where `1` is perfect quality. */ qualityScore: number; } /** * Rendered image contents for this page. */ interface GoogleCloudDocumentaiV1DocumentPageImageResponse { /** * Raw byte content of the image. */ content: string; /** * Height of the image in pixels. */ height: number; /** * Encoding [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml) for the image. */ mimeType: string; /** * Width of the image in pixels. */ width: number; } /** * Visual element describing a layout unit on a page. */ interface GoogleCloudDocumentaiV1DocumentPageLayoutResponse { /** * The bounding polygon for the Layout. */ boundingPoly: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1BoundingPolyResponse; /** * Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`. */ confidence: number; /** * Detected orientation for the Layout. */ orientation: string; /** * Text anchor indexing into the Document.text. */ textAnchor: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentTextAnchorResponse; } /** * A collection of tokens that a human would perceive as a line. Does not cross column boundaries, can be horizontal, vertical, etc. */ interface GoogleCloudDocumentaiV1DocumentPageLineResponse { /** * A list of detected languages together with confidence. */ detectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * Layout for Line. */ layout: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; /** * The history of this annotation. */ provenance: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentProvenanceResponse; } /** * Representation for transformation matrix, intended to be compatible and used with OpenCV format for image manipulation. */ interface GoogleCloudDocumentaiV1DocumentPageMatrixResponse { /** * Number of columns in the matrix. */ cols: number; /** * The matrix data. */ data: string; /** * Number of rows in the matrix. */ rows: number; /** * This encodes information about what data type the matrix uses. For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of OpenCV primitive data types, please refer to https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html */ type: number; } /** * A collection of lines that a human would perceive as a paragraph. */ interface GoogleCloudDocumentaiV1DocumentPageParagraphResponse { /** * A list of detected languages together with confidence. */ detectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * Layout for Paragraph. */ layout: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; /** * The history of this annotation. */ provenance: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentProvenanceResponse; } /** * A page in a Document. */ interface GoogleCloudDocumentaiV1DocumentPageResponse { /** * A list of visually detected text blocks on the page. A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation. */ blocks: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageBlockResponse[]; /** * A list of detected barcodes. */ detectedBarcodes: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedBarcodeResponse[]; /** * A list of detected languages together with confidence. */ detectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * Physical dimension of the page. */ dimension: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDimensionResponse; /** * A list of visually detected form fields on the page. */ formFields: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageFormFieldResponse[]; /** * Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned. */ image: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageImageResponse; /** * Image quality scores. */ imageQualityScores: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageImageQualityScoresResponse; /** * Layout for the page. */ layout: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; /** * A list of visually detected text lines on the page. A collection of tokens that a human would perceive as a line. */ lines: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLineResponse[]; /** * 1-based index for current Page in a parent Document. Useful when a page is taken out of a Document for individual processing. */ pageNumber: number; /** * A list of visually detected text paragraphs on the page. A collection of lines that a human would perceive as a paragraph. */ paragraphs: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageParagraphResponse[]; /** * The history of this page. */ provenance: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentProvenanceResponse; /** * A list of visually detected symbols on the page. */ symbols: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageSymbolResponse[]; /** * A list of visually detected tables on the page. */ tables: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageTableResponse[]; /** * A list of visually detected tokens on the page. */ tokens: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageTokenResponse[]; /** * Transformation matrices that were applied to the original document image to produce Page.image. */ transforms: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageMatrixResponse[]; /** * A list of detected non-text visual elements e.g. checkbox, signature etc. on the page. */ visualElements: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageVisualElementResponse[]; } /** * A detected symbol. */ interface GoogleCloudDocumentaiV1DocumentPageSymbolResponse { /** * A list of detected languages together with confidence. */ detectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * Layout for Symbol. */ layout: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; } /** * A table representation similar to HTML table structure. */ interface GoogleCloudDocumentaiV1DocumentPageTableResponse { /** * Body rows of the table. */ bodyRows: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageTableTableRowResponse[]; /** * A list of detected languages together with confidence. */ detectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * Header rows of the table. */ headerRows: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageTableTableRowResponse[]; /** * Layout for Table. */ layout: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; /** * The history of this table. */ provenance: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentProvenanceResponse; } /** * A cell representation inside the table. */ interface GoogleCloudDocumentaiV1DocumentPageTableTableCellResponse { /** * How many columns this cell spans. */ colSpan: number; /** * A list of detected languages together with confidence. */ detectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * Layout for TableCell. */ layout: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; /** * How many rows this cell spans. */ rowSpan: number; } /** * A row of table cells. */ interface GoogleCloudDocumentaiV1DocumentPageTableTableRowResponse { /** * Cells that make up this row. */ cells: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageTableTableCellResponse[]; } /** * Detected break at the end of a Token. */ interface GoogleCloudDocumentaiV1DocumentPageTokenDetectedBreakResponse { /** * Detected break type. */ type: string; } /** * A detected token. */ interface GoogleCloudDocumentaiV1DocumentPageTokenResponse { /** * Detected break at the end of a Token. */ detectedBreak: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageTokenDetectedBreakResponse; /** * A list of detected languages together with confidence. */ detectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * Layout for Token. */ layout: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; /** * The history of this annotation. */ provenance: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentProvenanceResponse; /** * Text style attributes. */ styleInfo: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageTokenStyleInfoResponse; } /** * Font and other text style attributes. */ interface GoogleCloudDocumentaiV1DocumentPageTokenStyleInfoResponse { /** * Color of the background. */ backgroundColor: outputs.contentwarehouse.v1.GoogleTypeColorResponse; /** * Whether the text is bold (equivalent to font_weight is at least `700`). */ bold: boolean; /** * Font size in points (`1` point is `¹⁄₇₂` inches). */ fontSize: number; /** * Name or style of the font. */ fontType: string; /** * TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). Normal is `400`, bold is `700`. */ fontWeight: number; /** * Whether the text is handwritten. */ handwritten: boolean; /** * Whether the text is italic. */ italic: boolean; /** * Letter spacing in points. */ letterSpacing: number; /** * Font size in pixels, equal to _unrounded font_size_ * _resolution_ ÷ `72.0`. */ pixelFontSize: number; /** * Whether the text is in small caps. */ smallcaps: boolean; /** * Whether the text is strikethrough. */ strikeout: boolean; /** * Whether the text is a subscript. */ subscript: boolean; /** * Whether the text is a superscript. */ superscript: boolean; /** * Color of the text. */ textColor: outputs.contentwarehouse.v1.GoogleTypeColorResponse; /** * Whether the text is underlined. */ underlined: boolean; } /** * Detected non-text visual elements e.g. checkbox, signature etc. on the page. */ interface GoogleCloudDocumentaiV1DocumentPageVisualElementResponse { /** * A list of detected languages together with confidence. */ detectedLanguages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageDetectedLanguageResponse[]; /** * Layout for VisualElement. */ layout: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageLayoutResponse; /** * Type of the VisualElement. */ type: string; } /** * The parent element the current element is based on. Used for referencing/aligning, removal and replacement operations. */ interface GoogleCloudDocumentaiV1DocumentProvenanceParentResponse { /** * The index of the parent item in the corresponding item list (eg. list of entities, properties within entities, etc.) in the parent revision. */ index: number; /** * The index of the index into current revision's parent_ids list. */ revision: number; } /** * Structure to identify provenance relationships between annotations in different revisions. */ interface GoogleCloudDocumentaiV1DocumentProvenanceResponse { /** * References to the original elements that are replaced. */ parents: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentProvenanceParentResponse[]; /** * The index of the revision that produced this element. */ revision: number; /** * The type of provenance operation. */ type: string; } /** * Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality. */ interface GoogleCloudDocumentaiV1DocumentResponse { /** * Optional. Inline document content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64. */ content: string; /** * A list of entities detected on Document.text. For document shards, entities in this list may cross shard boundaries. */ entities: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentEntityResponse[]; /** * Placeholder. Relationship among Document.entities. */ entityRelations: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentEntityRelationResponse[]; /** * Any error that occurred while processing this document. */ error: outputs.contentwarehouse.v1.GoogleRpcStatusResponse; /** * An IANA published [media type (MIME type)](https://www.iana.org/assignments/media-types/media-types.xhtml). */ mimeType: string; /** * Visual page layout for the Document. */ pages: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentPageResponse[]; /** * Placeholder. Revision history of this document. */ revisions: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentRevisionResponse[]; /** * Information about the sharding if this document is sharded part of a larger document. If the document is not sharded, this message is not specified. */ shardInfo: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentShardInfoResponse; /** * Optional. UTF-8 encoded text in reading order from the document. */ text: string; /** * Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other. */ textChanges: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentTextChangeResponse[]; /** * Styles for the Document.text. */ textStyles: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentStyleResponse[]; /** * Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. For more information, refer to [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris). */ uri: string; } /** * Human Review information of the document. */ interface GoogleCloudDocumentaiV1DocumentRevisionHumanReviewResponse { /** * Human review state. e.g. `requested`, `succeeded`, `rejected`. */ state: string; /** * A message providing more details about the current state of processing. For example, the rejection reason when the state is `rejected`. */ stateMessage: string; } /** * Contains past or forward revisions of this document. */ interface GoogleCloudDocumentaiV1DocumentRevisionResponse { /** * If the change was made by a person specify the name or id of that person. */ agent: string; /** * The time that the revision was created, internally generated by doc proto storage at the time of create. */ createTime: string; /** * Human Review information of this revision. */ humanReview: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentRevisionHumanReviewResponse; /** * The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field. */ parent: number[]; /** * The revisions that this revision is based on. Must include all the ids that have anything to do with this revision - eg. there are `provenance.parent.revision` fields that index into this field. */ parentIds: string[]; /** * If the annotation was made by processor identify the processor by its resource name. */ processor: string; } /** * For a large document, sharding may be performed to produce several document shards. Each document shard contains this field to detail which shard it is. */ interface GoogleCloudDocumentaiV1DocumentShardInfoResponse { /** * Total number of shards. */ shardCount: string; /** * The 0-based index of this shard. */ shardIndex: string; /** * The index of the first character in Document.text in the overall document global text. */ textOffset: string; } /** * Font size with unit. */ interface GoogleCloudDocumentaiV1DocumentStyleFontSizeResponse { /** * Font size for the text. */ size: number; /** * Unit for the font size. Follows CSS naming (such as `in`, `px`, and `pt`). */ unit: string; } /** * Annotation for common text style attributes. This adheres to CSS conventions as much as possible. */ interface GoogleCloudDocumentaiV1DocumentStyleResponse { /** * Text background color. */ backgroundColor: outputs.contentwarehouse.v1.GoogleTypeColorResponse; /** * Text color. */ color: outputs.contentwarehouse.v1.GoogleTypeColorResponse; /** * Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp */ fontFamily: string; /** * Font size. */ fontSize: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentStyleFontSizeResponse; /** * [Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). Possible values are `normal`, `bold`, `bolder`, and `lighter`. */ fontWeight: string; /** * Text anchor indexing into the Document.text. */ textAnchor: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentTextAnchorResponse; /** * [Text decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). Follows CSS standard. */ textDecoration: string; /** * [Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). Possible values are `normal`, `italic`, and `oblique`. */ textStyle: string; } /** * Text reference indexing into the Document.text. */ interface GoogleCloudDocumentaiV1DocumentTextAnchorResponse { /** * Contains the content of the text span so that users do not have to look it up in the text_segments. It is always populated for formFields. */ content: string; /** * The text segments from the Document.text. */ textSegments: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentTextAnchorTextSegmentResponse[]; } /** * A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset */ interface GoogleCloudDocumentaiV1DocumentTextAnchorTextSegmentResponse { /** * TextSegment half open end UTF-8 char index in the Document.text. */ endIndex: string; /** * TextSegment start UTF-8 char index in the Document.text. */ startIndex: string; } /** * This message is used for text changes aka. OCR corrections. */ interface GoogleCloudDocumentaiV1DocumentTextChangeResponse { /** * The text that replaces the text identified in the `text_anchor`. */ changedText: string; /** * The history of this annotation. */ provenance: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentProvenanceResponse[]; /** * Provenance of the correction. Text anchor indexing into the Document.text. There can only be a single `TextAnchor.text_segments` element. If the start and end index of the text segment are the same, the text change is inserted before that index. */ textAnchor: outputs.contentwarehouse.v1.GoogleCloudDocumentaiV1DocumentTextAnchorResponse; } /** * A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1. */ interface GoogleCloudDocumentaiV1NormalizedVertexResponse { /** * X coordinate. */ x: number; /** * Y coordinate (starts from the top of the image). */ y: number; } /** * A vertex represents a 2D point in the image. NOTE: the vertex coordinates are in the same scale as the original image. */ interface GoogleCloudDocumentaiV1VertexResponse { /** * X coordinate. */ x: number; /** * Y coordinate (starts from the top of the image). */ y: number; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.contentwarehouse.v1.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.contentwarehouse.v1.GoogleTypeExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" ], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). */ interface GoogleIamV1PolicyResponse { /** * Specifies cloud audit logging configuration for this policy. */ auditConfigs: outputs.contentwarehouse.v1.GoogleIamV1AuditConfigResponse[]; /** * Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`. */ bindings: outputs.contentwarehouse.v1.GoogleIamV1BindingResponse[]; /** * `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. */ etag: string; /** * Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ version: number; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface GoogleRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value—for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... */ interface GoogleTypeColorResponse { /** * The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). */ alpha: number; /** * The amount of blue in the color as a value in the interval [0, 1]. */ blue: number; /** * The amount of green in the color as a value in the interval [0, 1]. */ green: number; /** * The amount of red in the color as a value in the interval [0, 1]. */ red: number; } /** * Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp */ interface GoogleTypeDateResponse { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day: number; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month: number; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year: number; } /** * Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations. */ interface GoogleTypeDateTimeResponse { /** * Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day. */ day: number; /** * Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value "24:00:00" for scenarios like business closing time. */ hours: number; /** * Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0. */ minutes: number; /** * Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month. */ month: number; /** * Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0. */ nanos: number; /** * Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds. */ seconds: number; /** * Time zone. */ timeZone: outputs.contentwarehouse.v1.GoogleTypeTimeZoneResponse; /** * UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }. */ utcOffset: string; /** * Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year. */ year: number; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface GoogleTypeExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Represents an amount of money with its currency type. */ interface GoogleTypeMoneyResponse { /** * The three-letter currency code defined in ISO 4217. */ currencyCode: string; /** * Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. */ nanos: number; /** * The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. */ units: string; } /** * Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 */ interface GoogleTypePostalAddressResponse { /** * Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. "Austin, TX"), it is important that the line order is clear. The order of address lines should be "envelope order" for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. "ja" for large-to-small ordering and "ja-Latn" or "en" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas). */ addressLines: string[]; /** * Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated. */ administrativeArea: string; /** * Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: "zh-Hant", "ja", "ja-Latn", "en". */ languageCode: string; /** * Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines. */ locality: string; /** * Optional. The name of the organization at the address. */ organization: string; /** * Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.). */ postalCode: string; /** * Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain "care of" information. */ recipients: string[]; /** * CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for Switzerland. */ regionCode: string; /** * The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions. */ revision: number; /** * Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). */ sortingCode: string; /** * Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts. */ sublocality: string; } /** * Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). */ interface GoogleTypeTimeZoneResponse { /** * Optional. IANA Time Zone Database version number, e.g. "2019a". */ version: string; } } } export declare namespace datacatalog { namespace v1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.datacatalog.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Specification for the BigQuery connection. */ interface GoogleCloudDatacatalogV1BigQueryConnectionSpecResponse { /** * Specification for the BigQuery connection to a Cloud SQL instance. */ cloudSql: outputs.datacatalog.v1.GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpecResponse; /** * The type of the BigQuery connection. */ connectionType: string; /** * True if there are credentials attached to the BigQuery connection; false otherwise. */ hasCredential: boolean; } /** * Specification for a group of BigQuery tables with the `[prefix]YYYYMMDD` name pattern. For more information, see [Introduction to partitioned tables] (https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding). */ interface GoogleCloudDatacatalogV1BigQueryDateShardedSpecResponse { /** * The Data Catalog resource name of the dataset entry the current table belongs to. For example: `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`. */ dataset: string; /** * BigQuery resource name of the latest shard. */ latestShardResource: string; /** * Total number of shards. */ shardCount: string; /** * The table name prefix of the shards. The name of any given shard is `[table_prefix]YYYYMMDD`. For example, for the `MyTable20180101` shard, the `table_prefix` is `MyTable`. */ tablePrefix: string; } /** * Fields specific for BigQuery routines. */ interface GoogleCloudDatacatalogV1BigQueryRoutineSpecResponse { /** * Paths of the imported libraries. */ importedLibraries: string[]; } /** * Describes a BigQuery table. */ interface GoogleCloudDatacatalogV1BigQueryTableSpecResponse { /** * The table source type. */ tableSourceType: string; /** * Specification of a BigQuery table. Populated only if the `table_source_type` is `BIGQUERY_TABLE`. */ tableSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1TableSpecResponse; /** * Table view specification. Populated only if the `table_source_type` is `BIGQUERY_VIEW`. */ viewSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1ViewSpecResponse; } /** * Business Context of the entry. */ interface GoogleCloudDatacatalogV1BusinessContextResponse { /** * Contact people for the entry. */ contacts: outputs.datacatalog.v1.GoogleCloudDatacatalogV1ContactsResponse; /** * Entry overview fields for rich text descriptions of entries. */ entryOverview: outputs.datacatalog.v1.GoogleCloudDatacatalogV1EntryOverviewResponse; } /** * Spec that applies to clusters of an Instance of Cloud Bigtable. */ interface GoogleCloudDatacatalogV1CloudBigtableInstanceSpecCloudBigtableClusterSpecResponse { /** * Name of the cluster. */ displayName: string; /** * A link back to the parent resource, in this case Instance. */ linkedResource: string; /** * Location of the cluster, typically a Cloud zone. */ location: string; /** * Type of the resource. For a cluster this would be "CLUSTER". */ type: string; } /** * Specification that applies to Instance entries that are part of `CLOUD_BIGTABLE` system. (user_specified_type) */ interface GoogleCloudDatacatalogV1CloudBigtableInstanceSpecResponse { /** * The list of clusters for the Instance. */ cloudBigtableClusterSpecs: outputs.datacatalog.v1.GoogleCloudDatacatalogV1CloudBigtableInstanceSpecCloudBigtableClusterSpecResponse[]; } /** * Specification that applies to all entries that are part of `CLOUD_BIGTABLE` system (user_specified_type) */ interface GoogleCloudDatacatalogV1CloudBigtableSystemSpecResponse { /** * Display name of the Instance. This is user specified and different from the resource name. */ instanceDisplayName: string; } /** * Specification for the BigQuery connection to a Cloud SQL instance. */ interface GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpecResponse { /** * Database name. */ database: string; /** * Cloud SQL instance ID in the format of `project:location:instance`. */ instanceId: string; /** * Type of the Cloud SQL database. */ type: string; } /** * Column info specific to Looker System. */ interface GoogleCloudDatacatalogV1ColumnSchemaLookerColumnSpecResponse { /** * Looker specific column type of this column. */ type: string; } /** * A column within a schema. Columns can be nested inside other columns. */ interface GoogleCloudDatacatalogV1ColumnSchemaResponse { /** * Name of the column. Must be a UTF-8 string without dots (.). The maximum size is 64 bytes. */ column: string; /** * Optional. Default value for the column. */ defaultValue: string; /** * Optional. Description of the column. Default value is an empty string. The description must be a UTF-8 string with the maximum size of 2000 bytes. */ description: string; /** * Optional. Garbage collection policy for the column or column family. Applies to systems like Cloud Bigtable. */ gcRule: string; /** * Optional. Most important inclusion of this column. */ highestIndexingType: string; /** * Looker specific column info of this column. */ lookerColumnSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1ColumnSchemaLookerColumnSpecResponse; /** * Optional. A column's mode indicates whether values in this column are required, nullable, or repeated. Only `NULLABLE`, `REQUIRED`, and `REPEATED` values are supported. Default mode is `NULLABLE`. */ mode: string; /** * Optional. Ordinal position */ ordinalPosition: number; /** * Optional. Schema of sub-columns. A column can have zero or more sub-columns. */ subcolumns: outputs.datacatalog.v1.GoogleCloudDatacatalogV1ColumnSchemaResponse[]; /** * Type of the column. Must be a UTF-8 string with the maximum size of 128 bytes. */ type: string; } /** * A contact person for the entry. */ interface GoogleCloudDatacatalogV1ContactsPersonResponse { /** * Designation of the person, for example, Data Steward. */ designation: string; /** * Email of the person in the format of `john.doe@xyz`, ``, or `John Doe`. */ email: string; } /** * Contact people for the entry. */ interface GoogleCloudDatacatalogV1ContactsResponse { /** * The list of contact people for the entry. */ people: outputs.datacatalog.v1.GoogleCloudDatacatalogV1ContactsPersonResponse[]; } /** * Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type. Only one of internal specs can be set at the time, and cannot be changed later. */ interface GoogleCloudDatacatalogV1DataSourceConnectionSpecResponse { /** * Fields specific to BigQuery connections. */ bigqueryConnectionSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1BigQueryConnectionSpecResponse; } /** * Physical location of an entry. */ interface GoogleCloudDatacatalogV1DataSourceResponse { /** * Full name of a resource as defined by the service. For example: `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}` */ resource: string; /** * Service that physically stores the data. */ service: string; /** * Data Catalog entry name, if applicable. */ sourceEntry: string; /** * Detailed properties of the underlying storage. */ storageProperties: outputs.datacatalog.v1.GoogleCloudDatacatalogV1StoragePropertiesResponse; } /** * Specification that applies to database view. */ interface GoogleCloudDatacatalogV1DatabaseTableSpecDatabaseViewSpecResponse { /** * Name of a singular table this view reflects one to one. */ baseTable: string; /** * SQL query used to generate this view. */ sqlQuery: string; /** * Type of this view. */ viewType: string; } /** * Specification that applies to a table resource. Valid only for entries with the `TABLE` type. */ interface GoogleCloudDatacatalogV1DatabaseTableSpecResponse { /** * Spec what aplies to tables that are actually views. Not set for "real" tables. */ databaseViewSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1DatabaseTableSpecDatabaseViewSpecResponse; /** * Fields specific to a Dataplex table and present only in the Dataplex table entries. */ dataplexTable: outputs.datacatalog.v1.GoogleCloudDatacatalogV1DataplexTableSpecResponse; /** * Type of this table. */ type: string; } /** * External table registered by Dataplex. Dataplex publishes data discovered from an asset into multiple other systems (BigQuery, DPMS) in form of tables. We call them "external tables". External tables are also synced into the Data Catalog. This message contains pointers to those external tables (fully qualified name, resource name et cetera) within the Data Catalog. */ interface GoogleCloudDatacatalogV1DataplexExternalTableResponse { /** * Name of the Data Catalog entry representing the external table. */ dataCatalogEntry: string; /** * Fully qualified name (FQN) of the external table. */ fullyQualifiedName: string; /** * Google Cloud resource name of the external table. */ googleCloudResource: string; /** * Service in which the external table is registered. */ system: string; } /** * Entry specyfication for a Dataplex fileset. */ interface GoogleCloudDatacatalogV1DataplexFilesetSpecResponse { /** * Common Dataplex fields. */ dataplexSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1DataplexSpecResponse; } /** * Common Dataplex fields. */ interface GoogleCloudDatacatalogV1DataplexSpecResponse { /** * Fully qualified resource name of an asset in Dataplex, to which the underlying data source (Cloud Storage bucket or BigQuery dataset) of the entity is attached. */ asset: string; /** * Compression format of the data, e.g., zip, gzip etc. */ compressionFormat: string; /** * Format of the data. */ dataFormat: outputs.datacatalog.v1.GoogleCloudDatacatalogV1PhysicalSchemaResponse; /** * Project ID of the underlying Cloud Storage or BigQuery data. Note that this may not be the same project as the correspondingly Dataplex lake / zone / asset. */ project: string; } /** * Entry specification for a Dataplex table. */ interface GoogleCloudDatacatalogV1DataplexTableSpecResponse { /** * Common Dataplex fields. */ dataplexSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1DataplexSpecResponse; /** * List of external tables registered by Dataplex in other systems based on the same underlying data. External tables allow to query this data in those systems. */ externalTables: outputs.datacatalog.v1.GoogleCloudDatacatalogV1DataplexExternalTableResponse[]; /** * Indicates if the table schema is managed by the user or not. */ userManaged: boolean; } /** * Specification that applies to a dataset. Valid only for entries with the `DATASET` type. */ interface GoogleCloudDatacatalogV1DatasetSpecResponse { /** * Vertex AI Dataset specific fields */ vertexDatasetSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1VertexDatasetSpecResponse; } /** * Entry overview fields for rich text descriptions of entries. */ interface GoogleCloudDatacatalogV1EntryOverviewResponse { /** * Entry overview with support for rich text. The overview must only contain Unicode characters, and should be formatted using HTML. The maximum length is 10 MiB as this value holds HTML descriptions including encoded images. The maximum length of the text without images is 100 KiB. */ overview: string; } /** * Specification that applies to a fileset. Valid only for entries with the 'FILESET' type. */ interface GoogleCloudDatacatalogV1FilesetSpecResponse { /** * Fields specific to a Dataplex fileset and present only in the Dataplex fileset entries. */ dataplexFileset: outputs.datacatalog.v1.GoogleCloudDatacatalogV1DataplexFilesetSpecResponse; } /** * Specification of a single file in Cloud Storage. */ interface GoogleCloudDatacatalogV1GcsFileSpecResponse { /** * Full file path. Example: `gs://bucket_name/a/b.txt`. */ filePath: string; /** * Creation, modification, and expiration timestamps of a Cloud Storage file. */ gcsTimestamps: outputs.datacatalog.v1.GoogleCloudDatacatalogV1SystemTimestampsResponse; /** * File size in bytes. */ sizeBytes: string; } /** * Describes a Cloud Storage fileset entry. */ interface GoogleCloudDatacatalogV1GcsFilesetSpecResponse { /** * Patterns to identify a set of files in Google Cloud Storage. For more information, see [Wildcard Names] (https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames). Note: Currently, bucket wildcards are not supported. Examples of valid `file_patterns`: * `gs://bucket_name/dir/*`: matches all files in `bucket_name/dir` directory * `gs://bucket_name/dir/**`: matches all files in `bucket_name/dir` and all subdirectories * `gs://bucket_name/file*`: matches files prefixed by `file` in `bucket_name` * `gs://bucket_name/??.txt`: matches files with two characters followed by `.txt` in `bucket_name` * `gs://bucket_name/[aeiou].txt`: matches files that contain a single vowel character followed by `.txt` in `bucket_name` * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ... or `m` followed by `.txt` in `bucket_name` * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match the `a/*/b` pattern, such as `a/c/b`, `a/d/b` * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt` You can combine wildcards to match complex sets of files, for example: `gs://bucket_name/[a-m]??.j*g` */ filePatterns: string[]; /** * Sample files contained in this fileset, not all files contained in this fileset are represented here. */ sampleGcsFileSpecs: outputs.datacatalog.v1.GoogleCloudDatacatalogV1GcsFileSpecResponse[]; } /** * Specification that applies to entries that are part `LOOKER` system (user_specified_type) */ interface GoogleCloudDatacatalogV1LookerSystemSpecResponse { /** * Name of the parent Looker Instance. Empty if it does not exist. */ parentInstanceDisplayName: string; /** * ID of the parent Looker Instance. Empty if it does not exist. Example value: `someinstance.looker.com` */ parentInstanceId: string; /** * Name of the parent Model. Empty if it does not exist. */ parentModelDisplayName: string; /** * ID of the parent Model. Empty if it does not exist. */ parentModelId: string; /** * Name of the parent View. Empty if it does not exist. */ parentViewDisplayName: string; /** * ID of the parent View. Empty if it does not exist. */ parentViewId: string; } /** * Specification that applies to a model. Valid only for entries with the `MODEL` type. */ interface GoogleCloudDatacatalogV1ModelSpecResponse { /** * Specification for vertex model resources. */ vertexModelSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1VertexModelSpecResponse; } /** * Entry metadata relevant only to the user and private to them. */ interface GoogleCloudDatacatalogV1PersonalDetailsResponse { /** * Set if the entry is starred; unset otherwise. */ starTime: string; /** * True if the entry is starred by the user; false otherwise. */ starred: boolean; } /** * Schema in Avro JSON format. */ interface GoogleCloudDatacatalogV1PhysicalSchemaAvroSchemaResponse { /** * JSON source of the Avro schema. */ text: string; } /** * Marks a CSV-encoded data source. */ interface GoogleCloudDatacatalogV1PhysicalSchemaCsvSchemaResponse { } /** * Marks an ORC-encoded data source. */ interface GoogleCloudDatacatalogV1PhysicalSchemaOrcSchemaResponse { } /** * Marks a Parquet-encoded data source. */ interface GoogleCloudDatacatalogV1PhysicalSchemaParquetSchemaResponse { } /** * Schema in protocol buffer format. */ interface GoogleCloudDatacatalogV1PhysicalSchemaProtobufSchemaResponse { /** * Protocol buffer source of the schema. */ text: string; } /** * Native schema used by a resource represented as an entry. Used by query engines for deserializing and parsing source data. */ interface GoogleCloudDatacatalogV1PhysicalSchemaResponse { /** * Schema in Avro JSON format. */ avro: outputs.datacatalog.v1.GoogleCloudDatacatalogV1PhysicalSchemaAvroSchemaResponse; /** * Marks a CSV-encoded data source. */ csv: outputs.datacatalog.v1.GoogleCloudDatacatalogV1PhysicalSchemaCsvSchemaResponse; /** * Marks an ORC-encoded data source. */ orc: outputs.datacatalog.v1.GoogleCloudDatacatalogV1PhysicalSchemaOrcSchemaResponse; /** * Marks a Parquet-encoded data source. */ parquet: outputs.datacatalog.v1.GoogleCloudDatacatalogV1PhysicalSchemaParquetSchemaResponse; /** * Schema in protocol buffer format. */ protobuf: outputs.datacatalog.v1.GoogleCloudDatacatalogV1PhysicalSchemaProtobufSchemaResponse; /** * Schema in Thrift format. */ thrift: outputs.datacatalog.v1.GoogleCloudDatacatalogV1PhysicalSchemaThriftSchemaResponse; } /** * Schema in Thrift format. */ interface GoogleCloudDatacatalogV1PhysicalSchemaThriftSchemaResponse { /** * Thrift IDL source of the schema. */ text: string; } /** * Input or output argument of a function or stored procedure. */ interface GoogleCloudDatacatalogV1RoutineSpecArgumentResponse { /** * Specifies whether the argument is input or output. */ mode: string; /** * The name of the argument. A return argument of a function might not have a name. */ name: string; /** * Type of the argument. The exact value depends on the source system and the language. */ type: string; } /** * Specification that applies to a routine. Valid only for entries with the `ROUTINE` type. */ interface GoogleCloudDatacatalogV1RoutineSpecResponse { /** * Fields specific for BigQuery routines. */ bigqueryRoutineSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1BigQueryRoutineSpecResponse; /** * The body of the routine. */ definitionBody: string; /** * The language the routine is written in. The exact value depends on the source system. For BigQuery routines, possible values are: * `SQL` * `JAVASCRIPT` */ language: string; /** * Return type of the argument. The exact value depends on the source system and the language. */ returnType: string; /** * Arguments of the routine. */ routineArguments: outputs.datacatalog.v1.GoogleCloudDatacatalogV1RoutineSpecArgumentResponse[]; /** * The type of the routine. */ routineType: string; } /** * Represents a schema, for example, a BigQuery, GoogleSQL, or Avro schema. */ interface GoogleCloudDatacatalogV1SchemaResponse { /** * The unified GoogleSQL-like schema of columns. The overall maximum number of columns and nested columns is 10,000. The maximum nested depth is 15 levels. */ columns: outputs.datacatalog.v1.GoogleCloudDatacatalogV1ColumnSchemaResponse[]; } /** * Specification that applies to a Service resource. Valid only for entries with the `SERVICE` type. */ interface GoogleCloudDatacatalogV1ServiceSpecResponse { /** * Specification that applies to Instance entries of `CLOUD_BIGTABLE` system. */ cloudBigtableInstanceSpec: outputs.datacatalog.v1.GoogleCloudDatacatalogV1CloudBigtableInstanceSpecResponse; } /** * Specification that applies to entries that are part `SQL_DATABASE` system (user_specified_type) */ interface GoogleCloudDatacatalogV1SqlDatabaseSystemSpecResponse { /** * Version of the database engine. */ databaseVersion: string; /** * Host of the SQL database enum InstanceHost { UNDEFINED = 0; SELF_HOSTED = 1; CLOUD_SQL = 2; AMAZON_RDS = 3; AZURE_SQL = 4; } Host of the enclousing database instance. */ instanceHost: string; /** * SQL Database Engine. enum SqlEngine { UNDEFINED = 0; MY_SQL = 1; POSTGRE_SQL = 2; SQL_SERVER = 3; } Engine of the enclosing database instance. */ sqlEngine: string; } /** * Details the properties of the underlying storage. */ interface GoogleCloudDatacatalogV1StoragePropertiesResponse { /** * Patterns to identify a set of files for this fileset. Examples of a valid `file_pattern`: * `gs://bucket_name/dir/*`: matches all files in the `bucket_name/dir` directory * `gs://bucket_name/dir/**`: matches all files in the `bucket_name/dir` and all subdirectories recursively * `gs://bucket_name/file*`: matches files prefixed by `file` in `bucket_name` * `gs://bucket_name/??.txt`: matches files with two characters followed by `.txt` in `bucket_name` * `gs://bucket_name/[aeiou].txt`: matches files that contain a single vowel character followed by `.txt` in `bucket_name` * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ... or `m` followed by `.txt` in `bucket_name` * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match the `a/*/b` pattern, such as `a/c/b`, `a/d/b` * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt` */ filePattern: string[]; /** * File type in MIME format, for example, `text/plain`. */ fileType: string; } /** * Timestamps associated with this resource in a particular system. */ interface GoogleCloudDatacatalogV1SystemTimestampsResponse { /** * Creation timestamp of the resource within the given system. */ createTime: string; /** * Expiration timestamp of the resource within the given system. Currently only applicable to BigQuery resources. */ expireTime: string; /** * Timestamp of the last modification of the resource or its metadata within a given system. Note: Depending on the source system, not every modification updates this timestamp. For example, BigQuery timestamps every metadata modification but not data or permission changes. */ updateTime: string; } /** * Normal BigQuery table specification. */ interface GoogleCloudDatacatalogV1TableSpecResponse { /** * If the table is date-sharded, that is, it matches the `[prefix]YYYYMMDD` name pattern, this field is the Data Catalog resource name of the date-sharded grouped entry. For example: `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`. Otherwise, `grouped_entry` is empty. */ groupedEntry: string; } /** * The source system of the Taxonomy. */ interface GoogleCloudDatacatalogV1TaxonomyServiceResponse { /** * The service agent for the service. */ identity: string; /** * The Google Cloud service name. */ name: string; } /** * The set of all usage signals that Data Catalog stores. Note: Usually, these signals are updated daily. In rare cases, an update may fail but will be performed again on the next day. */ interface GoogleCloudDatacatalogV1UsageSignalResponse { /** * Common usage statistics over each of the predefined time ranges. Supported time ranges are `{"24H", "7D", "30D", "Lifetime"}`. */ commonUsageWithinTimeRange: { [key: string]: string; }; /** * Favorite count in the source system. */ favoriteCount: string; /** * The end timestamp of the duration of usage statistics. */ updateTime: string; /** * BigQuery usage statistics over each of the predefined time ranges. Supported time ranges are `{"24H", "7D", "30D"}`. */ usageWithinTimeRange: { [key: string]: string; }; } /** * Specification for vertex dataset resources. */ interface GoogleCloudDatacatalogV1VertexDatasetSpecResponse { /** * The number of DataItems in this Dataset. Only apply for non-structured Dataset. */ dataItemCount: string; /** * Type of the dataset. */ dataType: string; } /** * Detail description of the source information of a Vertex model. */ interface GoogleCloudDatacatalogV1VertexModelSourceInfoResponse { /** * If this Model is copy of another Model. If true then source_type pertains to the original. */ copy: boolean; /** * Type of the model source. */ sourceType: string; } /** * Specification for vertex model resources. */ interface GoogleCloudDatacatalogV1VertexModelSpecResponse { /** * URI of the Docker image to be used as the custom container for serving predictions. */ containerImageUri: string; /** * User provided version aliases so that a model version can be referenced via alias */ versionAliases: string[]; /** * The description of this version. */ versionDescription: string; /** * The version ID of the model. */ versionId: string; /** * Source of a Vertex model. */ vertexModelSourceInfo: outputs.datacatalog.v1.GoogleCloudDatacatalogV1VertexModelSourceInfoResponse; } /** * Table view specification. */ interface GoogleCloudDatacatalogV1ViewSpecResponse { /** * The query that defines the table view. */ viewQuery: string; } } namespace v1beta1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.datacatalog.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Spec for a group of BigQuery tables with name pattern `[prefix]YYYYMMDD`. Context: https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding */ interface GoogleCloudDatacatalogV1beta1BigQueryDateShardedSpecResponse { /** * The Data Catalog resource name of the dataset entry the current table belongs to, for example, `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`. */ dataset: string; /** * Total number of shards. */ shardCount: string; /** * The table name prefix of the shards. The name of any given shard is `[table_prefix]YYYYMMDD`, for example, for shard `MyTable20180101`, the `table_prefix` is `MyTable`. */ tablePrefix: string; } /** * Describes a BigQuery table. */ interface GoogleCloudDatacatalogV1beta1BigQueryTableSpecResponse { /** * The table source type. */ tableSourceType: string; /** * Spec of a BigQuery table. This field should only be populated if `table_source_type` is `BIGQUERY_TABLE`. */ tableSpec: outputs.datacatalog.v1beta1.GoogleCloudDatacatalogV1beta1TableSpecResponse; /** * Table view specification. This field should only be populated if `table_source_type` is `BIGQUERY_VIEW`. */ viewSpec: outputs.datacatalog.v1beta1.GoogleCloudDatacatalogV1beta1ViewSpecResponse; } /** * Representation of a column within a schema. Columns could be nested inside other columns. */ interface GoogleCloudDatacatalogV1beta1ColumnSchemaResponse { /** * Name of the column. */ column: string; /** * Optional. Description of the column. Default value is an empty string. */ description: string; /** * Optional. A column's mode indicates whether the values in this column are required, nullable, etc. Only `NULLABLE`, `REQUIRED` and `REPEATED` are supported. Default mode is `NULLABLE`. */ mode: string; /** * Optional. Schema of sub-columns. A column can have zero or more sub-columns. */ subcolumns: outputs.datacatalog.v1beta1.GoogleCloudDatacatalogV1beta1ColumnSchemaResponse[]; /** * Type of the column. */ type: string; } /** * Specifications of a single file in Cloud Storage. */ interface GoogleCloudDatacatalogV1beta1GcsFileSpecResponse { /** * The full file path. Example: `gs://bucket_name/a/b.txt`. */ filePath: string; /** * Timestamps about the Cloud Storage file. */ gcsTimestamps: outputs.datacatalog.v1beta1.GoogleCloudDatacatalogV1beta1SystemTimestampsResponse; /** * The size of the file, in bytes. */ sizeBytes: string; } /** * Describes a Cloud Storage fileset entry. */ interface GoogleCloudDatacatalogV1beta1GcsFilesetSpecResponse { /** * Patterns to identify a set of files in Google Cloud Storage. See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames) for more information. Note that bucket wildcards are currently not supported. Examples of valid file_patterns: * `gs://bucket_name/dir/*`: matches all files within `bucket_name/dir` directory. * `gs://bucket_name/dir/**`: matches all files in `bucket_name/dir` spanning all subdirectories. * `gs://bucket_name/file*`: matches files prefixed by `file` in `bucket_name` * `gs://bucket_name/??.txt`: matches files with two characters followed by `.txt` in `bucket_name` * `gs://bucket_name/[aeiou].txt`: matches files that contain a single vowel character followed by `.txt` in `bucket_name` * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ... or `m` followed by `.txt` in `bucket_name` * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match `a/*/b` pattern, such as `a/c/b`, `a/d/b` * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt` You can combine wildcards to provide more powerful matches, for example: * `gs://bucket_name/[a-m]??.j*g` */ filePatterns: string[]; /** * Sample files contained in this fileset, not all files contained in this fileset are represented here. */ sampleGcsFileSpecs: outputs.datacatalog.v1beta1.GoogleCloudDatacatalogV1beta1GcsFileSpecResponse[]; } /** * Represents a schema (e.g. BigQuery, GoogleSQL, Avro schema). */ interface GoogleCloudDatacatalogV1beta1SchemaResponse { /** * Schema of columns. A maximum of 10,000 columns and sub-columns can be specified. */ columns: outputs.datacatalog.v1beta1.GoogleCloudDatacatalogV1beta1ColumnSchemaResponse[]; } /** * Timestamps about this resource according to a particular system. */ interface GoogleCloudDatacatalogV1beta1SystemTimestampsResponse { /** * The creation time of the resource within the given system. */ createTime: string; /** * The expiration time of the resource within the given system. Currently only apllicable to BigQuery resources. */ expireTime: string; /** * The last-modified time of the resource within the given system. */ updateTime: string; } /** * Normal BigQuery table spec. */ interface GoogleCloudDatacatalogV1beta1TableSpecResponse { /** * If the table is a dated shard, i.e., with name pattern `[prefix]YYYYMMDD`, `grouped_entry` is the Data Catalog resource name of the date sharded grouped entry, for example, `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`. Otherwise, `grouped_entry` is empty. */ groupedEntry: string; } /** * The source system of the Taxonomy. */ interface GoogleCloudDatacatalogV1beta1TaxonomyServiceResponse { /** * The service agent for the service. */ identity: string; /** * The Google Cloud service name. */ name: string; } /** * The set of all usage signals that we store in Data Catalog. */ interface GoogleCloudDatacatalogV1beta1UsageSignalResponse { /** * The timestamp of the end of the usage statistics duration. */ updateTime: string; /** * Usage statistics over each of the pre-defined time ranges, supported strings for time ranges are {"24H", "7D", "30D"}. */ usageWithinTimeRange: { [key: string]: string; }; } /** * Table view specification. */ interface GoogleCloudDatacatalogV1beta1ViewSpecResponse { /** * The query that defines the table view. */ viewQuery: string; } } } export declare namespace dataflow { namespace v1b3 { /** * Settings for WorkerPool autoscaling. */ interface AutoscalingSettingsResponse { /** * The algorithm to use for autoscaling. */ algorithm: string; /** * The maximum number of workers to cap scaling at. */ maxNumWorkers: number; } /** * Metadata for a BigQuery connector used by the job. */ interface BigQueryIODetailsResponse { /** * Dataset accessed in the connection. */ dataset: string; /** * Project accessed in the connection. */ project: string; /** * Query used to access data in the connection. */ query: string; /** * Table accessed in the connection. */ table: string; } /** * Metadata for a Cloud Bigtable connector used by the job. */ interface BigTableIODetailsResponse { /** * InstanceId accessed in the connection. */ instanceId: string; /** * ProjectId accessed in the connection. */ project: string; /** * TableId accessed in the connection. */ tableId: string; } /** * Description of an interstitial value between transforms in an execution stage. */ interface ComponentSourceResponse { /** * Dataflow service generated name for this source. */ name: string; /** * User name for the original user transform or collection with which this source is most closely associated. */ originalTransformOrCollection: string; /** * Human-readable name for this transform; may be user or system generated. */ userName: string; } /** * Description of a transform executed as part of an execution stage. */ interface ComponentTransformResponse { /** * Dataflow service generated name for this source. */ name: string; /** * User name for the original user transform with which this transform is most closely associated. */ originalTransform: string; /** * Human-readable name for this transform; may be user or system generated. */ userName: string; } /** * Configuration options for sampling elements. */ interface DataSamplingConfigResponse { /** * List of given sampling behaviors to enable. For example, specifying behaviors = [ALWAYS_ON] samples in-flight elements but does not sample exceptions. Can be used to specify multiple behaviors like, behaviors = [ALWAYS_ON, EXCEPTIONS] for specifying periodic sampling and exception sampling. If DISABLED is in the list, then sampling will be disabled and ignore the other given behaviors. Ordering does not matter. */ behaviors: string[]; } /** * Metadata for a Datastore connector used by the job. */ interface DatastoreIODetailsResponse { /** * Namespace used in the connection. */ namespace: string; /** * ProjectId accessed in the connection. */ project: string; } /** * Describes any options that have an effect on the debugging of pipelines. */ interface DebugOptionsResponse { /** * Configuration options for sampling elements from a running pipeline. */ dataSampling: outputs.dataflow.v1b3.DataSamplingConfigResponse; /** * When true, enables the logging of the literal hot key to the user's Cloud Logging. */ enableHotKeyLogging: boolean; } /** * Describes the data disk used by a workflow job. */ interface DiskResponse { /** * Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Cloud Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard */ diskType: string; /** * Directory in a VM where disk is mounted. */ mountPoint: string; /** * Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default. */ sizeGb: number; } /** * Data provided with a pipeline or transform to provide descriptive info. */ interface DisplayDataResponse { /** * Contains value if the data is of a boolean type. */ boolValue: boolean; /** * Contains value if the data is of duration type. */ durationValue: string; /** * Contains value if the data is of float type. */ floatValue: number; /** * Contains value if the data is of int64 type. */ int64Value: string; /** * Contains value if the data is of java class type. */ javaClassValue: string; /** * The key identifying the display data. This is intended to be used as a label for the display data when viewed in a dax monitoring system. */ key: string; /** * An optional label to display in a dax UI for the element. */ label: string; /** * The namespace for the key. This is usually a class name or programming language namespace (i.e. python module) which defines the display data. This allows a dax monitoring system to specially handle the data and perform custom rendering. */ namespace: string; /** * A possible additional shorter value to display. For example a java_class_name_value of com.mypackage.MyDoFn will be stored with MyDoFn as the short_str_value and com.mypackage.MyDoFn as the java_class_name value. short_str_value can be displayed and java_class_name_value will be displayed as a tooltip. */ shortStrValue: string; /** * Contains value if the data is of string type. */ strValue: string; /** * Contains value if the data is of timestamp type. */ timestampValue: string; /** * An optional full URL. */ url: string; } /** * Describes the environment in which a Dataflow Job runs. */ interface EnvironmentResponse { /** * The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com". */ clusterManagerApiService: string; /** * The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset} */ dataset: string; /** * Any debugging options to be supplied to the job. */ debugOptions: outputs.dataflow.v1b3.DebugOptionsResponse; /** * The list of experiments to enable. This field should be used for SDK related experiments and not for service related experiments. The proper field for service related experiments is service_options. */ experiments: string[]; /** * Which Flexible Resource Scheduling mode to run in. */ flexResourceSchedulingGoal: string; /** * Experimental settings. */ internalExperiments: { [key: string]: string; }; /** * The Cloud Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way. */ sdkPipelineOptions: { [key: string]: string; }; /** * Identity to run virtual machines as. Defaults to the default account. */ serviceAccountEmail: string; /** * If set, contains the Cloud KMS key identifier used to encrypt data at rest, AKA a Customer Managed Encryption Key (CMEK). Format: projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY */ serviceKmsKeyName: string; /** * The list of service options to enable. This field should be used for service related experiments only. These experiments, when graduating to GA, should be replaced by dedicated fields or become default (i.e. always on). */ serviceOptions: string[]; /** * The shuffle mode used for the job. */ shuffleMode: string; /** * The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object} */ tempStoragePrefix: string; /** * Whether the job uses the new streaming engine billing model based on resource usage. */ useStreamingEngineResourceBasedBilling: boolean; /** * A description of the process that generated the request. */ userAgent: { [key: string]: string; }; /** * A structure describing which components and their versions of the service are required in order to run the job. */ version: { [key: string]: string; }; /** * The worker pools. At least one "harness" worker pool must be specified in order for the job to have workers. */ workerPools: outputs.dataflow.v1b3.WorkerPoolResponse[]; /** * The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1". Mutually exclusive with worker_zone. If neither worker_region nor worker_zone is specified, default to the control plane's region. */ workerRegion: string; /** * The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1-a". Mutually exclusive with worker_region. If neither worker_region nor worker_zone is specified, a zone in the control plane's region is chosen based on available capacity. */ workerZone: string; } /** * A message describing the state of a particular execution stage. */ interface ExecutionStageStateResponse { /** * The time at which the stage transitioned to this state. */ currentStateTime: string; /** * The name of the execution stage. */ executionStageName: string; /** * Executions stage states allow the same set of values as JobState. */ executionStageState: string; } /** * Description of the composing transforms, names/ids, and input/outputs of a stage of execution. Some composing transforms and sources may have been generated by the Dataflow service during execution planning. */ interface ExecutionStageSummaryResponse { /** * Collections produced and consumed by component transforms of this stage. */ componentSource: outputs.dataflow.v1b3.ComponentSourceResponse[]; /** * Transforms that comprise this execution stage. */ componentTransform: outputs.dataflow.v1b3.ComponentTransformResponse[]; /** * Input sources for this stage. */ inputSource: outputs.dataflow.v1b3.StageSourceResponse[]; /** * Type of transform this stage is executing. */ kind: string; /** * Dataflow service generated name for this stage. */ name: string; /** * Output sources for this stage. */ outputSource: outputs.dataflow.v1b3.StageSourceResponse[]; /** * Other stages that must complete before this stage can run. */ prerequisiteStage: string[]; } /** * Metadata for a File connector used by the job. */ interface FileIODetailsResponse { /** * File Pattern used to access files by the connector. */ filePattern: string; } /** * Additional information about how a Cloud Dataflow job will be executed that isn't contained in the submitted job. */ interface JobExecutionInfoResponse { /** * A mapping from each stage to the information about that stage. */ stages: { [key: string]: string; }; } /** * Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. */ interface JobMetadataResponse { /** * Identification of a Cloud Bigtable source used in the Dataflow job. */ bigTableDetails: outputs.dataflow.v1b3.BigTableIODetailsResponse[]; /** * Identification of a BigQuery source used in the Dataflow job. */ bigqueryDetails: outputs.dataflow.v1b3.BigQueryIODetailsResponse[]; /** * Identification of a Datastore source used in the Dataflow job. */ datastoreDetails: outputs.dataflow.v1b3.DatastoreIODetailsResponse[]; /** * Identification of a File source used in the Dataflow job. */ fileDetails: outputs.dataflow.v1b3.FileIODetailsResponse[]; /** * Identification of a Pub/Sub source used in the Dataflow job. */ pubsubDetails: outputs.dataflow.v1b3.PubSubIODetailsResponse[]; /** * The SDK version used to run the job. */ sdkVersion: outputs.dataflow.v1b3.SdkVersionResponse; /** * Identification of a Spanner source used in the Dataflow job. */ spannerDetails: outputs.dataflow.v1b3.SpannerIODetailsResponse[]; /** * List of display properties to help UI filter jobs. */ userDisplayProperties: { [key: string]: string; }; } /** * The packages that must be installed in order for a worker to run the steps of the Cloud Dataflow job that will be assigned to its worker pool. This is the mechanism by which the Cloud Dataflow SDK causes code to be loaded onto the workers. For example, the Cloud Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc.) required in order for that code to run. */ interface PackageResponse { /** * The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/ */ location: string; /** * The name of the package. */ name: string; } /** * ParameterMetadataEnumOption specifies the option shown in the enum form. */ interface ParameterMetadataEnumOptionResponse { /** * Optional. The description to display for the enum option. */ description: string; /** * Optional. The label to display for the enum option. */ label: string; /** * The value of the enum option. */ value: string; } /** * Metadata for a specific parameter. */ interface ParameterMetadataResponse { /** * Optional. Additional metadata for describing this parameter. */ customMetadata: { [key: string]: string; }; /** * Optional. The default values will pre-populate the parameter with the given value from the proto. If default_value is left empty, the parameter will be populated with a default of the relevant type, e.g. false for a boolean. */ defaultValue: string; /** * Optional. The options shown when ENUM ParameterType is specified. */ enumOptions: outputs.dataflow.v1b3.ParameterMetadataEnumOptionResponse[]; /** * Optional. Specifies a group name for this parameter to be rendered under. Group header text will be rendered exactly as specified in this field. Only considered when parent_name is NOT provided. */ groupName: string; /** * The help text to display for the parameter. */ helpText: string; /** * Optional. Whether the parameter is optional. Defaults to false. */ isOptional: boolean; /** * The label to display for the parameter. */ label: string; /** * The name of the parameter. */ name: string; /** * Optional. The type of the parameter. Used for selecting input picker. */ paramType: string; /** * Optional. Specifies the name of the parent parameter. Used in conjunction with 'parent_trigger_values' to make this parameter conditional (will only be rendered conditionally). Should be mappable to a ParameterMetadata.name field. */ parentName: string; /** * Optional. The value(s) of the 'parent_name' parameter which will trigger this parameter to be shown. If left empty, ANY non-empty value in parent_name will trigger this parameter to be shown. Only considered when this parameter is conditional (when 'parent_name' has been provided). */ parentTriggerValues: string[]; /** * Optional. Regexes that the parameter must match. */ regexes: string[]; } /** * A descriptive representation of submitted pipeline as well as the executed form. This data is provided by the Dataflow service for ease of visualizing the pipeline and interpreting Dataflow provided metrics. */ interface PipelineDescriptionResponse { /** * Pipeline level display data. */ displayData: outputs.dataflow.v1b3.DisplayDataResponse[]; /** * Description of each stage of execution of the pipeline. */ executionPipelineStage: outputs.dataflow.v1b3.ExecutionStageSummaryResponse[]; /** * Description of each transform in the pipeline and collections between them. */ originalPipelineTransform: outputs.dataflow.v1b3.TransformSummaryResponse[]; /** * A hash value of the submitted pipeline portable graph step names if exists. */ stepNamesHash: string; } /** * Metadata for a Pub/Sub connector used by the job. */ interface PubSubIODetailsResponse { /** * Subscription used in the connection. */ subscription: string; /** * Topic accessed in the connection. */ topic: string; } /** * RuntimeMetadata describing a runtime environment. */ interface RuntimeMetadataResponse { /** * The parameters for the template. */ parameters: outputs.dataflow.v1b3.ParameterMetadataResponse[]; /** * SDK Info for the template. */ sdkInfo: outputs.dataflow.v1b3.SDKInfoResponse; } /** * Additional job parameters that can only be updated during runtime using the projects.jobs.update method. These fields have no effect when specified during job creation. */ interface RuntimeUpdatableParamsResponse { /** * The maximum number of workers to cap autoscaling at. This field is currently only supported for Streaming Engine jobs. */ maxNumWorkers: number; /** * The minimum number of workers to scale down to. This field is currently only supported for Streaming Engine jobs. */ minNumWorkers: number; } /** * SDK Information. */ interface SDKInfoResponse { /** * The SDK Language. */ language: string; /** * Optional. The SDK version. */ version: string; } /** * A bug found in the Dataflow SDK. */ interface SdkBugResponse { /** * How severe the SDK bug is. */ severity: string; /** * Describes the impact of this SDK bug. */ type: string; /** * Link to more information on the bug. */ uri: string; } /** * Defines an SDK harness container for executing Dataflow pipelines. */ interface SdkHarnessContainerImageResponse { /** * The set of capabilities enumerated in the above Environment proto. See also [beam_runner_api.proto](https://github.com/apache/beam/blob/master/model/pipeline/src/main/proto/org/apache/beam/model/pipeline/v1/beam_runner_api.proto) */ capabilities: string[]; /** * A docker container image that resides in Google Container Registry. */ containerImage: string; /** * Environment ID for the Beam runner API proto Environment that corresponds to the current SDK Harness. */ environmentId: string; /** * If true, recommends the Dataflow service to use only one core per SDK container instance with this image. If false (or unset) recommends using more than one core per SDK container instance with this image for efficiency. Note that Dataflow service may choose to override this property if needed. */ useSingleCorePerContainer: boolean; } /** * The version of the SDK used to run the job. */ interface SdkVersionResponse { /** * Known bugs found in this SDK version. */ bugs: outputs.dataflow.v1b3.SdkBugResponse[]; /** * The support status for this SDK version. */ sdkSupportStatus: string; /** * The version of the SDK used to run the job. */ version: string; /** * A readable string describing the version of the SDK. */ versionDisplayName: string; } /** * Metadata for a Spanner connector used by the job. */ interface SpannerIODetailsResponse { /** * DatabaseId accessed in the connection. */ databaseId: string; /** * InstanceId accessed in the connection. */ instanceId: string; /** * ProjectId accessed in the connection. */ project: string; } /** * Description of an input or output of an execution stage. */ interface StageSourceResponse { /** * Dataflow service generated name for this source. */ name: string; /** * User name for the original user transform or collection with which this source is most closely associated. */ originalTransformOrCollection: string; /** * Size of the source, if measurable. */ sizeBytes: string; /** * Human-readable name for this source; may be user or system generated. */ userName: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Defines a particular step within a Cloud Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. **Note:** The properties of this object are not stable and might change. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. Note that the Cloud Dataflow service may be used to run many different types of jobs, not just Map-Reduce. */ interface StepResponse { /** * The kind of step in the Cloud Dataflow job. */ kind: string; /** * The name that identifies the step. This must be unique for each step with respect to all other steps in the Cloud Dataflow job. */ name: string; /** * Named properties associated with the step. Each kind of predefined step has its own required set of properties. Must be provided on Create. Only retrieved with JOB_VIEW_ALL. */ properties: { [key: string]: string; }; } /** * Taskrunner configuration settings. */ interface TaskRunnerSettingsResponse { /** * Whether to also send taskrunner log info to stderr. */ alsologtostderr: boolean; /** * The location on the worker for task-specific subdirectories. */ baseTaskDir: string; /** * The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/" */ baseUrl: string; /** * The file to store preprocessing commands in. */ commandlinesFileName: string; /** * Whether to continue taskrunner if an exception is hit. */ continueOnException: boolean; /** * The API version of endpoint, e.g. "v1b3" */ dataflowApiVersion: string; /** * The command to launch the worker harness. */ harnessCommand: string; /** * The suggested backend language. */ languageHint: string; /** * The directory on the VM to store logs. */ logDir: string; /** * Whether to send taskrunner log info to Google Compute Engine VM serial console. */ logToSerialconsole: boolean; /** * Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object} */ logUploadLocation: string; /** * The OAuth2 scopes to be requested by the taskrunner in order to access the Cloud Dataflow API. */ oauthScopes: string[]; /** * The settings to pass to the parallel worker harness. */ parallelWorkerSettings: outputs.dataflow.v1b3.WorkerSettingsResponse; /** * The streaming worker main class name. */ streamingWorkerMainClass: string; /** * The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel". */ taskGroup: string; /** * The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root". */ taskUser: string; /** * The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object} */ tempStoragePrefix: string; /** * The ID string of the VM. */ vmId: string; /** * The file to store the workflow in. */ workflowFileName: string; } /** * Metadata describing a template. */ interface TemplateMetadataResponse { /** * Optional. A description of the template. */ description: string; /** * The name of the template. */ name: string; /** * The parameters for the template. */ parameters: outputs.dataflow.v1b3.ParameterMetadataResponse[]; } /** * Description of the type, names/ids, and input/outputs for a transform. */ interface TransformSummaryResponse { /** * Transform-specific display data. */ displayData: outputs.dataflow.v1b3.DisplayDataResponse[]; /** * User names for all collection inputs to this transform. */ inputCollectionName: string[]; /** * Type of transform. */ kind: string; /** * User provided name for this transform instance. */ name: string; /** * User names for all collection outputs to this transform. */ outputCollectionName: string[]; } /** * Describes one particular pool of Cloud Dataflow workers to be instantiated by the Cloud Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job. */ interface WorkerPoolResponse { /** * Settings for autoscaling of this WorkerPool. */ autoscalingSettings: outputs.dataflow.v1b3.AutoscalingSettingsResponse; /** * Data disks that are used by a VM in this workflow. */ dataDisks: outputs.dataflow.v1b3.DiskResponse[]; /** * The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language. */ defaultPackageSet: string; /** * Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default. */ diskSizeGb: number; /** * Fully qualified source image for disks. */ diskSourceImage: string; /** * Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default. */ diskType: string; /** * Configuration for VM IPs. */ ipConfiguration: string; /** * The kind of the worker pool; currently only `harness` and `shuffle` are supported. */ kind: string; /** * Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default. */ machineType: string; /** * Metadata to set on the Google Compute Engine VMs. */ metadata: { [key: string]: string; }; /** * Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default". */ network: string; /** * The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming). */ numThreadsPerWorker: number; /** * Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default. */ numWorkers: number; /** * The action to take on host maintenance, as defined by the Google Compute Engine API. */ onHostMaintenance: string; /** * Packages to be installed on workers. */ packages: outputs.dataflow.v1b3.PackageResponse[]; /** * Extra arguments for this worker pool. */ poolArgs: { [key: string]: string; }; /** * Set of SDK harness containers needed to execute this pipeline. This will only be set in the Fn API path. For non-cross-language pipelines this should have only one entry. Cross-language pipelines will have two or more entries. */ sdkHarnessContainerImages: outputs.dataflow.v1b3.SdkHarnessContainerImageResponse[]; /** * Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK". */ subnetwork: string; /** * Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field. */ taskrunnerSettings: outputs.dataflow.v1b3.TaskRunnerSettingsResponse; /** * Sets the policy for determining when to turndown worker pool. Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and `TEARDOWN_NEVER`. `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the `TEARDOWN_ALWAYS` policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default. */ teardownPolicy: string; /** * Docker container image that executes the Cloud Dataflow worker harness, residing in Google Container Registry. Deprecated for the Fn API path. Use sdk_harness_container_images instead. * * @deprecated Required. Docker container image that executes the Cloud Dataflow worker harness, residing in Google Container Registry. Deprecated for the Fn API path. Use sdk_harness_container_images instead. */ workerHarnessContainerImage: string; /** * Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default. */ zone: string; } /** * Provides data to pass through to the worker harness. */ interface WorkerSettingsResponse { /** * The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/" */ baseUrl: string; /** * Whether to send work progress updates to the service. */ reportingEnabled: boolean; /** * The Cloud Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects". */ servicePath: string; /** * The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1". */ shuffleServicePath: string; /** * The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object} */ tempStoragePrefix: string; /** * The ID of the worker running this pipeline. */ workerId: string; } } } export declare namespace dataform { namespace v1beta1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.dataform.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Configures various aspects of Dataform code compilation. */ interface CodeCompilationConfigResponse { /** * Optional. The default schema (BigQuery dataset ID) for assertions. */ assertionSchema: string; /** * Optional. The suffix that should be appended to all database (Google Cloud project ID) names. */ databaseSuffix: string; /** * Optional. The default database (Google Cloud project ID). */ defaultDatabase: string; /** * Optional. The default BigQuery location to use. Defaults to "US". See the BigQuery docs for a full list of locations: https://cloud.google.com/bigquery/docs/locations. */ defaultLocation: string; /** * Optional. The default schema (BigQuery dataset ID). */ defaultSchema: string; /** * Optional. The suffix that should be appended to all schema (BigQuery dataset ID) names. */ schemaSuffix: string; /** * Optional. The prefix that should be prepended to all table names. */ tablePrefix: string; /** * Optional. User-defined variables that are made available to project code during compilation. */ vars: { [key: string]: string; }; } /** * An error encountered when attempting to compile a Dataform project. */ interface CompilationErrorResponse { /** * The identifier of the action where this error occurred, if available. */ actionTarget: outputs.dataform.v1beta1.TargetResponse; /** * The error's top level message. */ message: string; /** * The path of the file where this error occurred, if available, relative to the project root. */ path: string; /** * The error's full stack trace. */ stack: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Controls Git remote configuration for a repository. */ interface GitRemoteSettingsResponse { /** * Optional. The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in the format `projects/*/secrets/*/versions/*`. */ authenticationTokenSecretVersion: string; /** * The Git remote's default branch name. */ defaultBranch: string; /** * Optional. Authentication fields for remote uris using SSH protocol. */ sshAuthenticationConfig: outputs.dataform.v1beta1.SshAuthenticationConfigResponse; /** * Deprecated: The field does not contain any token status information. Instead use https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus * * @deprecated Output only. Deprecated: The field does not contain any token status information. Instead use https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus */ tokenStatus: string; /** * The Git remote's URL. */ url: string; } /** * Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time. */ interface IntervalResponse { /** * Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end. */ endTime: string; /** * Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start. */ startTime: string; } /** * Includes various configuration options for a workflow invocation. If both `included_targets` and `included_tags` are unset, all actions will be included. */ interface InvocationConfigResponse { /** * Optional. When set to true, any incremental tables will be fully refreshed. */ fullyRefreshIncrementalTablesEnabled: boolean; /** * Optional. The set of tags to include. */ includedTags: string[]; /** * Optional. The set of action identifiers to include. */ includedTargets: outputs.dataform.v1beta1.TargetResponse[]; /** * Optional. The service account to run workflow invocations under. */ serviceAccount: string; /** * Optional. When set to true, transitive dependencies of included actions will be executed. */ transitiveDependenciesIncluded: boolean; /** * Optional. When set to true, transitive dependents of included actions will be executed. */ transitiveDependentsIncluded: boolean; } /** * A record of an attempt to create a workflow invocation for this workflow config. */ interface ScheduledExecutionRecordResponse { /** * The error status encountered upon this attempt to create the workflow invocation, if the attempt was unsuccessful. */ errorStatus: outputs.dataform.v1beta1.StatusResponse; /** * The timestamp of this execution attempt. */ executionTime: string; /** * The name of the created workflow invocation, if one was successfully created. Must be in the format `projects/*/locations/*/repositories/*/workflowInvocations/*`. */ workflowInvocation: string; } /** * A record of an attempt to create a compilation result for this release config. */ interface ScheduledReleaseRecordResponse { /** * The name of the created compilation result, if one was successfully created. Must be in the format `projects/*/locations/*/repositories/*/compilationResults/*`. */ compilationResult: string; /** * The error status encountered upon this attempt to create the compilation result, if the attempt was unsuccessful. */ errorStatus: outputs.dataform.v1beta1.StatusResponse; /** * The timestamp of this release attempt. */ releaseTime: string; } /** * Configures fields for performing SSH authentication. */ interface SshAuthenticationConfigResponse { /** * Content of a public SSH key to verify an identity of a remote Git host. */ hostPublicKey: string; /** * The name of the Secret Manager secret version to use as a ssh private key for Git operations. Must be in the format `projects/*/secrets/*/versions/*`. */ userPrivateKeySecretVersion: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Represents an action identifier. If the action writes output, the output will be written to the referenced database object. */ interface TargetResponse { /** * The action's database (Google Cloud project ID) . */ database: string; /** * The action's name, within `database` and `schema`. */ name: string; /** * The action's schema (BigQuery dataset ID), within `database`. */ schema: string; } /** * Configures workspace compilation overrides for a repository. Primarily used by the UI (`console.cloud.google.com`). `schema_suffix` and `table_prefix` can have a special expression - `${workspaceName}`, which refers to the workspace name from which the compilation results will be created. API callers are expected to resolve the expression in these overrides and provide them explicitly in `code_compilation_config` (https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories.compilationResults#codecompilationconfig) when creating workspace-scoped compilation results. */ interface WorkspaceCompilationOverridesResponse { /** * Optional. The default database (Google Cloud project ID). */ defaultDatabase: string; /** * Optional. The suffix that should be appended to all schema (BigQuery dataset ID) names. */ schemaSuffix: string; /** * Optional. The prefix that should be prepended to all table names. */ tablePrefix: string; } } } export declare namespace datafusion { namespace v1 { /** * Identifies Data Fusion accelerators for an instance. */ interface AcceleratorResponse { /** * The type of an accelator for a CDF instance. */ acceleratorType: string; /** * The state of the accelerator. */ state: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.datafusion.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.datafusion.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * The crypto key configuration. This field is used by the Customer-managed encryption keys (CMEK) feature. */ interface CryptoKeyConfigResponse { /** * The name of the key which is used to encrypt/decrypt customer data. For key in Cloud KMS, the key should be in the format of `projects/*/locations/*/keyRings/*/cryptoKeys/*`. */ keyReference: string; } /** * Confirguration of PubSubEventWriter. */ interface EventPublishConfigResponse { /** * Option to enable Event Publishing. */ enabled: boolean; /** * The resource name of the Pub/Sub topic. Format: projects/{project_id}/topics/{topic_id} */ topic: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Network configuration for a Data Fusion instance. These configurations are used for peering with the customer network. Configurations are optional when a public Data Fusion instance is to be created. However, providing these configurations allows several benefits, such as reduced network latency while accessing the customer resources from managed Data Fusion instance nodes, as well as access to the customer on-prem resources. */ interface NetworkConfigResponse { /** * The IP range in CIDR notation to use for the managed Data Fusion instance nodes. This range must not overlap with any other ranges used in the customer network. */ ipAllocation: string; /** * Name of the network in the customer project with which the Tenant Project will be peered for executing pipelines. In case of shared VPC where the network resides in another host project the network should specified in the form of projects/{host-project-id}/global/networks/{network} */ network: string; } /** * The Data Fusion version. This proto message stores information about certain Data Fusion version, which is used for Data Fusion version upgrade. */ interface VersionResponse { /** * Represents a list of available feature names for a given version. */ availableFeatures: string[]; /** * Whether this is currently the default version for Cloud Data Fusion */ defaultVersion: boolean; /** * Type represents the release availability of the version */ type: string; /** * The version number of the Data Fusion instance, such as '6.0.1.0'. */ versionNumber: string; } } namespace v1beta1 { /** * Identifies Data Fusion accelerators for an instance. */ interface AcceleratorResponse { /** * The type of an accelator for a CDF instance. */ acceleratorType: string; /** * The state of the accelerator. */ state: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.datafusion.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.datafusion.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * The crypto key configuration. This field is used by the Customer-managed encryption keys (CMEK) feature. */ interface CryptoKeyConfigResponse { /** * The name of the key which is used to encrypt/decrypt customer data. For key in Cloud KMS, the key should be in the format of `projects/*/locations/*/keyRings/*/cryptoKeys/*`. */ keyReference: string; } /** * Confirguration of PubSubEventWriter. */ interface EventPublishConfigResponse { /** * Option to enable Event Publishing. */ enabled: boolean; /** * The resource name of the Pub/Sub topic. Format: projects/{project_id}/topics/{topic_id} */ topic: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Network configuration for a Data Fusion instance. These configurations are used for peering with the customer network. Configurations are optional when a public Data Fusion instance is to be created. However, providing these configurations allows several benefits, such as reduced network latency while accessing the customer resources from managed Data Fusion instance nodes, as well as access to the customer on-prem resources. */ interface NetworkConfigResponse { /** * Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and the corresponding tenant project from a predefined list of available connection modes. If this field is unspecified for a private instance, VPC peering is used. */ connectionType: string; /** * Optional. The IP range in CIDR notation to use for the managed Data Fusion instance nodes. This range must not overlap with any other ranges used in the Data Fusion instance network. This is required only when using connection type VPC_PEERING. Format: a.b.c.d/22 Example: 192.168.0.0/22 */ ipAllocation: string; /** * Optional. Name of the network in the customer project with which the Tenant Project will be peered for executing pipelines. This is required only when using connection type VPC peering. In case of shared VPC where the network resides in another host project the network should specified in the form of projects/{project-id}/global/networks/{network}. This is only required for connectivity type VPC_PEERING. */ network: string; /** * Optional. Configuration for Private Service Connect. This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES. */ privateServiceConnectConfig: outputs.datafusion.v1beta1.PrivateServiceConnectConfigResponse; } /** * Configuration for using Private Service Connect to establish connectivity between the Data Fusion consumer project and the corresponding tenant project. */ interface PrivateServiceConnectConfigResponse { /** * The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC. The size of this block is /25. The format of this field is governed by RFC 4632. Example: 240.0.0.0/25 */ effectiveUnreachableCidrBlock: string; /** * The reference to the network attachment used to establish private connectivity. It will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}. */ networkAttachment: string; /** * Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC. The size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment. This range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses. If this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632. Example: 192.168.0.0/25 */ unreachableCidrBlock: string; } /** * The Data Fusion version. */ interface VersionResponse { /** * Represents a list of available feature names for a given version. */ availableFeatures: string[]; /** * Whether this is currently the default version for Cloud Data Fusion */ defaultVersion: boolean; /** * Type represents the release availability of the version */ type: string; /** * The version number of the Data Fusion instance, such as '6.0.1.0'. */ versionNumber: string; } } } export declare namespace datalabeling { namespace v1beta1 { /** * Container of information related to one possible annotation that can be used in a labeling task. For example, an image classification task where images are labeled as `dog` or `cat` must reference an AnnotationSpec for `dog` and an AnnotationSpec for `cat`. */ interface GoogleCloudDatalabelingV1beta1AnnotationSpecResponse { /** * Optional. User-provided description of the annotation specification. The description can be up to 10,000 characters long. */ description: string; /** * The display name of the AnnotationSpec. Maximum of 64 characters. */ displayName: string; /** * This is the integer index of the AnnotationSpec. The index for the whole AnnotationSpecSet is sequential starting from 0. For example, an AnnotationSpecSet with classes `dog` and `cat`, might contain one AnnotationSpec with `{ display_name: "dog", index: 0 }` and one AnnotationSpec with `{ display_name: "cat", index: 1 }`. This is especially useful for model training as it encodes the string labels into numeric values. */ index: number; } /** * Records a failed evaluation job run. */ interface GoogleCloudDatalabelingV1beta1AttemptResponse { attemptTime: string; /** * Details of errors that occurred. */ partialFailures: outputs.datalabeling.v1beta1.GoogleRpcStatusResponse[]; } /** * The BigQuery location for input data. If used in an EvaluationJob, this is where the service saves the prediction input and output sampled from the model version. */ interface GoogleCloudDatalabelingV1beta1BigQuerySourceResponse { /** * BigQuery URI to a table, up to 2,000 characters long. If you specify the URI of a table that does not exist, Data Labeling Service creates a table at the URI with the correct schema when you create your EvaluationJob. If you specify the URI of a table that already exists, it must have the [correct schema](/ml-engine/docs/continuous-evaluation/create-job#table-schema). Provide the table URI in the following format: "bq://{your_project_id}/ {your_dataset_name}/{your_table_name}" [Learn more](/ml-engine/docs/continuous-evaluation/create-job#table-schema). */ inputUri: string; } /** * Options regarding evaluation between bounding boxes. */ interface GoogleCloudDatalabelingV1beta1BoundingBoxEvaluationOptionsResponse { /** * Minimum [intersection-over-union (IOU)](/vision/automl/object-detection/docs/evaluate#intersection-over-union) required for 2 bounding boxes to be considered a match. This must be a number between 0 and 1. */ iouThreshold: number; } /** * Config for image bounding poly (and bounding box) human labeling task. */ interface GoogleCloudDatalabelingV1beta1BoundingPolyConfigResponse { /** * Annotation spec set resource name. */ annotationSpecSet: string; /** * Optional. Instruction message showed on contributors UI. */ instructionMessage: string; } /** * Metadata for classification annotations. */ interface GoogleCloudDatalabelingV1beta1ClassificationMetadataResponse { /** * Whether the classification task is multi-label or not. */ isMultiLabel: boolean; } /** * Deprecated: this instruction format is not supported any more. Instruction from a CSV file. */ interface GoogleCloudDatalabelingV1beta1CsvInstructionResponse { /** * CSV file for the instruction. Only gcs path is allowed. */ gcsFileUri: string; } /** * Configuration details used for calculating evaluation metrics and creating an Evaluation. */ interface GoogleCloudDatalabelingV1beta1EvaluationConfigResponse { /** * Only specify this field if the related model performs image object detection (`IMAGE_BOUNDING_BOX_ANNOTATION`). Describes how to evaluate bounding boxes. */ boundingBoxEvaluationOptions: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1BoundingBoxEvaluationOptionsResponse; } /** * Provides details for how an evaluation job sends email alerts based on the results of a run. */ interface GoogleCloudDatalabelingV1beta1EvaluationJobAlertConfigResponse { /** * An email address to send alerts to. */ email: string; /** * A number between 0 and 1 that describes a minimum mean average precision threshold. When the evaluation job runs, if it calculates that your model version's predictions from the recent interval have meanAveragePrecision below this threshold, then it sends an alert to your specified email. */ minAcceptableMeanAveragePrecision: number; } /** * Configures specific details of how a continuous evaluation job works. Provide this configuration when you create an EvaluationJob. */ interface GoogleCloudDatalabelingV1beta1EvaluationJobConfigResponse { /** * Prediction keys that tell Data Labeling Service where to find the data for evaluation in your BigQuery table. When the service samples prediction input and output from your model version and saves it to BigQuery, the data gets stored as JSON strings in the BigQuery table. These keys tell Data Labeling Service how to parse the JSON. You can provide the following entries in this field: * `data_json_key`: the data key for prediction input. You must provide either this key or `reference_json_key`. * `reference_json_key`: the data reference key for prediction input. You must provide either this key or `data_json_key`. * `label_json_key`: the label key for prediction output. Required. * `label_score_json_key`: the score key for prediction output. Required. * `bounding_box_json_key`: the bounding box key for prediction output. Required if your model version perform image object detection. Learn [how to configure prediction keys](/ml-engine/docs/continuous-evaluation/create-job#prediction-keys). */ bigqueryImportKeys: { [key: string]: string; }; /** * Specify this field if your model version performs image object detection (bounding box detection). `annotationSpecSet` in this configuration must match EvaluationJob.annotationSpecSet. */ boundingPolyConfig: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1BoundingPolyConfigResponse; /** * Details for calculating evaluation metrics and creating Evaulations. If your model version performs image object detection, you must specify the `boundingBoxEvaluationOptions` field within this configuration. Otherwise, provide an empty object for this configuration. */ evaluationConfig: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1EvaluationConfigResponse; /** * Optional. Configuration details for evaluation job alerts. Specify this field if you want to receive email alerts if the evaluation job finds that your predictions have low mean average precision during a run. */ evaluationJobAlertConfig: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1EvaluationJobAlertConfigResponse; /** * The maximum number of predictions to sample and save to BigQuery during each evaluation interval. This limit overrides `example_sample_percentage`: even if the service has not sampled enough predictions to fulfill `example_sample_perecentage` during an interval, it stops sampling predictions when it meets this limit. */ exampleCount: number; /** * Fraction of predictions to sample and save to BigQuery during each evaluation interval. For example, 0.1 means 10% of predictions served by your model version get saved to BigQuery. */ exampleSamplePercentage: number; /** * Optional. Details for human annotation of your data. If you set labelMissingGroundTruth to `true` for this evaluation job, then you must specify this field. If you plan to provide your own ground truth labels, then omit this field. Note that you must create an Instruction resource before you can specify this field. Provide the name of the instruction resource in the `instruction` field within this configuration. */ humanAnnotationConfig: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1HumanAnnotationConfigResponse; /** * Specify this field if your model version performs image classification or general classification. `annotationSpecSet` in this configuration must match EvaluationJob.annotationSpecSet. `allowMultiLabel` in this configuration must match `classificationMetadata.isMultiLabel` in input_config. */ imageClassificationConfig: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1ImageClassificationConfigResponse; /** * Rquired. Details for the sampled prediction input. Within this configuration, there are requirements for several fields: * `dataType` must be one of `IMAGE`, `TEXT`, or `GENERAL_DATA`. * `annotationType` must be one of `IMAGE_CLASSIFICATION_ANNOTATION`, `TEXT_CLASSIFICATION_ANNOTATION`, `GENERAL_CLASSIFICATION_ANNOTATION`, or `IMAGE_BOUNDING_BOX_ANNOTATION` (image object detection). * If your machine learning model performs classification, you must specify `classificationMetadata.isMultiLabel`. * You must specify `bigquerySource` (not `gcsSource`). */ inputConfig: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1InputConfigResponse; /** * Specify this field if your model version performs text classification. `annotationSpecSet` in this configuration must match EvaluationJob.annotationSpecSet. `allowMultiLabel` in this configuration must match `classificationMetadata.isMultiLabel` in input_config. */ textClassificationConfig: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1TextClassificationConfigResponse; } /** * Source of the Cloud Storage file to be imported. */ interface GoogleCloudDatalabelingV1beta1GcsSourceResponse { /** * The input URI of source file. This must be a Cloud Storage path (`gs://...`). */ inputUri: string; /** * The format of the source file. Only "text/csv" is supported. */ mimeType: string; } /** * Configuration for how human labeling task should be done. */ interface GoogleCloudDatalabelingV1beta1HumanAnnotationConfigResponse { /** * Optional. A human-readable description for AnnotatedDataset. The description can be up to 10000 characters long. */ annotatedDatasetDescription: string; /** * A human-readable name for AnnotatedDataset defined by users. Maximum of 64 characters . */ annotatedDatasetDisplayName: string; /** * Optional. If you want your own labeling contributors to manage and work on this labeling request, you can set these contributors here. We will give them access to the question types in crowdcompute. Note that these emails must be registered in crowdcompute worker UI: https://crowd-compute.appspot.com/ */ contributorEmails: string[]; /** * Instruction resource name. */ instruction: string; /** * Optional. A human-readable label used to logically group labeling tasks. This string must match the regular expression `[a-zA-Z\\d_-]{0,128}`. */ labelGroup: string; /** * Optional. The Language of this question, as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). Default value is en-US. Only need to set this when task is language related. For example, French text classification. */ languageCode: string; /** * Optional. Maximum duration for contributors to answer a question. Maximum is 3600 seconds. Default is 3600 seconds. */ questionDuration: string; /** * Optional. Replication of questions. Each question will be sent to up to this number of contributors to label. Aggregated answers will be returned. Default is set to 1. For image related labeling, valid values are 1, 3, 5. */ replicaCount: number; /** * Email of the user who started the labeling task and should be notified by email. If empty no notification will be sent. */ userEmailAddress: string; } /** * Config for image classification human labeling task. */ interface GoogleCloudDatalabelingV1beta1ImageClassificationConfigResponse { /** * Optional. If allow_multi_label is true, contributors are able to choose multiple labels for one image. */ allowMultiLabel: boolean; /** * Annotation spec set resource name. */ annotationSpecSet: string; /** * Optional. The type of how to aggregate answers. */ answerAggregationType: string; } /** * The configuration of input data, including data type, location, etc. */ interface GoogleCloudDatalabelingV1beta1InputConfigResponse { /** * Optional. The type of annotation to be performed on this data. You must specify this field if you are using this InputConfig in an EvaluationJob. */ annotationType: string; /** * Source located in BigQuery. You must specify this field if you are using this InputConfig in an EvaluationJob. */ bigquerySource: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1BigQuerySourceResponse; /** * Optional. Metadata about annotations for the input. You must specify this field if you are using this InputConfig in an EvaluationJob for a model version that performs classification. */ classificationMetadata: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1ClassificationMetadataResponse; /** * Data type must be specifed when user tries to import data. */ dataType: string; /** * Source located in Cloud Storage. */ gcsSource: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1GcsSourceResponse; /** * Required for text import, as language code must be specified. */ textMetadata: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1TextMetadataResponse; } /** * Metadata describing the feedback from the operator. */ interface GoogleCloudDatalabelingV1beta1OperatorFeedbackMetadataResponse { } /** * Instruction from a PDF file. */ interface GoogleCloudDatalabelingV1beta1PdfInstructionResponse { /** * PDF file for the instruction. Only gcs path is allowed. */ gcsFileUri: string; } /** * Metadata describing the feedback from the labeling task requester. */ interface GoogleCloudDatalabelingV1beta1RequesterFeedbackMetadataResponse { } /** * Config for setting up sentiments. */ interface GoogleCloudDatalabelingV1beta1SentimentConfigResponse { /** * If set to true, contributors will have the option to select sentiment of the label they selected, to mark it as negative or positive label. Default is false. */ enableLabelSentimentSelection: boolean; } /** * Config for text classification human labeling task. */ interface GoogleCloudDatalabelingV1beta1TextClassificationConfigResponse { /** * Optional. If allow_multi_label is true, contributors are able to choose multiple labels for one text segment. */ allowMultiLabel: boolean; /** * Annotation spec set resource name. */ annotationSpecSet: string; /** * Optional. Configs for sentiment selection. We deprecate sentiment analysis in data labeling side as it is incompatible with uCAIP. */ sentimentConfig: outputs.datalabeling.v1beta1.GoogleCloudDatalabelingV1beta1SentimentConfigResponse; } /** * Metadata for the text. */ interface GoogleCloudDatalabelingV1beta1TextMetadataResponse { /** * The language of this text, as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). Default value is en-US. */ languageCode: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface GoogleRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } } export declare namespace datalineage { namespace v1 { /** * The soft reference to everything you can attach a lineage event to. */ interface GoogleCloudDatacatalogLineageV1EntityReferenceResponse { /** * [Fully Qualified Name (FQN)](https://cloud.google.com/data-catalog/docs/fully-qualified-names) of the entity. */ fullyQualifiedName: string; } /** * A lineage between source and target entities. */ interface GoogleCloudDatacatalogLineageV1EventLinkResponse { /** * Reference to the source entity */ source: outputs.datalineage.v1.GoogleCloudDatacatalogLineageV1EntityReferenceResponse; /** * Reference to the target entity */ target: outputs.datalineage.v1.GoogleCloudDatacatalogLineageV1EntityReferenceResponse; } /** * Origin of a process. */ interface GoogleCloudDatacatalogLineageV1OriginResponse { /** * If the source_type isn't CUSTOM, the value of this field should be a GCP resource name of the system, which reports lineage. The project and location parts of the resource name must match the project and location of the lineage resource being created. Examples: - `{source_type: COMPOSER, name: "projects/foo/locations/us/environments/bar"}` - `{source_type: BIGQUERY, name: "projects/foo/locations/eu"}` - `{source_type: CUSTOM, name: "myCustomIntegration"}` */ name: string; /** * Type of the source. Use of a source_type other than `CUSTOM` for process creation or updating is highly discouraged, and may be restricted in the future without notice. */ sourceType: string; } } } export declare namespace datamigration { namespace v1 { /** * Specifies required connection parameters, and the parameters required to create an AlloyDB destination cluster. */ interface AlloyDbConnectionProfileResponse { /** * The AlloyDB cluster ID that this connection profile is associated with. */ clusterId: string; /** * Immutable. Metadata used to create the destination AlloyDB cluster. */ settings: outputs.datamigration.v1.AlloyDbSettingsResponse; } /** * Settings for creating an AlloyDB cluster. */ interface AlloyDbSettingsResponse { /** * Optional. The database engine major version. This is an optional field. If a database version is not supplied at cluster creation time, then a default database version will be used. */ databaseVersion: string; /** * Optional. The encryption config can be specified to encrypt the data disks and other persistent data resources of a cluster with a customer-managed encryption key (CMEK). When this field is not specified, the cluster will then use default encryption scheme to protect the user data. */ encryptionConfig: outputs.datamigration.v1.EncryptionConfigResponse; /** * Input only. Initial user to setup during cluster creation. Required. */ initialUser: outputs.datamigration.v1.UserPasswordResponse; /** * Labels for the AlloyDB cluster created by DMS. An object containing a list of 'key', 'value' pairs. */ labels: { [key: string]: string; }; primaryInstanceSettings: outputs.datamigration.v1.PrimaryInstanceSettingsResponse; /** * The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: "projects/{project_number}/global/networks/{network_id}". This is required to create a cluster. */ vpcNetwork: string; } /** * Apply a hash function on the value. */ interface ApplyHashResponse { /** * Optional. Generate UUID from the data's byte array */ uuidFromBytes: outputs.datamigration.v1.EmptyResponse; } /** * Set to a specific value (value is converted to fit the target data type) */ interface AssignSpecificValueResponse { /** * Specific value to be assigned */ value: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.datamigration.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.datamigration.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Specifies required connection parameters, and, optionally, the parameters required to create a Cloud SQL destination database instance. */ interface CloudSqlConnectionProfileResponse { /** * The Cloud SQL database instance's additional (outgoing) public IP. Used when the Cloud SQL database availability type is REGIONAL (i.e. multiple zones / highly available). */ additionalPublicIp: string; /** * The Cloud SQL instance ID that this connection profile is associated with. */ cloudSqlId: string; /** * The Cloud SQL database instance's private IP. */ privateIp: string; /** * The Cloud SQL database instance's public IP. */ publicIp: string; /** * Immutable. Metadata used to create the destination Cloud SQL database. */ settings: outputs.datamigration.v1.CloudSqlSettingsResponse; } /** * Settings for creating a Cloud SQL database instance. */ interface CloudSqlSettingsResponse { /** * The activation policy specifies when the instance is activated; it is applicable only when the instance state is 'RUNNABLE'. Valid values: 'ALWAYS': The instance is on, and remains so even in the absence of connection requests. `NEVER`: The instance is off; it is not activated, even if a connection request arrives. */ activationPolicy: string; /** * [default: ON] If you enable this setting, Cloud SQL checks your available storage every 30 seconds. If the available storage falls below a threshold size, Cloud SQL automatically adds additional storage capacity. If the available storage repeatedly falls below the threshold size, Cloud SQL continues to add storage until it reaches the maximum of 30 TB. */ autoStorageIncrease: boolean; /** * Optional. Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data availability. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available). */ availabilityType: string; /** * The KMS key name used for the csql instance. */ cmekKeyName: string; /** * The Cloud SQL default instance level collation. */ collation: string; /** * Optional. Data cache is an optional feature available for Cloud SQL for MySQL Enterprise Plus edition only. For more information on data cache, see [Data cache overview](https://cloud.google.com/sql/help/mysql-data-cache) in Cloud SQL documentation. */ dataCacheConfig: outputs.datamigration.v1.DataCacheConfigResponse; /** * The storage capacity available to the database, in GB. The minimum (and default) size is 10GB. */ dataDiskSizeGb: string; /** * The type of storage: `PD_SSD` (default) or `PD_HDD`. */ dataDiskType: string; /** * The database flags passed to the Cloud SQL instance at startup. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ databaseFlags: { [key: string]: string; }; /** * The database engine type and version. */ databaseVersion: string; /** * Optional. The edition of the given Cloud SQL instance. */ edition: string; /** * The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled. */ ipConfig: outputs.datamigration.v1.SqlIpConfigResponse; /** * Input only. Initial root password. */ rootPassword: string; /** * Indicates If this connection profile root password is stored. */ rootPasswordSet: boolean; /** * Optional. The Google Cloud Platform zone where the failover Cloud SQL database instance is located. Used when the Cloud SQL database availability type is REGIONAL (i.e. multiple zones / highly available). */ secondaryZone: string; /** * The Database Migration Service source connection profile ID, in the format: `projects/my_project_name/locations/us-central1/connectionProfiles/connection_profile_ID` */ sourceId: string; /** * The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. */ storageAutoResizeLimit: string; /** * The tier (or machine type) for this instance, for example: `db-n1-standard-1` (MySQL instances) or `db-custom-1-3840` (PostgreSQL instances). For more information, see [Cloud SQL Instance Settings](https://cloud.google.com/sql/docs/mysql/instance-settings). */ tier: string; /** * The resource labels for a Cloud SQL instance to use to annotate any related underlying resources such as Compute Engine VMs. An object containing a list of "key": "value" pairs. Example: `{ "name": "wrench", "mass": "18kg", "count": "3" }`. */ userLabels: { [key: string]: string; }; /** * The Google Cloud Platform zone where your Cloud SQL database instance is located. */ zone: string; } /** * Options to configure rule type ConditionalColumnSetValue. The rule is used to transform the data which is being replicated/migrated. The rule filter field can refer to one or more entities. The rule scope can be one of: Column. */ interface ConditionalColumnSetValueResponse { /** * Optional. Custom engine specific features. */ customFeatures: { [key: string]: string; }; /** * Optional. Optional filter on source column precision and scale. Used for fixed point numbers such as NUMERIC/NUMBER data types. */ sourceNumericFilter: outputs.datamigration.v1.SourceNumericFilterResponse; /** * Optional. Optional filter on source column length. Used for text based data types like varchar. */ sourceTextFilter: outputs.datamigration.v1.SourceTextFilterResponse; /** * Description of data transformation during migration. */ valueTransformation: outputs.datamigration.v1.ValueTransformationResponse; } /** * A conversion workspace's version. */ interface ConversionWorkspaceInfoResponse { /** * The commit ID of the conversion workspace. */ commitId: string; /** * The resource name (URI) of the conversion workspace. */ name: string; } /** * Options to configure rule type ConvertROWIDToColumn. The rule is used to add column rowid to destination tables based on an Oracle rowid function/property. The rule filter field can refer to one or more entities. The rule scope can be one of: Table. This rule requires additional filter to be specified beyond the basic rule filter field, which is whether or not to work on tables which already have a primary key defined. */ interface ConvertRowIdToColumnResponse { /** * Only work on tables without primary key defined */ onlyIfNoPrimaryKey: boolean; } /** * Data cache is an optional feature available for Cloud SQL for MySQL Enterprise Plus edition only. For more information on data cache, see [Data cache overview](https://cloud.google.com/sql/help/mysql-data-cache) in Cloud SQL documentation. */ interface DataCacheConfigResponse { /** * Optional. Whether data cache is enabled for the instance. */ dataCacheEnabled: boolean; } /** * The type and version of a source or destination database. */ interface DatabaseEngineInfoResponse { /** * Engine type. */ engine: string; /** * Engine version, for example "12.c.1". */ version: string; } /** * A message defining the database engine and provider. */ interface DatabaseTypeResponse { /** * The database engine. */ engine: string; /** * The database provider. */ provider: string; } /** * Filter based on relation between source value and compare value of type double in ConditionalColumnSetValue */ interface DoubleComparisonFilterResponse { /** * Double compare value to be used */ value: number; /** * Relation between source value and compare value */ valueComparison: string; } /** * Dump flag definition. */ interface DumpFlagResponse { /** * The name of the flag */ name: string; /** * The value of the flag. */ value: string; } /** * Dump flags definition. */ interface DumpFlagsResponse { /** * The flags for the initial dump. */ dumpFlags: outputs.datamigration.v1.DumpFlagResponse[]; } /** * A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } */ interface EmptyResponse { } /** * EncryptionConfig describes the encryption config of a cluster that is encrypted with a CMEK (customer-managed encryption key). */ interface EncryptionConfigResponse { /** * The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME] */ kmsKeyName: string; } /** * Options to configure rule type EntityMove. The rule is used to move an entity to a new schema. The rule filter field can refer to one or more entities. The rule scope can be one of: Table, Column, Constraint, Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT */ interface EntityMoveResponse { /** * The new schema */ newSchema: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Options to configure rule type FilterTableColumns. The rule is used to filter the list of columns to include or exclude from a table. The rule filter field can refer to one entity. The rule scope can be: Table Only one of the two lists can be specified for the rule. */ interface FilterTableColumnsResponse { /** * Optional. List of columns to be excluded for a particular table. */ excludeColumns: string[]; /** * Optional. List of columns to be included for a particular table. */ includeColumns: string[]; } /** * Forward SSH Tunnel connectivity. */ interface ForwardSshTunnelConnectivityResponse { /** * Hostname for the SSH tunnel. */ hostname: string; /** * Input only. SSH password. */ password: string; /** * Port for the SSH tunnel, default value is 22. */ port: number; /** * Input only. SSH private key. */ privateKey: string; /** * Username for the SSH tunnel. */ username: string; } /** * Filter based on relation between source value and compare value of type integer in ConditionalColumnSetValue */ interface IntComparisonFilterResponse { /** * Integer compare value to be used */ value: string; /** * Relation between source value and compare value */ valueComparison: string; } /** * MachineConfig describes the configuration of a machine. */ interface MachineConfigResponse { /** * The number of CPU's in the VM instance. */ cpuCount: number; } /** * A filter defining the entities that a mapping rule should be applied to. When more than one field is specified, the rule is applied only to entities which match all the fields. */ interface MappingRuleFilterResponse { /** * Optional. The rule should be applied to specific entities defined by their fully qualified names. */ entities: string[]; /** * Optional. The rule should be applied to entities whose non-qualified name contains the given string. */ entityNameContains: string; /** * Optional. The rule should be applied to entities whose non-qualified name starts with the given prefix. */ entityNamePrefix: string; /** * Optional. The rule should be applied to entities whose non-qualified name ends with the given suffix. */ entityNameSuffix: string; /** * Optional. The rule should be applied to entities whose parent entity (fully qualified name) matches the given value. For example, if the rule applies to a table entity, the expected value should be a schema (schema). If the rule applies to a column or index entity, the expected value can be either a schema (schema) or a table (schema.table) */ parentEntity: string; } /** * Options to configure rule type MultiColumnDatatypeChange. The rule is used to change the data type and associated properties of multiple columns at once. The rule filter field can refer to one or more entities. The rule scope can be one of:Column. This rule requires additional filters to be specified beyond the basic rule filter field, which is the source data type, but the rule supports additional filtering capabilities such as the minimum and maximum field length. All additional filters which are specified are required to be met in order for the rule to be applied (logical AND between the fields). */ interface MultiColumnDatatypeChangeResponse { /** * Optional. Custom engine specific features. */ customFeatures: { [key: string]: string; }; /** * New data type. */ newDataType: string; /** * Optional. Column fractional seconds precision - used only for timestamp based datatypes - if not specified and relevant uses the source column fractional seconds precision. */ overrideFractionalSecondsPrecision: number; /** * Optional. Column length - e.g. varchar (50) - if not specified and relevant uses the source column length. */ overrideLength: string; /** * Optional. Column precision - when relevant - if not specified and relevant uses the source column precision. */ overridePrecision: number; /** * Optional. Column scale - when relevant - if not specified and relevant uses the source column scale. */ overrideScale: number; /** * Filter on source data type. */ sourceDataTypeFilter: string; /** * Optional. Filter for fixed point number data types such as NUMERIC/NUMBER. */ sourceNumericFilter: outputs.datamigration.v1.SourceNumericFilterResponse; /** * Optional. Filter for text-based data types like varchar. */ sourceTextFilter: outputs.datamigration.v1.SourceTextFilterResponse; } /** * Options to configure rule type MultiEntityRename. The rule is used to rename multiple entities. The rule filter field can refer to one or more entities. The rule scope can be one of: Database, Schema, Table, Column, Constraint, Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT */ interface MultiEntityRenameResponse { /** * Optional. The pattern used to generate the new entity's name. This pattern must include the characters '{name}', which will be replaced with the name of the original entity. For example, the pattern 't_{name}' for an entity name jobs would be converted to 't_jobs'. If unspecified, the default value for this field is '{name}' */ newNamePattern: string; /** * Optional. Additional transformation that can be done on the source entity name before it is being used by the new_name_pattern, for example lower case. If no transformation is desired, use NO_TRANSFORMATION */ sourceNameTransformation: string; } /** * Specifies connection parameters required specifically for MySQL databases. */ interface MySqlConnectionProfileResponse { /** * If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source. */ cloudSqlId: string; /** * The IP or hostname of the source MySQL database. */ host: string; /** * Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service. */ password: string; /** * Indicates If this connection profile password is stored. */ passwordSet: boolean; /** * The network port of the source MySQL database. */ port: number; /** * SSL configuration for the destination to connect to the source database. */ ssl: outputs.datamigration.v1.SslConfigResponse; /** * The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service. */ username: string; } /** * Specifies connection parameters required specifically for Oracle databases. */ interface OracleConnectionProfileResponse { /** * Database service for the Oracle connection. */ databaseService: string; /** * Forward SSH tunnel connectivity. */ forwardSshConnectivity: outputs.datamigration.v1.ForwardSshTunnelConnectivityResponse; /** * The IP or hostname of the source Oracle database. */ host: string; /** * Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service. */ password: string; /** * Indicates whether a new password is included in the request. */ passwordSet: boolean; /** * The network port of the source Oracle database. */ port: number; /** * Private connectivity. */ privateConnectivity: outputs.datamigration.v1.PrivateConnectivityResponse; /** * SSL configuration for the connection to the source Oracle database. * Only `SERVER_ONLY` configuration is supported for Oracle SSL. * SSL is supported for Oracle versions 12 and above. */ ssl: outputs.datamigration.v1.SslConfigResponse; /** * Static Service IP connectivity. */ staticServiceIpConnectivity: outputs.datamigration.v1.StaticServiceIpConnectivityResponse; /** * The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service. */ username: string; } /** * Performance configuration definition. */ interface PerformanceConfigResponse { /** * Initial dump parallelism level. */ dumpParallelLevel: string; } /** * Specifies connection parameters required specifically for PostgreSQL databases. */ interface PostgreSqlConnectionProfileResponse { /** * Optional. If the destination is an AlloyDB database, use this field to provide the AlloyDB cluster ID. */ alloydbClusterId: string; /** * If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source. */ cloudSqlId: string; /** * The IP or hostname of the source PostgreSQL database. */ host: string; /** * If the source is a Cloud SQL database, this field indicates the network architecture it's associated with. */ networkArchitecture: string; /** * Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service. */ password: string; /** * Indicates If this connection profile password is stored. */ passwordSet: boolean; /** * The network port of the source PostgreSQL database. */ port: number; /** * Private service connect connectivity. */ privateServiceConnectConnectivity: outputs.datamigration.v1.PrivateServiceConnectConnectivityResponse; /** * SSL configuration for the destination to connect to the source database. */ ssl: outputs.datamigration.v1.SslConfigResponse; /** * Static ip connectivity data (default, no additional details needed). */ staticIpConnectivity: outputs.datamigration.v1.StaticIpConnectivityResponse; /** * The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service. */ username: string; } /** * Settings for the cluster's primary instance */ interface PrimaryInstanceSettingsResponse { /** * Database flags to pass to AlloyDB when DMS is creating the AlloyDB cluster and instances. See the AlloyDB documentation for how these can be used. */ databaseFlags: { [key: string]: string; }; /** * Labels for the AlloyDB primary instance created by DMS. An object containing a list of 'key', 'value' pairs. */ labels: { [key: string]: string; }; /** * Configuration for the machines that host the underlying database engine. */ machineConfig: outputs.datamigration.v1.MachineConfigResponse; /** * The private IP address for the Instance. This is the connection endpoint for an end-user application. */ privateIp: string; } /** * Private Connectivity. */ interface PrivateConnectivityResponse { /** * The resource name (URI) of the private connection. */ privateConnection: string; } /** * [Private Service Connect connectivity](https://cloud.google.com/vpc/docs/private-service-connect#service-attachments) */ interface PrivateServiceConnectConnectivityResponse { /** * A service attachment that exposes a database, and has the following format: projects/{project}/regions/{region}/serviceAttachments/{service_attachment_name} */ serviceAttachment: string; } /** * The details needed to configure a reverse SSH tunnel between the source and destination databases. These details will be used when calling the generateSshScript method (see https://cloud.google.com/database-migration/docs/reference/rest/v1/projects.locations.migrationJobs/generateSshScript) to produce the script that will help set up the reverse SSH tunnel, and to set up the VPC peering between the Cloud SQL private network and the VPC. */ interface ReverseSshConnectivityResponse { /** * The name of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel. */ vm: string; /** * The IP of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel. */ vmIp: string; /** * The forwarding port of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel. */ vmPort: number; /** * The name of the VPC to peer with the Cloud SQL private network. */ vpc: string; } /** * This allows the data to change scale, for example if the source is 2 digits after the decimal point, specify round to scale value = 2. If for example the value needs to be converted to an integer, use round to scale value = 0. */ interface RoundToScaleResponse { /** * Scale value to be used */ scale: number; } /** * Options to configure rule type SetTablePrimaryKey. The rule is used to specify the columns and name to configure/alter the primary key of a table. The rule filter field can refer to one entity. The rule scope can be one of: Table. */ interface SetTablePrimaryKeyResponse { /** * Optional. Name for the primary key */ primaryKey: string; /** * List of column names for the primary key */ primaryKeyColumns: string[]; } /** * Options to configure rule type SingleColumnChange. The rule is used to change the properties of a column. The rule filter field can refer to one entity. The rule scope can be one of: Column. When using this rule, if a field is not specified than the destination column's configuration will be the same as the one in the source column.. */ interface SingleColumnChangeResponse { /** * Optional. Is the column of array type. */ array: boolean; /** * Optional. The length of the array, only relevant if the column type is an array. */ arrayLength: number; /** * Optional. Is the column auto-generated/identity. */ autoGenerated: boolean; /** * Optional. Charset override - instead of table level charset. */ charset: string; /** * Optional. Collation override - instead of table level collation. */ collation: string; /** * Optional. Comment associated with the column. */ comment: string; /** * Optional. Custom engine specific features. */ customFeatures: { [key: string]: string; }; /** * Optional. Column data type name. */ dataType: string; /** * Optional. Column fractional seconds precision - e.g. 2 as in timestamp (2) - when relevant. */ fractionalSecondsPrecision: number; /** * Optional. Column length - e.g. 50 as in varchar (50) - when relevant. */ length: string; /** * Optional. Is the column nullable. */ nullable: boolean; /** * Optional. Column precision - e.g. 8 as in double (8,2) - when relevant. */ precision: number; /** * Optional. Column scale - e.g. 2 as in double (8,2) - when relevant. */ scale: number; /** * Optional. Specifies the list of values allowed in the column. */ setValues: string[]; /** * Optional. Is the column a UDT (User-defined Type). */ udt: boolean; } /** * Options to configure rule type SingleEntityRename. The rule is used to rename an entity. The rule filter field can refer to only one entity. The rule scope can be one of: Database, Schema, Table, Column, Constraint, Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT, Synonym */ interface SingleEntityRenameResponse { /** * The new name of the destination entity */ newName: string; } /** * Options to configure rule type SinglePackageChange. The rule is used to alter the sql code for a package entities. The rule filter field can refer to one entity. The rule scope can be: Package */ interface SinglePackageChangeResponse { /** * Optional. Sql code for package body */ packageBody: string; /** * Optional. Sql code for package description */ packageDescription: string; } /** * Filter for fixed point number data types such as NUMERIC/NUMBER */ interface SourceNumericFilterResponse { /** * Enum to set the option defining the datatypes numeric filter has to be applied to */ numericFilterOption: string; /** * Optional. The filter will match columns with precision smaller than or equal to this number. */ sourceMaxPrecisionFilter: number; /** * Optional. The filter will match columns with scale smaller than or equal to this number. */ sourceMaxScaleFilter: number; /** * Optional. The filter will match columns with precision greater than or equal to this number. */ sourceMinPrecisionFilter: number; /** * Optional. The filter will match columns with scale greater than or equal to this number. */ sourceMinScaleFilter: number; } /** * Options to configure rule type SourceSqlChange. The rule is used to alter the sql code for database entities. The rule filter field can refer to one entity. The rule scope can be: StoredProcedure, Function, Trigger, View */ interface SourceSqlChangeResponse { /** * Sql code for source (stored procedure, function, trigger or view) */ sqlCode: string; } /** * Filter for text-based data types like varchar. */ interface SourceTextFilterResponse { /** * Optional. The filter will match columns with length smaller than or equal to this number. */ sourceMaxLengthFilter: string; /** * Optional. The filter will match columns with length greater than or equal to this number. */ sourceMinLengthFilter: string; } /** * An entry for an Access Control list. */ interface SqlAclEntryResponse { /** * The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example: `2012-11-15T16:19:00.094Z`. */ expireTime: string; /** * A label to identify this entry. */ label: string; /** * Input only. The time-to-leave of this access control entry. */ ttl: string; /** * The allowlisted value for the access control list. */ value: string; } /** * IP Management configuration. */ interface SqlIpConfigResponse { /** * Optional. The name of the allocated IP address range for the private IP Cloud SQL instance. This name refers to an already allocated IP range address. If set, the instance IP address will be created in the allocated range. Note that this IP address range can't be modified after the instance is created. If you change the VPC when configuring connectivity settings for the migration job, this field is not relevant. */ allocatedIpRange: string; /** * The list of external networks that are allowed to connect to the instance using the IP. See https://en.wikipedia.org/wiki/CIDR_notation#CIDR_notation, also known as 'slash' notation (e.g. `192.168.100.0/24`). */ authorizedNetworks: outputs.datamigration.v1.SqlAclEntryResponse[]; /** * Whether the instance should be assigned an IPv4 address or not. */ enableIpv4: boolean; /** * The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set. */ privateNetwork: string; /** * Whether SSL connections over IP should be enforced or not. */ requireSsl: boolean; } /** * SSL configuration information. */ interface SslConfigResponse { /** * Input only. The x509 PEM-encoded certificate of the CA that signed the source database server's certificate. The replica will use this certificate to verify it's connecting to the right host. */ caCertificate: string; /** * Input only. The x509 PEM-encoded certificate that will be used by the replica to authenticate against the source database server.If this field is used then the 'client_key' field is mandatory. */ clientCertificate: string; /** * Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' field is mandatory. */ clientKey: string; /** * The ssl config type according to 'client_key', 'client_certificate' and 'ca_certificate'. */ type: string; } /** * The source database will allow incoming connections from the public IP of the destination database. You can retrieve the public IP of the Cloud SQL instance from the Cloud SQL console or using Cloud SQL APIs. No additional configuration is required. */ interface StaticIpConnectivityResponse { } /** * Static IP address connectivity configured on service project. */ interface StaticServiceIpConnectivityResponse { } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * The username/password for a database user. Used for specifying initial users at cluster creation time. */ interface UserPasswordResponse { /** * The initial password for the user. */ password: string; /** * Indicates if the initial_user.password field has been set. */ passwordSet: boolean; /** * The database username. */ user: string; } /** * A list of values to filter by in ConditionalColumnSetValue */ interface ValueListFilterResponse { /** * Whether to ignore case when filtering by values. Defaults to false */ ignoreCase: boolean; /** * Indicates whether the filter matches rows with values that are present in the list or those with values not present in it. */ valuePresentList: string; /** * The list to be used to filter by */ values: string[]; } /** * Description of data transformation during migration as part of the ConditionalColumnSetValue. */ interface ValueTransformationResponse { /** * Optional. Applies a hash function on the data */ applyHash: outputs.datamigration.v1.ApplyHashResponse; /** * Optional. Set to max_value - if integer or numeric, will use int.maxvalue, etc */ assignMaxValue: outputs.datamigration.v1.EmptyResponse; /** * Optional. Set to min_value - if integer or numeric, will use int.minvalue, etc */ assignMinValue: outputs.datamigration.v1.EmptyResponse; /** * Optional. Set to null */ assignNull: outputs.datamigration.v1.EmptyResponse; /** * Optional. Set to a specific value (value is converted to fit the target data type) */ assignSpecificValue: outputs.datamigration.v1.AssignSpecificValueResponse; /** * Optional. Filter on relation between source value and compare value of type double. */ doubleComparison: outputs.datamigration.v1.DoubleComparisonFilterResponse; /** * Optional. Filter on relation between source value and compare value of type integer. */ intComparison: outputs.datamigration.v1.IntComparisonFilterResponse; /** * Optional. Value is null */ isNull: outputs.datamigration.v1.EmptyResponse; /** * Optional. Allows the data to change scale */ roundScale: outputs.datamigration.v1.RoundToScaleResponse; /** * Optional. Value is found in the specified list. */ valueList: outputs.datamigration.v1.ValueListFilterResponse; } /** * The VPC peering configuration is used to create VPC peering with the consumer's VPC. */ interface VpcPeeringConfigResponse { /** * A free subnet for peering. (CIDR of /29) */ subnet: string; /** * Fully qualified name of the VPC that Database Migration Service will peer to. */ vpcName: string; } /** * The details of the VPC where the source database is located in Google Cloud. We will use this information to set up the VPC peering connection between Cloud SQL and this VPC. */ interface VpcPeeringConnectivityResponse { /** * The name of the VPC network to peer with the Cloud SQL private network. */ vpc: string; } } namespace v1beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.datamigration.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.datamigration.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Specifies required connection parameters, and, optionally, the parameters required to create a Cloud SQL destination database instance. */ interface CloudSqlConnectionProfileResponse { /** * The Cloud SQL instance ID that this connection profile is associated with. */ cloudSqlId: string; /** * The Cloud SQL database instance's private IP. */ privateIp: string; /** * The Cloud SQL database instance's public IP. */ publicIp: string; /** * Immutable. Metadata used to create the destination Cloud SQL database. */ settings: outputs.datamigration.v1beta1.CloudSqlSettingsResponse; } /** * Settings for creating a Cloud SQL database instance. */ interface CloudSqlSettingsResponse { /** * The activation policy specifies when the instance is activated; it is applicable only when the instance state is 'RUNNABLE'. Valid values: 'ALWAYS': The instance is on, and remains so even in the absence of connection requests. `NEVER`: The instance is off; it is not activated, even if a connection request arrives. */ activationPolicy: string; /** * [default: ON] If you enable this setting, Cloud SQL checks your available storage every 30 seconds. If the available storage falls below a threshold size, Cloud SQL automatically adds additional storage capacity. If the available storage repeatedly falls below the threshold size, Cloud SQL continues to add storage until it reaches the maximum of 30 TB. */ autoStorageIncrease: boolean; /** * The storage capacity available to the database, in GB. The minimum (and default) size is 10GB. */ dataDiskSizeGb: string; /** * The type of storage: `PD_SSD` (default) or `PD_HDD`. */ dataDiskType: string; /** * The database flags passed to the Cloud SQL instance at startup. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ databaseFlags: { [key: string]: string; }; /** * The database engine type and version. */ databaseVersion: string; /** * The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled. */ ipConfig: outputs.datamigration.v1beta1.SqlIpConfigResponse; /** * Input only. Initial root password. */ rootPassword: string; /** * Indicates If this connection profile root password is stored. */ rootPasswordSet: boolean; /** * The Database Migration Service source connection profile ID, in the format: `projects/my_project_name/locations/us-central1/connectionProfiles/connection_profile_ID` */ sourceId: string; /** * The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. */ storageAutoResizeLimit: string; /** * The tier (or machine type) for this instance, for example: `db-n1-standard-1` (MySQL instances). For more information, see [Cloud SQL Instance Settings](https://cloud.google.com/sql/docs/mysql/instance-settings). */ tier: string; /** * The resource labels for a Cloud SQL instance to use to annotate any related underlying resources such as Compute Engine VMs. An object containing a list of "key": "value" pairs. Example: `{ "name": "wrench", "mass": "18kg", "count": "3" }`. */ userLabels: { [key: string]: string; }; /** * The Google Cloud Platform zone where your Cloud SQL database instance is located. */ zone: string; } /** * A message defining the database engine and provider. */ interface DatabaseTypeResponse { /** * The database engine. */ engine: string; /** * The database provider. */ provider: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Specifies connection parameters required specifically for MySQL databases. */ interface MySqlConnectionProfileResponse { /** * If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source. */ cloudSqlId: string; /** * The IP or hostname of the source MySQL database. */ host: string; /** * Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service. */ password: string; /** * Indicates If this connection profile password is stored. */ passwordSet: boolean; /** * The network port of the source MySQL database. */ port: number; /** * SSL configuration for the destination to connect to the source database. */ ssl: outputs.datamigration.v1beta1.SslConfigResponse; /** * The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service. */ username: string; } /** * The details needed to configure a reverse SSH tunnel between the source and destination databases. These details will be used when calling the generateSshScript method (see https://cloud.google.com/database-migration/docs/reference/rest/v1beta1/projects.locations.migrationJobs/generateSshScript) to produce the script that will help set up the reverse SSH tunnel, and to set up the VPC peering between the Cloud SQL private network and the VPC. */ interface ReverseSshConnectivityResponse { /** * The name of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel. */ vm: string; /** * The IP of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel. */ vmIp: string; /** * The forwarding port of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel. */ vmPort: number; /** * The name of the VPC to peer with the Cloud SQL private network. */ vpc: string; } /** * An entry for an Access Control list. */ interface SqlAclEntryResponse { /** * The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example: `2012-11-15T16:19:00.094Z`. */ expireTime: string; /** * A label to identify this entry. */ label: string; /** * Input only. The time-to-leave of this access control entry. */ ttl: string; /** * The allowlisted value for the access control list. */ value: string; } /** * IP Management configuration. */ interface SqlIpConfigResponse { /** * The list of external networks that are allowed to connect to the instance using the IP. See https://en.wikipedia.org/wiki/CIDR_notation#CIDR_notation, also known as 'slash' notation (e.g. `192.168.100.0/24`). */ authorizedNetworks: outputs.datamigration.v1beta1.SqlAclEntryResponse[]; /** * Whether the instance is assigned a public IP address or not. */ enableIpv4: boolean; /** * The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `/projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set. */ privateNetwork: string; /** * Whether SSL connections over IP should be enforced or not. */ requireSsl: boolean; } /** * SSL configuration information. */ interface SslConfigResponse { /** * Input only. The x509 PEM-encoded certificate of the CA that signed the source database server's certificate. The replica will use this certificate to verify it's connecting to the right host. */ caCertificate: string; /** * Input only. The x509 PEM-encoded certificate that will be used by the replica to authenticate against the source database server.If this field is used then the 'client_key' field is mandatory. */ clientCertificate: string; /** * Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' field is mandatory. */ clientKey: string; /** * The ssl config type according to 'client_key', 'client_certificate' and 'ca_certificate'. */ type: string; } /** * The source database will allow incoming connections from the destination database's public IP. You can retrieve the Cloud SQL instance's public IP from the Cloud SQL console or using Cloud SQL APIs. No additional configuration is required. */ interface StaticIpConnectivityResponse { } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * The details of the VPC where the source database is located in Google Cloud. We will use this information to set up the VPC peering connection between Cloud SQL and this VPC. */ interface VpcPeeringConnectivityResponse { /** * The name of the VPC network to peer with the Cloud SQL private network. */ vpc: string; } } } export declare namespace datapipelines { namespace v1 { /** * The environment values to be set at runtime for a Flex Template. */ interface GoogleCloudDatapipelinesV1FlexTemplateRuntimeEnvironmentResponse { /** * Additional experiment flags for the job. */ additionalExperiments: string[]; /** * Additional user labels to be specified for the job. Keys and values must follow the restrictions specified in the [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions). An object containing a list of key/value pairs. Example: `{ "name": "wrench", "mass": "1kg", "count": "3" }`. */ additionalUserLabels: { [key: string]: string; }; /** * Whether to enable Streaming Engine for the job. */ enableStreamingEngine: boolean; /** * Set FlexRS goal for the job. https://cloud.google.com/dataflow/docs/guides/flexrs */ flexrsGoal: string; /** * Configuration for VM IPs. */ ipConfiguration: string; /** * Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings//cryptoKeys/ */ kmsKeyName: string; /** * The machine type to use for the job. Defaults to the value from the template if not specified. */ machineType: string; /** * The maximum number of Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000. */ maxWorkers: number; /** * Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default". */ network: string; /** * The initial number of Compute Engine instances for the job. */ numWorkers: number; /** * The email address of the service account to run the job as. */ serviceAccountEmail: string; /** * Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located in a Shared VPC network, you must use the complete URL. */ subnetwork: string; /** * The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with `gs://`. */ tempLocation: string; /** * The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1". Mutually exclusive with worker_zone. If neither worker_region nor worker_zone is specified, defaults to the control plane region. */ workerRegion: string; /** * The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1-a". Mutually exclusive with worker_region. If neither worker_region nor worker_zone is specified, a zone in the control plane region is chosen based on available capacity. If both `worker_zone` and `zone` are set, `worker_zone` takes precedence. */ workerZone: string; /** * The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones) for launching worker instances to run your pipeline. In the future, worker_zone will take precedence. */ zone: string; } /** * Launch Flex Template parameter. */ interface GoogleCloudDatapipelinesV1LaunchFlexTemplateParameterResponse { /** * Cloud Storage path to a file with a JSON-serialized ContainerSpec as content. */ containerSpecGcsPath: string; /** * The runtime environment for the Flex Template job. */ environment: outputs.datapipelines.v1.GoogleCloudDatapipelinesV1FlexTemplateRuntimeEnvironmentResponse; /** * The job name to use for the created job. For an update job request, the job name should be the same as the existing running job. */ jobName: string; /** * Launch options for this Flex Template job. This is a common set of options across languages and templates. This should not be used to pass job parameters. */ launchOptions: { [key: string]: string; }; /** * The parameters for the Flex Template. Example: `{"num_workers":"5"}` */ parameters: { [key: string]: string; }; /** * Use this to pass transform name mappings for streaming update jobs. Example: `{"oldTransformName":"newTransformName",...}` */ transformNameMappings: { [key: string]: string; }; /** * Set this to true if you are sending a request to update a running streaming job. When set, the job name should be the same as the running job. */ update: boolean; } /** * A request to launch a Dataflow job from a Flex Template. */ interface GoogleCloudDatapipelinesV1LaunchFlexTemplateRequestResponse { /** * Parameter to launch a job from a Flex Template. */ launchParameter: outputs.datapipelines.v1.GoogleCloudDatapipelinesV1LaunchFlexTemplateParameterResponse; /** * The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request. For example, `us-central1`, `us-west1`. */ location: string; /** * The ID of the Cloud Platform project that the job belongs to. */ project: string; /** * If true, the request is validated but not actually executed. Defaults to false. */ validateOnly: boolean; } /** * Parameters to provide to the template being launched. */ interface GoogleCloudDatapipelinesV1LaunchTemplateParametersResponse { /** * The runtime environment for the job. */ environment: outputs.datapipelines.v1.GoogleCloudDatapipelinesV1RuntimeEnvironmentResponse; /** * The job name to use for the created job. */ jobName: string; /** * The runtime parameters to pass to the job. */ parameters: { [key: string]: string; }; /** * Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job. Only applicable when updating a pipeline. */ transformNameMapping: { [key: string]: string; }; /** * If set, replace the existing pipeline with the name specified by jobName with this pipeline, preserving state. */ update: boolean; } /** * A request to launch a template. */ interface GoogleCloudDatapipelinesV1LaunchTemplateRequestResponse { /** * A Cloud Storage path to the template from which to create the job. Must be a valid Cloud Storage URL, beginning with 'gs://'. */ gcsPath: string; /** * The parameters of the template to launch. This should be part of the body of the POST request. */ launchParameters: outputs.datapipelines.v1.GoogleCloudDatapipelinesV1LaunchTemplateParametersResponse; /** * The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request. */ location: string; /** * The ID of the Cloud Platform project that the job belongs to. */ project: string; /** * If true, the request is validated but not actually executed. Defaults to false. */ validateOnly: boolean; } /** * The environment values to set at runtime. */ interface GoogleCloudDatapipelinesV1RuntimeEnvironmentResponse { /** * Additional experiment flags for the job. */ additionalExperiments: string[]; /** * Additional user labels to be specified for the job. Keys and values should follow the restrictions specified in the [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) page. An object containing a list of key/value pairs. Example: { "name": "wrench", "mass": "1kg", "count": "3" }. */ additionalUserLabels: { [key: string]: string; }; /** * Whether to bypass the safety checks for the job's temporary directory. Use with caution. */ bypassTempDirValidation: boolean; /** * Whether to enable Streaming Engine for the job. */ enableStreamingEngine: boolean; /** * Configuration for VM IPs. */ ipConfiguration: string; /** * Name for the Cloud KMS key for the job. The key format is: projects//locations//keyRings//cryptoKeys/ */ kmsKeyName: string; /** * The machine type to use for the job. Defaults to the value from the template if not specified. */ machineType: string; /** * The maximum number of Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000. */ maxWorkers: number; /** * Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default". */ network: string; /** * The initial number of Compute Engine instances for the job. */ numWorkers: number; /** * The email address of the service account to run the job as. */ serviceAccountEmail: string; /** * Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located in a Shared VPC network, you must use the complete URL. */ subnetwork: string; /** * The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with `gs://`. */ tempLocation: string; /** * The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1". Mutually exclusive with worker_zone. If neither worker_region nor worker_zone is specified, default to the control plane's region. */ workerRegion: string; /** * The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1-a". Mutually exclusive with worker_region. If neither worker_region nor worker_zone is specified, a zone in the control plane's region is chosen based on available capacity. If both `worker_zone` and `zone` are set, `worker_zone` takes precedence. */ workerZone: string; /** * The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones) for launching worker instances to run your pipeline. In the future, worker_zone will take precedence. */ zone: string; } /** * Details of the schedule the pipeline runs on. */ interface GoogleCloudDatapipelinesV1ScheduleSpecResponse { /** * When the next Scheduler job is going to run. */ nextJobTime: string; /** * Unix-cron format of the schedule. This information is retrieved from the linked Cloud Scheduler. */ schedule: string; /** * Timezone ID. This matches the timezone IDs used by the Cloud Scheduler API. If empty, UTC time is assumed. */ timeZone: string; } /** * Workload details for creating the pipeline jobs. */ interface GoogleCloudDatapipelinesV1WorkloadResponse { /** * Template information and additional parameters needed to launch a Dataflow job using the flex launch API. */ dataflowFlexTemplateRequest: outputs.datapipelines.v1.GoogleCloudDatapipelinesV1LaunchFlexTemplateRequestResponse; /** * Template information and additional parameters needed to launch a Dataflow job using the standard launch API. */ dataflowLaunchTemplateRequest: outputs.datapipelines.v1.GoogleCloudDatapipelinesV1LaunchTemplateRequestResponse; } } } export declare namespace dataplex { namespace v1 { /** * Describe CSV and similar semi-structured data formats. */ interface GoogleCloudDataplexV1AssetDiscoverySpecCsvOptionsResponse { /** * Optional. The delimiter being used to separate values. This defaults to ','. */ delimiter: string; /** * Optional. Whether to disable the inference of data type for CSV data. If true, all columns will be registered as strings. */ disableTypeInference: boolean; /** * Optional. The character encoding of the data. The default is UTF-8. */ encoding: string; /** * Optional. The number of rows to interpret as header rows that should be skipped when reading data rows. */ headerRows: number; } /** * Describe JSON data format. */ interface GoogleCloudDataplexV1AssetDiscoverySpecJsonOptionsResponse { /** * Optional. Whether to disable the inference of data type for Json data. If true, all columns will be registered as their primitive types (strings, number or boolean). */ disableTypeInference: boolean; /** * Optional. The character encoding of the data. The default is UTF-8. */ encoding: string; } /** * Settings to manage the metadata discovery and publishing for an asset. */ interface GoogleCloudDataplexV1AssetDiscoverySpecResponse { /** * Optional. Configuration for CSV data. */ csvOptions: outputs.dataplex.v1.GoogleCloudDataplexV1AssetDiscoverySpecCsvOptionsResponse; /** * Optional. Whether discovery is enabled. */ enabled: boolean; /** * Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names. */ excludePatterns: string[]; /** * Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names. */ includePatterns: string[]; /** * Optional. Configuration for Json data. */ jsonOptions: outputs.dataplex.v1.GoogleCloudDataplexV1AssetDiscoverySpecJsonOptionsResponse; /** * Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *. */ schedule: string; } /** * Status of discovery for an asset. */ interface GoogleCloudDataplexV1AssetDiscoveryStatusResponse { /** * The duration of the last discovery run. */ lastRunDuration: string; /** * The start time of the last discovery run. */ lastRunTime: string; /** * Additional information about the current state. */ message: string; /** * The current status of the discovery feature. */ state: string; /** * Data Stats of the asset reported by discovery. */ stats: outputs.dataplex.v1.GoogleCloudDataplexV1AssetDiscoveryStatusStatsResponse; /** * Last update time of the status. */ updateTime: string; } /** * The aggregated data statistics for the asset reported by discovery. */ interface GoogleCloudDataplexV1AssetDiscoveryStatusStatsResponse { /** * The count of data items within the referenced resource. */ dataItems: string; /** * The number of stored data bytes within the referenced resource. */ dataSize: string; /** * The count of fileset entities within the referenced resource. */ filesets: string; /** * The count of table entities within the referenced resource. */ tables: string; } /** * Identifies the cloud resource that is referenced by this asset. */ interface GoogleCloudDataplexV1AssetResourceSpecResponse { /** * Immutable. Relative name of the cloud resource that contains the data that is being managed within a lake. For example: projects/{project_number}/buckets/{bucket_id} projects/{project_number}/datasets/{dataset_id} */ name: string; /** * Optional. Determines how read permissions are handled for each asset and their associated tables. Only available to storage buckets assets. */ readAccessMode: string; /** * Immutable. Type of resource. */ type: string; } /** * Status of the resource referenced by an asset. */ interface GoogleCloudDataplexV1AssetResourceStatusResponse { /** * Service account associated with the BigQuery Connection. */ managedAccessIdentity: string; /** * Additional information about the current state. */ message: string; /** * The current state of the managed resource. */ state: string; /** * Last update time of the status. */ updateTime: string; } /** * Security policy status of the asset. Data security policy, i.e., readers, writers & owners, should be specified in the lake/zone/asset IAM policy. */ interface GoogleCloudDataplexV1AssetSecurityStatusResponse { /** * Additional information about the current state. */ message: string; /** * The current state of the security policy applied to the attached resource. */ state: string; /** * Last update time of the status. */ updateTime: string; } /** * Aggregated status of the underlying assets of a lake or zone. */ interface GoogleCloudDataplexV1AssetStatusResponse { /** * Number of active assets. */ activeAssets: number; /** * Number of assets that are in process of updating the security policy on attached resources. */ securityPolicyApplyingAssets: number; /** * Last update time of the status. */ updateTime: string; } /** * Configuration for Notebook content. */ interface GoogleCloudDataplexV1ContentNotebookResponse { /** * Kernel Type of the notebook. */ kernelType: string; } /** * Configuration for the Sql Script content. */ interface GoogleCloudDataplexV1ContentSqlScriptResponse { /** * Query Engine to be used for the Sql Query. */ engine: string; } /** * DataAccessSpec holds the access control configuration to be enforced on data stored within resources (eg: rows, columns in BigQuery Tables). When associated with data, the data is only accessible to principals explicitly granted access through the DataAccessSpec. Principals with access to the containing resource are not implicitly granted access. */ interface GoogleCloudDataplexV1DataAccessSpecResponse { /** * Optional. The format of strings follows the pattern followed by IAM in the bindings. user:{email}, serviceAccount:{email} group:{email}. The set of principals to be granted reader role on data stored within resources. */ readers: string[]; } /** * Represents a subresource of the given resource, and associated bindings with it. Currently supported subresources are column and partition schema fields within a table. */ interface GoogleCloudDataplexV1DataAttributeBindingPathResponse { /** * Optional. List of attributes to be associated with the path of the resource, provided in the form: projects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id} */ attributes: string[]; /** * The name identifier of the path. Nested columns should be of the form: 'address.city'. */ name: string; } /** * The result of BigQuery export post scan action. */ interface GoogleCloudDataplexV1DataProfileResultPostScanActionsResultBigQueryExportResultResponse { /** * Additional information about the BigQuery exporting. */ message: string; /** * Execution state for the BigQuery exporting. */ state: string; } /** * The result of post scan actions of DataProfileScan job. */ interface GoogleCloudDataplexV1DataProfileResultPostScanActionsResultResponse { /** * The result of BigQuery export post scan action. */ bigqueryExportResult: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileResultPostScanActionsResultBigQueryExportResultResponse; } /** * The profile information for a double type field. */ interface GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfoResponse { /** * Average of non-null values in the scanned data. NaN, if the field has a NaN. */ average: number; /** * Maximum of non-null values in the scanned data. NaN, if the field has a NaN. */ max: number; /** * Minimum of non-null values in the scanned data. NaN, if the field has a NaN. */ min: number; /** * A quartile divides the number of data points into four parts, or quarters, of more-or-less equal size. Three main quartiles used are: The first quartile (Q1) splits off the lowest 25% of data from the highest 75%. It is also known as the lower or 25th empirical quartile, as 25% of the data is below this point. The second quartile (Q2) is the median of a data set. So, 50% of the data lies below this point. The third quartile (Q3) splits off the highest 25% of data from the lowest 75%. It is known as the upper or 75th empirical quartile, as 75% of the data lies below this point. Here, the quartiles is provided as an ordered list of quartile values for the scanned data, occurring in order Q1, median, Q3. */ quartiles: number[]; /** * Standard deviation of non-null values in the scanned data. NaN, if the field has a NaN. */ standardDeviation: number; } /** * The profile information for an integer type field. */ interface GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfoResponse { /** * Average of non-null values in the scanned data. NaN, if the field has a NaN. */ average: number; /** * Maximum of non-null values in the scanned data. NaN, if the field has a NaN. */ max: string; /** * Minimum of non-null values in the scanned data. NaN, if the field has a NaN. */ min: string; /** * A quartile divides the number of data points into four parts, or quarters, of more-or-less equal size. Three main quartiles used are: The first quartile (Q1) splits off the lowest 25% of data from the highest 75%. It is also known as the lower or 25th empirical quartile, as 25% of the data is below this point. The second quartile (Q2) is the median of a data set. So, 50% of the data lies below this point. The third quartile (Q3) splits off the highest 25% of data from the lowest 75%. It is known as the upper or 75th empirical quartile, as 75% of the data lies below this point. Here, the quartiles is provided as an ordered list of approximate quartile values for the scanned data, occurring in order Q1, median, Q3. */ quartiles: string[]; /** * Standard deviation of non-null values in the scanned data. NaN, if the field has a NaN. */ standardDeviation: number; } /** * The profile information for each field type. */ interface GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoResponse { /** * Ratio of rows with distinct values against total scanned rows. Not available for complex non-groupable field type RECORD and fields with REPEATABLE mode. */ distinctRatio: number; /** * Double type field information. */ doubleProfile: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfoResponse; /** * Integer type field information. */ integerProfile: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfoResponse; /** * Ratio of rows with null value against total scanned rows. */ nullRatio: number; /** * String type field information. */ stringProfile: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfoResponse; /** * The list of top N non-null values, frequency and ratio with which they occur in the scanned data. N is 10 or equal to the number of distinct values in the field, whichever is smaller. Not available for complex non-groupable field type RECORD and fields with REPEATABLE mode. */ topNValues: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValueResponse[]; } /** * The profile information for a string type field. */ interface GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfoResponse { /** * Average length of non-null values in the scanned data. */ averageLength: number; /** * Maximum length of non-null values in the scanned data. */ maxLength: string; /** * Minimum length of non-null values in the scanned data. */ minLength: string; } /** * Top N non-null values in the scanned data. */ interface GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValueResponse { /** * Count of the corresponding value in the scanned data. */ count: string; /** * Ratio of the corresponding value in the field against the total number of rows in the scanned data. */ ratio: number; /** * String value of a top N non-null value. */ value: string; } /** * A field within a table. */ interface GoogleCloudDataplexV1DataProfileResultProfileFieldResponse { /** * The mode of the field. Possible values include: REQUIRED, if it is a required field. NULLABLE, if it is an optional field. REPEATED, if it is a repeated field. */ mode: string; /** * The name of the field. */ name: string; /** * Profile information for the corresponding field. */ profile: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoResponse; /** * The data type retrieved from the schema of the data source. For instance, for a BigQuery native table, it is the BigQuery Table Schema (https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#tablefieldschema). For a Dataplex Entity, it is the Entity Schema (https://cloud.google.com/dataplex/docs/reference/rpc/google.cloud.dataplex.v1#type_3). */ type: string; } /** * Contains name, type, mode and field type specific profile information. */ interface GoogleCloudDataplexV1DataProfileResultProfileResponse { /** * List of fields with structural and profile information for each field. */ fields: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileResultProfileFieldResponse[]; } /** * DataProfileResult defines the output of DataProfileScan. Each field of the table will have field type specific profile result. */ interface GoogleCloudDataplexV1DataProfileResultResponse { /** * The result of post scan actions. */ postScanActionsResult: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileResultPostScanActionsResultResponse; /** * The profile information per field. */ profile: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileResultProfileResponse; /** * The count of rows scanned. */ rowCount: string; /** * The data scanned for this result. */ scannedData: outputs.dataplex.v1.GoogleCloudDataplexV1ScannedDataResponse; } /** * The configuration of BigQuery export post scan action. */ interface GoogleCloudDataplexV1DataProfileSpecPostScanActionsBigQueryExportResponse { /** * Optional. The BigQuery table to export DataProfileScan results to. Format: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID */ resultsTable: string; } /** * The configuration of post scan actions of DataProfileScan job. */ interface GoogleCloudDataplexV1DataProfileSpecPostScanActionsResponse { /** * Optional. If set, results will be exported to the provided BigQuery table. */ bigqueryExport: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileSpecPostScanActionsBigQueryExportResponse; } /** * DataProfileScan related setting. */ interface GoogleCloudDataplexV1DataProfileSpecResponse { /** * Optional. The fields to exclude from data profile.If specified, the fields will be excluded from data profile, regardless of include_fields value. */ excludeFields: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileSpecSelectedFieldsResponse; /** * Optional. The fields to include in data profile.If not specified, all fields at the time of profile scan job execution are included, except for ones listed in exclude_fields. */ includeFields: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileSpecSelectedFieldsResponse; /** * Optional. Actions to take upon job completion.. */ postScanActions: outputs.dataplex.v1.GoogleCloudDataplexV1DataProfileSpecPostScanActionsResponse; /** * Optional. A filter applied to all rows in a single DataScan job. The filter needs to be a valid SQL expression for a WHERE clause in BigQuery standard SQL syntax. Example: col1 >= 0 AND col2 < 10 */ rowFilter: string; /** * Optional. The percentage of the records to be selected from the dataset for DataScan. Value can range between 0.0 and 100.0 with up to 3 significant decimal digits. Sampling is not applied if sampling_percent is not specified, 0 or 100. */ samplingPercent: number; } /** * The specification for fields to include or exclude in data profile scan. */ interface GoogleCloudDataplexV1DataProfileSpecSelectedFieldsResponse { /** * Optional. Expected input is a list of fully qualified names of fields as in the schema.Only top-level field names for nested fields are supported. For instance, if 'x' is of nested field type, listing 'x' is supported but 'x.y.z' is not supported. Here 'y' and 'y.z' are nested fields of 'x'. */ fieldNames: string[]; } /** * DataQualityColumnResult provides a more detailed, per-column view of the results. */ interface GoogleCloudDataplexV1DataQualityColumnResultResponse { /** * The column specified in the DataQualityRule. */ column: string; /** * The column-level data quality score for this data scan job if and only if the 'column' field is set.The score ranges between between 0, 100 (up to two decimal points). */ score: number; } /** * A dimension captures data quality intent about a defined subset of the rules specified. */ interface GoogleCloudDataplexV1DataQualityDimensionResponse { /** * The dimension name a rule belongs to. Supported dimensions are "COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS", "INTEGRITY" */ name: string; } /** * DataQualityDimensionResult provides a more detailed, per-dimension view of the results. */ interface GoogleCloudDataplexV1DataQualityDimensionResultResponse { /** * The dimension config specified in the DataQualitySpec, as is. */ dimension: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityDimensionResponse; /** * Whether the dimension passed or failed. */ passed: boolean; /** * The dimension-level data quality score for this data scan job if and only if the 'dimension' field is set.The score ranges between 0, 100 (up to two decimal points). */ score: number; } /** * The result of BigQuery export post scan action. */ interface GoogleCloudDataplexV1DataQualityResultPostScanActionsResultBigQueryExportResultResponse { /** * Additional information about the BigQuery exporting. */ message: string; /** * Execution state for the BigQuery exporting. */ state: string; } /** * The result of post scan actions of DataQualityScan job. */ interface GoogleCloudDataplexV1DataQualityResultPostScanActionsResultResponse { /** * The result of BigQuery export post scan action. */ bigqueryExportResult: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityResultPostScanActionsResultBigQueryExportResultResponse; } /** * The output of a DataQualityScan. */ interface GoogleCloudDataplexV1DataQualityResultResponse { /** * A list of results at the column level.A column will have a corresponding DataQualityColumnResult if and only if there is at least one rule with the 'column' field set to it. */ columns: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityColumnResultResponse[]; /** * A list of results at the dimension level.A dimension will have a corresponding DataQualityDimensionResult if and only if there is at least one rule with the 'dimension' field set to it. */ dimensions: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityDimensionResultResponse[]; /** * Overall data quality result -- true if all rules passed. */ passed: boolean; /** * The result of post scan actions. */ postScanActionsResult: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityResultPostScanActionsResultResponse; /** * The count of rows processed. */ rowCount: string; /** * A list of all the rules in a job, and their results. */ rules: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleResultResponse[]; /** * The data scanned for this result. */ scannedData: outputs.dataplex.v1.GoogleCloudDataplexV1ScannedDataResponse; /** * The overall data quality score.The score ranges between 0, 100 (up to two decimal points). */ score: number; } /** * Evaluates whether each column value is null. */ interface GoogleCloudDataplexV1DataQualityRuleNonNullExpectationResponse { } /** * Evaluates whether each column value lies between a specified range. */ interface GoogleCloudDataplexV1DataQualityRuleRangeExpectationResponse { /** * Optional. The maximum column value allowed for a row to pass this validation. At least one of min_value and max_value need to be provided. */ maxValue: string; /** * Optional. The minimum column value allowed for a row to pass this validation. At least one of min_value and max_value need to be provided. */ minValue: string; /** * Optional. Whether each value needs to be strictly lesser than ('<') the maximum, or if equality is allowed.Only relevant if a max_value has been defined. Default = false. */ strictMaxEnabled: boolean; /** * Optional. Whether each value needs to be strictly greater than ('>') the minimum, or if equality is allowed.Only relevant if a min_value has been defined. Default = false. */ strictMinEnabled: boolean; } /** * Evaluates whether each column value matches a specified regex. */ interface GoogleCloudDataplexV1DataQualityRuleRegexExpectationResponse { /** * Optional. A regular expression the column value is expected to match. */ regex: string; } /** * A rule captures data quality intent about a data source. */ interface GoogleCloudDataplexV1DataQualityRuleResponse { /** * Optional. The unnested column which this rule is evaluated against. */ column: string; /** * Optional. Description of the rule. The maximum length is 1,024 characters. */ description: string; /** * The dimension a rule belongs to. Results are also aggregated at the dimension level. Supported dimensions are "COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS", "INTEGRITY" */ dimension: string; /** * Optional. Rows with null values will automatically fail a rule, unless ignore_null is true. In that case, such null rows are trivially considered passing.This field is only valid for row-level type rules. */ ignoreNull: boolean; /** * Optional. A mutable name for the rule. The name must contain only letters (a-z, A-Z), numbers (0-9), or hyphens (-). The maximum length is 63 characters. Must start with a letter. Must end with a number or a letter. */ name: string; /** * Row-level rule which evaluates whether each column value is null. */ nonNullExpectation: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleNonNullExpectationResponse; /** * Row-level rule which evaluates whether each column value lies between a specified range. */ rangeExpectation: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleRangeExpectationResponse; /** * Row-level rule which evaluates whether each column value matches a specified regex. */ regexExpectation: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleRegexExpectationResponse; /** * Row-level rule which evaluates whether each row in a table passes the specified condition. */ rowConditionExpectation: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleRowConditionExpectationResponse; /** * Row-level rule which evaluates whether each column value is contained by a specified set. */ setExpectation: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleSetExpectationResponse; /** * Aggregate rule which evaluates whether the column aggregate statistic lies between a specified range. */ statisticRangeExpectation: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectationResponse; /** * Aggregate rule which evaluates whether the provided expression is true for a table. */ tableConditionExpectation: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleTableConditionExpectationResponse; /** * Optional. The minimum ratio of passing_rows / total_rows required to pass this rule, with a range of 0.0, 1.0.0 indicates default value (i.e. 1.0).This field is only valid for row-level type rules. */ threshold: number; /** * Row-level rule which evaluates whether each column value is unique. */ uniquenessExpectation: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleUniquenessExpectationResponse; } /** * DataQualityRuleResult provides a more detailed, per-rule view of the results. */ interface GoogleCloudDataplexV1DataQualityRuleResultResponse { /** * The number of rows a rule was evaluated against.This field is only valid for row-level type rules.Evaluated count can be configured to either include all rows (default) - with null rows automatically failing rule evaluation, or exclude null rows from the evaluated_count, by setting ignore_nulls = true. */ evaluatedCount: string; /** * The query to find rows that did not pass this rule.This field is only valid for row-level type rules. */ failingRowsQuery: string; /** * The number of rows with null values in the specified column. */ nullCount: string; /** * The ratio of passed_count / evaluated_count.This field is only valid for row-level type rules. */ passRatio: number; /** * Whether the rule passed or failed. */ passed: boolean; /** * The number of rows which passed a rule evaluation.This field is only valid for row-level type rules. */ passedCount: string; /** * The rule specified in the DataQualitySpec, as is. */ rule: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleResponse; } /** * Evaluates whether each row passes the specified condition.The SQL expression needs to use BigQuery standard SQL syntax and should produce a boolean value per row as the result.Example: col1 >= 0 AND col2 < 10 */ interface GoogleCloudDataplexV1DataQualityRuleRowConditionExpectationResponse { /** * Optional. The SQL expression. */ sqlExpression: string; } /** * Evaluates whether each column value is contained by a specified set. */ interface GoogleCloudDataplexV1DataQualityRuleSetExpectationResponse { /** * Optional. Expected values for the column value. */ values: string[]; } /** * Evaluates whether the column aggregate statistic lies between a specified range. */ interface GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectationResponse { /** * Optional. The maximum column statistic value allowed for a row to pass this validation.At least one of min_value and max_value need to be provided. */ maxValue: string; /** * Optional. The minimum column statistic value allowed for a row to pass this validation.At least one of min_value and max_value need to be provided. */ minValue: string; /** * Optional. The aggregate metric to evaluate. */ statistic: string; /** * Optional. Whether column statistic needs to be strictly lesser than ('<') the maximum, or if equality is allowed.Only relevant if a max_value has been defined. Default = false. */ strictMaxEnabled: boolean; /** * Optional. Whether column statistic needs to be strictly greater than ('>') the minimum, or if equality is allowed.Only relevant if a min_value has been defined. Default = false. */ strictMinEnabled: boolean; } /** * Evaluates whether the provided expression is true.The SQL expression needs to use BigQuery standard SQL syntax and should produce a scalar boolean result.Example: MIN(col1) >= 0 */ interface GoogleCloudDataplexV1DataQualityRuleTableConditionExpectationResponse { /** * Optional. The SQL expression. */ sqlExpression: string; } /** * Evaluates whether the column has duplicates. */ interface GoogleCloudDataplexV1DataQualityRuleUniquenessExpectationResponse { } /** * The configuration of BigQuery export post scan action. */ interface GoogleCloudDataplexV1DataQualitySpecPostScanActionsBigQueryExportResponse { /** * Optional. The BigQuery table to export DataQualityScan results to. Format: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID */ resultsTable: string; } /** * The configuration of post scan actions of DataQualityScan. */ interface GoogleCloudDataplexV1DataQualitySpecPostScanActionsResponse { /** * Optional. If set, results will be exported to the provided BigQuery table. */ bigqueryExport: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualitySpecPostScanActionsBigQueryExportResponse; } /** * DataQualityScan related setting. */ interface GoogleCloudDataplexV1DataQualitySpecResponse { /** * Optional. Actions to take upon job completion. */ postScanActions: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualitySpecPostScanActionsResponse; /** * Optional. A filter applied to all rows in a single DataScan job. The filter needs to be a valid SQL expression for a WHERE clause in BigQuery standard SQL syntax. Example: col1 >= 0 AND col2 < 10 */ rowFilter: string; /** * The list of rules to evaluate against a data source. At least one rule is required. */ rules: outputs.dataplex.v1.GoogleCloudDataplexV1DataQualityRuleResponse[]; /** * Optional. The percentage of the records to be selected from the dataset for DataScan. Value can range between 0.0 and 100.0 with up to 3 significant decimal digits. Sampling is not applied if sampling_percent is not specified, 0 or 100. */ samplingPercent: number; } /** * DataScan execution settings. */ interface GoogleCloudDataplexV1DataScanExecutionSpecResponse { /** * Immutable. The unnested field (of type Date or Timestamp) that contains values which monotonically increase over time.If not specified, a data scan will run for all data in the table. */ field: string; /** * Optional. Spec related to how often and when a scan should be triggered.If not specified, the default is OnDemand, which means the scan will not run until the user calls RunDataScan API. */ trigger: outputs.dataplex.v1.GoogleCloudDataplexV1TriggerResponse; } /** * Status of the data scan execution. */ interface GoogleCloudDataplexV1DataScanExecutionStatusResponse { /** * The time when the latest DataScanJob ended. */ latestJobEndTime: string; /** * The time when the latest DataScanJob started. */ latestJobStartTime: string; } /** * The data source for DataScan. */ interface GoogleCloudDataplexV1DataSourceResponse { /** * Immutable. The Dataplex entity that represents the data source (e.g. BigQuery table) for DataScan, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}. */ entity: string; /** * Immutable. The service-qualified full resource name of the cloud resource for a DataScan job to scan against. The field could be: BigQuery table of type "TABLE" for DataProfileScan/DataQualityScan Format: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID */ resource: string; } /** * Provides compatibility information for a specific metadata store. */ interface GoogleCloudDataplexV1EntityCompatibilityStatusCompatibilityResponse { /** * Whether the entity is compatible and can be represented in the metadata store. */ compatible: boolean; /** * Provides additional detail if the entity is incompatible with the metadata store. */ reason: string; } /** * Provides compatibility information for various metadata stores. */ interface GoogleCloudDataplexV1EntityCompatibilityStatusResponse { /** * Whether this entity is compatible with BigQuery. */ bigquery: outputs.dataplex.v1.GoogleCloudDataplexV1EntityCompatibilityStatusCompatibilityResponse; /** * Whether this entity is compatible with Hive Metastore. */ hiveMetastore: outputs.dataplex.v1.GoogleCloudDataplexV1EntityCompatibilityStatusCompatibilityResponse; } /** * URI Endpoints to access sessions associated with the Environment. */ interface GoogleCloudDataplexV1EnvironmentEndpointsResponse { /** * URI to serve notebook APIs */ notebooks: string; /** * URI to serve SQL APIs */ sql: string; } /** * Compute resources associated with the analyze interactive workloads. */ interface GoogleCloudDataplexV1EnvironmentInfrastructureSpecComputeResourcesResponse { /** * Optional. Size in GB of the disk. Default is 100 GB. */ diskSizeGb: number; /** * Optional. Max configurable nodes. If max_node_count > node_count, then auto-scaling is enabled. */ maxNodeCount: number; /** * Optional. Total number of nodes in the sessions created for this environment. */ nodeCount: number; } /** * Software Runtime Configuration to run Analyze. */ interface GoogleCloudDataplexV1EnvironmentInfrastructureSpecOsImageRuntimeResponse { /** * Dataplex Image version. */ imageVersion: string; /** * Optional. List of Java jars to be included in the runtime environment. Valid input includes Cloud Storage URIs to Jar binaries. For example, gs://bucket-name/my/path/to/file.jar */ javaLibraries: string[]; /** * Optional. Spark properties to provide configuration for use in sessions created for this environment. The properties to set on daemon config files. Property keys are specified in prefix:property format. The prefix must be "spark". */ properties: { [key: string]: string; }; /** * Optional. A list of python packages to be installed. Valid formats include Cloud Storage URI to a PIP installable library. For example, gs://bucket-name/my/path/to/lib.tar.gz */ pythonPackages: string[]; } /** * Configuration for the underlying infrastructure used to run workloads. */ interface GoogleCloudDataplexV1EnvironmentInfrastructureSpecResponse { /** * Optional. Compute resources needed for analyze interactive workloads. */ compute: outputs.dataplex.v1.GoogleCloudDataplexV1EnvironmentInfrastructureSpecComputeResourcesResponse; /** * Software Runtime Configuration for analyze interactive workloads. */ osImage: outputs.dataplex.v1.GoogleCloudDataplexV1EnvironmentInfrastructureSpecOsImageRuntimeResponse; } /** * Configuration for sessions created for this environment. */ interface GoogleCloudDataplexV1EnvironmentSessionSpecResponse { /** * Optional. If True, this causes sessions to be pre-created and available for faster startup to enable interactive exploration use-cases. This defaults to False to avoid additional billed charges. These can only be set to True for the environment with name set to "default", and with default configuration. */ enableFastStartup: boolean; /** * Optional. The idle time configuration of the session. The session will be auto-terminated at the end of this period. */ maxIdleDuration: string; } /** * Status of sessions created for this environment. */ interface GoogleCloudDataplexV1EnvironmentSessionStatusResponse { /** * Queries over sessions to mark whether the environment is currently active or not */ active: boolean; } /** * A job represents an instance of a task. */ interface GoogleCloudDataplexV1JobResponse { /** * The time when the job ended. */ endTime: string; /** * Spec related to how a task is executed. */ executionSpec: outputs.dataplex.v1.GoogleCloudDataplexV1TaskExecutionSpecResponse; /** * User-defined labels for the task. */ labels: { [key: string]: string; }; /** * Additional information about the current state. */ message: string; /** * The relative resource name of the job, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}/jobs/{job_id}. */ name: string; /** * The number of times the job has been retried (excluding the initial attempt). */ retryCount: number; /** * The underlying service running a job. */ service: string; /** * The full resource name for the job run under a particular service. */ serviceJob: string; /** * The time when the job was started. */ startTime: string; /** * Execution state for the job. */ state: string; /** * Job execution trigger. */ trigger: string; /** * System generated globally unique ID for the job. */ uid: string; } /** * Settings to manage association of Dataproc Metastore with a lake. */ interface GoogleCloudDataplexV1LakeMetastoreResponse { /** * Optional. A relative reference to the Dataproc Metastore (https://cloud.google.com/dataproc-metastore/docs) service associated with the lake: projects/{project_id}/locations/{location_id}/services/{service_id} */ service: string; } /** * Status of Lake and Dataproc Metastore service instance association. */ interface GoogleCloudDataplexV1LakeMetastoreStatusResponse { /** * The URI of the endpoint used to access the Metastore service. */ endpoint: string; /** * Additional information about the current status. */ message: string; /** * Current state of association. */ state: string; /** * Last update time of the metastore status of the lake. */ updateTime: string; } /** * ResourceAccessSpec holds the access control configuration to be enforced on the resources, for example, Cloud Storage bucket, BigQuery dataset, BigQuery table. */ interface GoogleCloudDataplexV1ResourceAccessSpecResponse { /** * Optional. The set of principals to be granted owner role on the resource. */ owners: string[]; /** * Optional. The format of strings follows the pattern followed by IAM in the bindings. user:{email}, serviceAccount:{email} group:{email}. The set of principals to be granted reader role on the resource. */ readers: string[]; /** * Optional. The set of principals to be granted writer role on the resource. */ writers: string[]; } /** * A data range denoted by a pair of start/end values of a field. */ interface GoogleCloudDataplexV1ScannedDataIncrementalFieldResponse { /** * Value that marks the end of the range. */ end: string; /** * The field that contains values which monotonically increases over time (e.g. a timestamp column). */ field: string; /** * Value that marks the start of the range. */ start: string; } /** * The data scanned during processing (e.g. in incremental DataScan) */ interface GoogleCloudDataplexV1ScannedDataResponse { /** * The range denoted by values of an incremental field */ incrementalField: outputs.dataplex.v1.GoogleCloudDataplexV1ScannedDataIncrementalFieldResponse; } /** * Represents a key field within the entity's partition structure. You could have up to 20 partition fields, but only the first 10 partitions have the filtering ability due to performance consideration. Note: Partition fields are immutable. */ interface GoogleCloudDataplexV1SchemaPartitionFieldResponse { /** * Partition field name must consist of letters, numbers, and underscores only, with a maximum of length of 256 characters, and must begin with a letter or underscore.. */ name: string; /** * Immutable. The type of field. */ type: string; } /** * Schema information describing the structure and layout of the data. */ interface GoogleCloudDataplexV1SchemaResponse { /** * Optional. The sequence of fields describing data in table entities. Note: BigQuery SchemaFields are immutable. */ fields: outputs.dataplex.v1.GoogleCloudDataplexV1SchemaSchemaFieldResponse[]; /** * Optional. The sequence of fields describing the partition structure in entities. If this field is empty, there are no partitions within the data. */ partitionFields: outputs.dataplex.v1.GoogleCloudDataplexV1SchemaPartitionFieldResponse[]; /** * Optional. The structure of paths containing partition data within the entity. */ partitionStyle: string; /** * Set to true if user-managed or false if managed by Dataplex. The default is false (managed by Dataplex). Set to falseto enable Dataplex discovery to update the schema. including new data discovery, schema inference, and schema evolution. Users retain the ability to input and edit the schema. Dataplex treats schema input by the user as though produced by a previous Dataplex discovery operation, and it will evolve the schema and take action based on that treatment. Set to true to fully manage the entity schema. This setting guarantees that Dataplex will not change schema fields. */ userManaged: boolean; } /** * Represents a column field within a table schema. */ interface GoogleCloudDataplexV1SchemaSchemaFieldResponse { /** * Optional. User friendly field description. Must be less than or equal to 1024 characters. */ description: string; /** * Optional. Any nested field for complex types. */ fields: outputs.dataplex.v1.GoogleCloudDataplexV1SchemaSchemaFieldResponse[]; /** * Additional field semantics. */ mode: string; /** * The name of the field. Must contain only letters, numbers and underscores, with a maximum length of 767 characters, and must begin with a letter or underscore. */ name: string; /** * The type of field. */ type: string; } /** * Describes the access mechanism of the data within its storage location. */ interface GoogleCloudDataplexV1StorageAccessResponse { /** * Describes the read access mechanism of the data. Not user settable. */ read: string; } /** * Describes CSV and similar semi-structured data formats. */ interface GoogleCloudDataplexV1StorageFormatCsvOptionsResponse { /** * Optional. The delimiter used to separate values. Defaults to ','. */ delimiter: string; /** * Optional. The character encoding of the data. Accepts "US-ASCII", "UTF-8", and "ISO-8859-1". Defaults to UTF-8 if unspecified. */ encoding: string; /** * Optional. The number of rows to interpret as header rows that should be skipped when reading data rows. Defaults to 0. */ headerRows: number; /** * Optional. The character used to quote column values. Accepts '"' (double quotation mark) or ''' (single quotation mark). Defaults to '"' (double quotation mark) if unspecified. */ quote: string; } /** * Describes Iceberg data format. */ interface GoogleCloudDataplexV1StorageFormatIcebergOptionsResponse { /** * Optional. The location of where the iceberg metadata is present, must be within the table path */ metadataLocation: string; } /** * Describes JSON data format. */ interface GoogleCloudDataplexV1StorageFormatJsonOptionsResponse { /** * Optional. The character encoding of the data. Accepts "US-ASCII", "UTF-8" and "ISO-8859-1". Defaults to UTF-8 if not specified. */ encoding: string; } /** * Describes the format of the data within its storage location. */ interface GoogleCloudDataplexV1StorageFormatResponse { /** * Optional. The compression type associated with the stored data. If unspecified, the data is uncompressed. */ compressionFormat: string; /** * Optional. Additional information about CSV formatted data. */ csv: outputs.dataplex.v1.GoogleCloudDataplexV1StorageFormatCsvOptionsResponse; /** * The data format associated with the stored data, which represents content type values. The value is inferred from mime type. */ format: string; /** * Optional. Additional information about iceberg tables. */ iceberg: outputs.dataplex.v1.GoogleCloudDataplexV1StorageFormatIcebergOptionsResponse; /** * Optional. Additional information about CSV formatted data. */ json: outputs.dataplex.v1.GoogleCloudDataplexV1StorageFormatJsonOptionsResponse; /** * The mime type descriptor for the data. Must match the pattern {type}/{subtype}. Supported values: application/x-parquet application/x-avro application/x-orc application/x-tfrecord application/x-parquet+iceberg application/x-avro+iceberg application/x-orc+iceberg application/json application/{subtypes} text/csv text/ image/{image subtype} video/{video subtype} audio/{audio subtype} */ mimeType: string; } /** * Execution related settings, like retry and service_account. */ interface GoogleCloudDataplexV1TaskExecutionSpecResponse { /** * Optional. The arguments to pass to the task. The args can use placeholders of the format ${placeholder} as part of key/value string. These will be interpolated before passing the args to the driver. Currently supported placeholders: - ${task_id} - ${job_time} To pass positional args, set the key as TASK_ARGS. The value should be a comma-separated string of all the positional arguments. To use a delimiter other than comma, refer to https://cloud.google.com/sdk/gcloud/reference/topic/escaping. In case of other keys being present in the args, then TASK_ARGS will be passed as the last argument. */ args: { [key: string]: string; }; /** * Optional. The Cloud KMS key to use for encryption, of the form: projects/{project_number}/locations/{location_id}/keyRings/{key-ring-name}/cryptoKeys/{key-name}. */ kmsKey: string; /** * Optional. The maximum duration after which the job execution is expired. */ maxJobExecutionLifetime: string; /** * Optional. The project in which jobs are run. By default, the project containing the Lake is used. If a project is provided, the ExecutionSpec.service_account must belong to this project. */ project: string; /** * Service account to use to execute a task. If not provided, the default Compute service account for the project is used. */ serviceAccount: string; } /** * Status of the task execution (e.g. Jobs). */ interface GoogleCloudDataplexV1TaskExecutionStatusResponse { /** * latest job execution */ latestJob: outputs.dataplex.v1.GoogleCloudDataplexV1JobResponse; /** * Last update time of the status. */ updateTime: string; } /** * Batch compute resources associated with the task. */ interface GoogleCloudDataplexV1TaskInfrastructureSpecBatchComputeResourcesResponse { /** * Optional. Total number of job executors. Executor Count should be between 2 and 100. Default=2 */ executorsCount: number; /** * Optional. Max configurable executors. If max_executors_count > executors_count, then auto-scaling is enabled. Max Executor Count should be between 2 and 1000. Default=1000 */ maxExecutorsCount: number; } /** * Container Image Runtime Configuration used with Batch execution. */ interface GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntimeResponse { /** * Optional. Container image to use. */ image: string; /** * Optional. A list of Java JARS to add to the classpath. Valid input includes Cloud Storage URIs to Jar binaries. For example, gs://bucket-name/my/path/to/file.jar */ javaJars: string[]; /** * Optional. Override to common configuration of open source components installed on the Dataproc cluster. The properties to set on daemon config files. Property keys are specified in prefix:property format, for example core:hadoop.tmp.dir. For more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties). */ properties: { [key: string]: string; }; /** * Optional. A list of python packages to be installed. Valid formats include Cloud Storage URI to a PIP installable library. For example, gs://bucket-name/my/path/to/lib.tar.gz */ pythonPackages: string[]; } /** * Configuration for the underlying infrastructure used to run workloads. */ interface GoogleCloudDataplexV1TaskInfrastructureSpecResponse { /** * Compute resources needed for a Task when using Dataproc Serverless. */ batch: outputs.dataplex.v1.GoogleCloudDataplexV1TaskInfrastructureSpecBatchComputeResourcesResponse; /** * Container Image Runtime Configuration. */ containerImage: outputs.dataplex.v1.GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntimeResponse; /** * Vpc network. */ vpcNetwork: outputs.dataplex.v1.GoogleCloudDataplexV1TaskInfrastructureSpecVpcNetworkResponse; } /** * Cloud VPC Network used to run the infrastructure. */ interface GoogleCloudDataplexV1TaskInfrastructureSpecVpcNetworkResponse { /** * Optional. The Cloud VPC network in which the job is run. By default, the Cloud VPC network named Default within the project is used. */ network: string; /** * Optional. List of network tags to apply to the job. */ networkTags: string[]; /** * Optional. The Cloud VPC sub-network in which the job is run. */ subNetwork: string; } /** * Config for running scheduled notebooks. */ interface GoogleCloudDataplexV1TaskNotebookTaskConfigResponse { /** * Optional. Cloud Storage URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. Cloud Storage URIs of files to be placed in the working directory of each executor. */ fileUris: string[]; /** * Optional. Infrastructure specification for the execution. */ infrastructureSpec: outputs.dataplex.v1.GoogleCloudDataplexV1TaskInfrastructureSpecResponse; /** * Path to input notebook. This can be the Cloud Storage URI of the notebook file or the path to a Notebook Content. The execution args are accessible as environment variables (TASK_key=value). */ notebook: string; } /** * User-specified config for running a Spark task. */ interface GoogleCloudDataplexV1TaskSparkTaskConfigResponse { /** * Optional. Cloud Storage URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. Cloud Storage URIs of files to be placed in the working directory of each executor. */ fileUris: string[]; /** * Optional. Infrastructure specification for the execution. */ infrastructureSpec: outputs.dataplex.v1.GoogleCloudDataplexV1TaskInfrastructureSpecResponse; /** * The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris. The execution args are passed in as a sequence of named process arguments (--key=value). */ mainClass: string; /** * The Cloud Storage URI of the jar file that contains the main class. The execution args are passed in as a sequence of named process arguments (--key=value). */ mainJarFileUri: string; /** * The Gcloud Storage URI of the main Python file to use as the driver. Must be a .py file. The execution args are passed in as a sequence of named process arguments (--key=value). */ pythonScriptFile: string; /** * The query text. The execution args are used to declare a set of script variables (set key="value";). */ sqlScript: string; /** * A reference to a query file. This can be the Cloud Storage URI of the query file or it can the path to a SqlScript Content. The execution args are used to declare a set of script variables (set key="value";). */ sqlScriptFile: string; } /** * Task scheduling and trigger settings. */ interface GoogleCloudDataplexV1TaskTriggerSpecResponse { /** * Optional. Prevent the task from executing. This does not cancel already running tasks. It is intended to temporarily disable RECURRING tasks. */ disabled: boolean; /** * Optional. Number of retry attempts before aborting. Set to zero to never attempt to retry a failed task. */ maxRetries: number; /** * Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running tasks periodically. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or "TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *. This field is required for RECURRING tasks. */ schedule: string; /** * Optional. The first run of the task will be after this time. If not specified, the task will run shortly after being submitted if ON_DEMAND and based on the schedule if RECURRING. */ startTime: string; /** * Immutable. Trigger type of the user-specified Task. */ type: string; } /** * The scan runs once via RunDataScan API. */ interface GoogleCloudDataplexV1TriggerOnDemandResponse { } /** * DataScan scheduling and trigger settings. */ interface GoogleCloudDataplexV1TriggerResponse { /** * The scan runs once via RunDataScan API. */ onDemand: outputs.dataplex.v1.GoogleCloudDataplexV1TriggerOnDemandResponse; /** * The scan is scheduled to run periodically. */ schedule: outputs.dataplex.v1.GoogleCloudDataplexV1TriggerScheduleResponse; } /** * The scan is scheduled to run periodically. */ interface GoogleCloudDataplexV1TriggerScheduleResponse { /** * Cron (https://en.wikipedia.org/wiki/Cron) schedule for running scans periodically.To explicitly set a timezone in the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or "TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database (wikipedia (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)). For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *.This field is required for Schedule scans. */ cron: string; } /** * Describe CSV and similar semi-structured data formats. */ interface GoogleCloudDataplexV1ZoneDiscoverySpecCsvOptionsResponse { /** * Optional. The delimiter being used to separate values. This defaults to ','. */ delimiter: string; /** * Optional. Whether to disable the inference of data type for CSV data. If true, all columns will be registered as strings. */ disableTypeInference: boolean; /** * Optional. The character encoding of the data. The default is UTF-8. */ encoding: string; /** * Optional. The number of rows to interpret as header rows that should be skipped when reading data rows. */ headerRows: number; } /** * Describe JSON data format. */ interface GoogleCloudDataplexV1ZoneDiscoverySpecJsonOptionsResponse { /** * Optional. Whether to disable the inference of data type for Json data. If true, all columns will be registered as their primitive types (strings, number or boolean). */ disableTypeInference: boolean; /** * Optional. The character encoding of the data. The default is UTF-8. */ encoding: string; } /** * Settings to manage the metadata discovery and publishing in a zone. */ interface GoogleCloudDataplexV1ZoneDiscoverySpecResponse { /** * Optional. Configuration for CSV data. */ csvOptions: outputs.dataplex.v1.GoogleCloudDataplexV1ZoneDiscoverySpecCsvOptionsResponse; /** * Whether discovery is enabled. */ enabled: boolean; /** * Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names. */ excludePatterns: string[]; /** * Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names. */ includePatterns: string[]; /** * Optional. Configuration for Json data. */ jsonOptions: outputs.dataplex.v1.GoogleCloudDataplexV1ZoneDiscoverySpecJsonOptionsResponse; /** * Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *. */ schedule: string; } /** * Settings for resources attached as assets within a zone. */ interface GoogleCloudDataplexV1ZoneResourceSpecResponse { /** * Immutable. The location type of the resources that are allowed to be attached to the assets within this zone. */ locationType: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.If there are AuditConfigs for both allServices and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted.Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.dataplex.v1.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, storage.googleapis.com, cloudsql.googleapis.com. allServices is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates members, or principals, with a role. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.dataplex.v1.GoogleTypeExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of members, or principals. For example, roles/viewer, roles/editor, or roles/owner. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface GoogleTypeExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace dataproc { namespace v1 { /** * Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/). */ interface AcceleratorConfigResponse { /** * The number of the accelerator cards of this type exposed to this instance. */ acceleratorCount: number; /** * Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/v1/acceleratorTypes).Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/[zone]/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80. */ acceleratorTypeUri: string; } /** * Autoscaling Policy config associated with the cluster. */ interface AutoscalingConfigResponse { /** * Optional. The autoscaling policy used by the cluster.Only resource names including projectid and location (region) are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id] projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]Note that the policy must be in the same project and Dataproc region. */ policyUri: string; } /** * Node group identification and configuration information. */ interface AuxiliaryNodeGroupResponse { /** * Node group configuration. */ nodeGroup: outputs.dataproc.v1.NodeGroupResponse; /** * Optional. A node group ID. Generated if not specified.The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of from 3 to 33 characters. */ nodeGroupId: string; } /** * Auxiliary services configuration for a Cluster. */ interface AuxiliaryServicesConfigResponse { /** * Optional. The Hive Metastore configuration for this workload. */ metastoreConfig: outputs.dataproc.v1.MetastoreConfigResponse; /** * Optional. The Spark History Server configuration for the workload. */ sparkHistoryServerConfig: outputs.dataproc.v1.SparkHistoryServerConfigResponse; } /** * Basic algorithm for autoscaling. */ interface BasicAutoscalingAlgorithmResponse { /** * Optional. Duration between scaling events. A scaling period starts after the update operation from the previous event has completed.Bounds: 2m, 1d. Default: 2m. */ cooldownPeriod: string; /** * Optional. Spark Standalone autoscaling configuration */ sparkStandaloneConfig: outputs.dataproc.v1.SparkStandaloneAutoscalingConfigResponse; /** * Optional. YARN autoscaling configuration. */ yarnConfig: outputs.dataproc.v1.BasicYarnAutoscalingConfigResponse; } /** * Basic autoscaling configurations for YARN. */ interface BasicYarnAutoscalingConfigResponse { /** * Timeout for YARN graceful decommissioning of Node Managers. Specifies the duration to wait for jobs to complete before forcefully removing workers (and potentially interrupting jobs). Only applicable to downscaling operations.Bounds: 0s, 1d. */ gracefulDecommissionTimeout: string; /** * Fraction of average YARN pending memory in the last cooldown period for which to remove workers. A scale-down factor of 1 will result in scaling down so that there is no available memory remaining after the update (more aggressive scaling). A scale-down factor of 0 disables removing workers, which can be beneficial for autoscaling a single job. See How autoscaling works (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/autoscaling#how_autoscaling_works) for more information.Bounds: 0.0, 1.0. */ scaleDownFactor: number; /** * Optional. Minimum scale-down threshold as a fraction of total cluster size before scaling occurs. For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler must recommend at least a 2 worker scale-down for the cluster to scale. A threshold of 0 means the autoscaler will scale down on any recommended change.Bounds: 0.0, 1.0. Default: 0.0. */ scaleDownMinWorkerFraction: number; /** * Fraction of average YARN pending memory in the last cooldown period for which to add workers. A scale-up factor of 1.0 will result in scaling up so that there is no pending memory remaining after the update (more aggressive scaling). A scale-up factor closer to 0 will result in a smaller magnitude of scaling up (less aggressive scaling). See How autoscaling works (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/autoscaling#how_autoscaling_works) for more information.Bounds: 0.0, 1.0. */ scaleUpFactor: number; /** * Optional. Minimum scale-up threshold as a fraction of total cluster size before scaling occurs. For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler must recommend at least a 2-worker scale-up for the cluster to scale. A threshold of 0 means the autoscaler will scale up on any recommended change.Bounds: 0.0, 1.0. Default: 0.0. */ scaleUpMinWorkerFraction: number; } /** * Associates members, or principals, with a role. */ interface BindingResponse { /** * The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.dataproc.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of members, or principals. For example, roles/viewer, roles/editor, or roles/owner. */ role: string; } /** * The cluster config. */ interface ClusterConfigResponse { /** * Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset. */ autoscalingConfig: outputs.dataproc.v1.AutoscalingConfigResponse; /** * Optional. The node group settings. */ auxiliaryNodeGroups: outputs.dataproc.v1.AuxiliaryNodeGroupResponse[]; /** * Optional. A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see Dataproc staging and temp buckets (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). This field requires a Cloud Storage bucket name, not a gs://... URI to a Cloud Storage bucket. */ configBucket: string; /** * Optional. The config for Dataproc metrics. */ dataprocMetricConfig: outputs.dataproc.v1.DataprocMetricConfigResponse; /** * Optional. Encryption settings for the cluster. */ encryptionConfig: outputs.dataproc.v1.EncryptionConfigResponse; /** * Optional. Port/endpoint configuration for this cluster */ endpointConfig: outputs.dataproc.v1.EndpointConfigResponse; /** * Optional. The shared Compute Engine config settings for all instances in a cluster. */ gceClusterConfig: outputs.dataproc.v1.GceClusterConfigResponse; /** * Optional. BETA. The Kubernetes Engine config for Dataproc clusters deployed to The Kubernetes Engine config for Dataproc clusters deployed to Kubernetes. These config settings are mutually exclusive with Compute Engine-based options, such as gce_cluster_config, master_config, worker_config, secondary_worker_config, and autoscaling_config. */ gkeClusterConfig: outputs.dataproc.v1.GkeClusterConfigResponse; /** * Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi */ initializationActions: outputs.dataproc.v1.NodeInitializationActionResponse[]; /** * Optional. Lifecycle setting for the cluster. */ lifecycleConfig: outputs.dataproc.v1.LifecycleConfigResponse; /** * Optional. The Compute Engine config settings for the cluster's master instance. */ masterConfig: outputs.dataproc.v1.InstanceGroupConfigResponse; /** * Optional. Metastore configuration. */ metastoreConfig: outputs.dataproc.v1.MetastoreConfigResponse; /** * Optional. The Compute Engine config settings for a cluster's secondary worker instances */ secondaryWorkerConfig: outputs.dataproc.v1.InstanceGroupConfigResponse; /** * Optional. Security settings for the cluster. */ securityConfig: outputs.dataproc.v1.SecurityConfigResponse; /** * Optional. The config settings for cluster software. */ softwareConfig: outputs.dataproc.v1.SoftwareConfigResponse; /** * Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs data, such as Spark and MapReduce history files. If you do not specify a temp bucket, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's temp bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket. The default bucket has a TTL of 90 days, but you can use any TTL (or none) if you specify a bucket (see Dataproc staging and temp buckets (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). This field requires a Cloud Storage bucket name, not a gs://... URI to a Cloud Storage bucket. */ tempBucket: string; /** * Optional. The Compute Engine config settings for the cluster's worker instances. */ workerConfig: outputs.dataproc.v1.InstanceGroupConfigResponse; } /** * Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. */ interface ClusterMetricsResponse { /** * The HDFS metrics. */ hdfsMetrics: { [key: string]: string; }; /** * YARN metrics. */ yarnMetrics: { [key: string]: string; }; } /** * A selector that chooses target cluster for jobs based on metadata. */ interface ClusterSelectorResponse { /** * The cluster labels. Cluster must have all labels to match. */ clusterLabels: { [key: string]: string; }; /** * Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster.If unspecified, the zone of the first cluster matching the selector is used. */ zone: string; } /** * The status of a cluster and its instances. */ interface ClusterStatusResponse { /** * Optional. Output only. Details of cluster's state. */ detail: string; /** * The cluster's state. */ state: string; /** * Time when this state was entered (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)). */ stateStartTime: string; /** * Additional state information that includes status reported by the agent. */ substate: string; } /** * Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) */ interface ConfidentialInstanceConfigResponse { /** * Optional. Defines whether the instance should have confidential compute enabled. */ enableConfidentialCompute: boolean; } /** * Dataproc metric config. */ interface DataprocMetricConfigResponse { /** * Metrics sources to enable. */ metrics: outputs.dataproc.v1.MetricResponse[]; } /** * Specifies the config of disk options for a group of VM instances. */ interface DiskConfigResponse { /** * Optional. Size in GB of the boot disk (default is 500GB). */ bootDiskSizeGb: number; /** * Optional. Type of the boot disk (default is "pd-standard"). Valid values: "pd-balanced" (Persistent Disk Balanced Solid State Drive), "pd-ssd" (Persistent Disk Solid State Drive), or "pd-standard" (Persistent Disk Hard Disk Drive). See Disk types (https://cloud.google.com/compute/docs/disks#disk-types). */ bootDiskType: string; /** * Optional. Interface type of local SSDs (default is "scsi"). Valid values: "scsi" (Small Computer System Interface), "nvme" (Non-Volatile Memory Express). See local SSD performance (https://cloud.google.com/compute/docs/disks/local-ssd#performance). */ localSsdInterface: string; /** * Optional. Number of attached SSDs, from 0 to 8 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.Note: Local SSD options may vary by machine type and number of vCPUs selected. */ numLocalSsds: number; } /** * Driver scheduling configuration. */ interface DriverSchedulingConfigResponse { /** * The amount of memory in MB the driver is requesting. */ memoryMb: number; /** * The number of vCPUs the driver is requesting. */ vcores: number; } /** * Encryption settings for the cluster. */ interface EncryptionConfigResponse { /** * Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster. */ gcePdKmsKeyName: string; /** * Optional. The Cloud KMS key name to use for encrypting customer core content in spanner and cluster PD disk for all instances in the cluster. */ kmsKey: string; } /** * Endpoint config for this cluster */ interface EndpointConfigResponse { /** * Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false. */ enableHttpPortAccess: boolean; /** * The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true. */ httpPorts: { [key: string]: string; }; } /** * Environment configuration for a workload. */ interface EnvironmentConfigResponse { /** * Optional. Execution configuration for a workload. */ executionConfig: outputs.dataproc.v1.ExecutionConfigResponse; /** * Optional. Peripherals configuration that workload has access to. */ peripheralsConfig: outputs.dataproc.v1.PeripheralsConfigResponse; } /** * Execution configuration for a workload. */ interface ExecutionConfigResponse { /** * Optional. Applies to sessions only. The duration to keep the session alive while it's idling. Exceeding this threshold causes the session to terminate. This field cannot be set on a batch workload. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)). Defaults to 1 hour if not set. If both ttl and idle_ttl are specified for an interactive session, the conditions are treated as OR conditions: the workload will be terminated when it has been idle for idle_ttl or when ttl has been exceeded, whichever occurs first. */ idleTtl: string; /** * Optional. The Cloud KMS key to use for encryption. */ kmsKey: string; /** * Optional. Tags used for network traffic control. */ networkTags: string[]; /** * Optional. Network URI to connect workload to. */ networkUri: string; /** * Optional. Service account that used to execute workload. */ serviceAccount: string; /** * Optional. A Cloud Storage bucket used to stage workload dependencies, config files, and store workload output and other ephemeral data, such as Spark history files. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location according to the region where your workload is running, and then create and manage project-level, per-location staging and temporary buckets. This field requires a Cloud Storage bucket name, not a gs://... URI to a Cloud Storage bucket. */ stagingBucket: string; /** * Optional. Subnetwork URI to connect workload to. */ subnetworkUri: string; /** * Optional. The duration after which the workload will be terminated, specified as the JSON representation for Duration (https://protobuf.dev/programming-guides/proto3/#json). When the workload exceeds this duration, it will be unconditionally terminated without waiting for ongoing work to finish. If ttl is not specified for a batch workload, the workload will be allowed to run until it exits naturally (or run forever without exiting). If ttl is not specified for an interactive session, it defaults to 24 hours. If ttl is not specified for a batch that uses 2.1+ runtime version, it defaults to 4 hours. Minimum value is 10 minutes; maximum value is 14 days. If both ttl and idle_ttl are specified (for an interactive session), the conditions are treated as OR conditions: the workload will be terminated when it has been idle for idle_ttl or when ttl has been exceeded, whichever occurs first. */ ttl: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A Dataproc job for running Apache Flink applications on YARN. */ interface FlinkJobResponse { /** * Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision might occur that causes an incorrect job submission. */ args: string[]; /** * Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Flink driver and tasks. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1.LoggingConfigResponse; /** * The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jarFileUris. */ mainClass: string; /** * The HCFS URI of the jar file that contains the main class. */ mainJarFileUri: string; /** * Optional. A mapping of property names to values, used to configure Flink. Properties that conflict with values set by the Dataproc API might beoverwritten. Can include properties set in/etc/flink/conf/flink-defaults.conf and classes in user code. */ properties: { [key: string]: string; }; /** * Optional. HCFS URI of the savepoint, which contains the last saved progress for starting the current job. */ savepointUri: string; } /** * Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. */ interface GceClusterConfigResponse { /** * Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs). */ confidentialInstanceConfig: outputs.dataproc.v1.ConfidentialInstanceConfigResponse; /** * Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses. */ internalIpOnly: boolean; /** * Optional. The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)). */ metadata: { [key: string]: string; }; /** * Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks (https://cloud.google.com/compute/docs/subnetworks) for more information).A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/global/networks/default projects/[project_id]/global/networks/default default */ networkUri: string; /** * Optional. Node Group Affinity for sole-tenant clusters. */ nodeGroupAffinity: outputs.dataproc.v1.NodeGroupAffinityResponse; /** * Optional. The type of IPv6 access for a cluster. */ privateIpv6GoogleAccess: string; /** * Optional. Reservation Affinity for consuming Zonal reservation. */ reservationAffinity: outputs.dataproc.v1.ReservationAffinityResponse; /** * Optional. The Dataproc service account (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/service-accounts#service_accounts_in_dataproc) (also see VM Data Plane identity (https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-principals#vm_service_account_data_plane_identity)) used by Dataproc cluster VM instances to access Google Cloud Platform services.If not specified, the Compute Engine default service account (https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used. */ serviceAccount: string; /** * Optional. The URIs of service account scopes to be included in Compute Engine instances. The following base set of scopes is always included: https://www.googleapis.com/auth/cloud.useraccounts.readonly https://www.googleapis.com/auth/devstorage.read_write https://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided: https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/bigtable.admin.table https://www.googleapis.com/auth/bigtable.data https://www.googleapis.com/auth/devstorage.full_control */ serviceAccountScopes: string[]; /** * Optional. Shielded Instance Config for clusters using Compute Engine Shielded VMs (https://cloud.google.com/security/shielded-cloud/shielded-vm). */ shieldedInstanceConfig: outputs.dataproc.v1.ShieldedInstanceConfigResponse; /** * Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/[region]/subnetworks/sub0 projects/[project_id]/regions/[region]/subnetworks/sub0 sub0 */ subnetworkUri: string; /** * The Compute Engine tags to add to all instances (see Tagging instances (https://cloud.google.com/compute/docs/label-or-tag-resources#tags)). */ tags: string[]; /** * Optional. The Compute Engine zone where the Dataproc cluster will be located. If omitted, the service will pick a zone in the cluster's Compute Engine region. On a get request, zone will always be present.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] [zone] */ zoneUri: string; } /** * The cluster's GKE config. */ interface GkeClusterConfigResponse { /** * Optional. A target GKE cluster to deploy to. It must be in the same project and region as the Dataproc cluster (the GKE cluster can be zonal or regional). Format: 'projects/{project}/locations/{location}/clusters/{cluster_id}' */ gkeClusterTarget: string; /** * Optional. Deprecated. Use gkeClusterTarget. Used only for the deprecated beta. A target for the deployment. * * @deprecated Optional. Deprecated. Use gkeClusterTarget. Used only for the deprecated beta. A target for the deployment. */ namespacedGkeDeploymentTarget: outputs.dataproc.v1.NamespacedGkeDeploymentTargetResponse; /** * Optional. GKE node pools where workloads will be scheduled. At least one node pool must be assigned the DEFAULT GkeNodePoolTarget.Role. If a GkeNodePoolTarget is not specified, Dataproc constructs a DEFAULT GkeNodePoolTarget. Each role can be given to only one GkeNodePoolTarget. All node pools must have the same location settings. */ nodePoolTarget: outputs.dataproc.v1.GkeNodePoolTargetResponse[]; } /** * Parameters that describe cluster nodes. */ interface GkeNodeConfigResponse { /** * Optional. A list of hardware accelerators (https://cloud.google.com/compute/docs/gpus) to attach to each node. */ accelerators: outputs.dataproc.v1.GkeNodePoolAcceleratorConfigResponse[]; /** * Optional. The Customer Managed Encryption Key (CMEK) (https://cloud.google.com/kubernetes-engine/docs/how-to/using-cmek) used to encrypt the boot disk attached to each node in the node pool. Specify the key using the following format: projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key} */ bootDiskKmsKey: string; /** * Optional. The number of local SSD disks to attach to the node, which is limited by the maximum number of disks allowable per zone (see Adding Local SSDs (https://cloud.google.com/compute/docs/disks/local-ssd)). */ localSsdCount: number; /** * Optional. The name of a Compute Engine machine type (https://cloud.google.com/compute/docs/machine-types). */ machineType: string; /** * Optional. Minimum CPU platform (https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) to be used by this instance. The instance may be scheduled on the specified or a newer CPU platform. Specify the friendly names of CPU platforms, such as "Intel Haswell"` or Intel Sandy Bridge". */ minCpuPlatform: string; /** * Optional. Whether the nodes are created as legacy preemptible VM instances (https://cloud.google.com/compute/docs/instances/preemptible). Also see Spot VMs, preemptible VM instances without a maximum lifetime. Legacy and Spot preemptible nodes cannot be used in a node pool with the CONTROLLER role or in the DEFAULT node pool if the CONTROLLER role is not assigned (the DEFAULT node pool will assume the CONTROLLER role). */ preemptible: boolean; /** * Optional. Whether the nodes are created as Spot VM instances (https://cloud.google.com/compute/docs/instances/spot). Spot VMs are the latest update to legacy preemptible VMs. Spot VMs do not have a maximum lifetime. Legacy and Spot preemptible nodes cannot be used in a node pool with the CONTROLLER role or in the DEFAULT node pool if the CONTROLLER role is not assigned (the DEFAULT node pool will assume the CONTROLLER role). */ spot: boolean; } /** * A GkeNodeConfigAcceleratorConfig represents a Hardware Accelerator request for a node pool. */ interface GkeNodePoolAcceleratorConfigResponse { /** * The number of accelerator cards exposed to an instance. */ acceleratorCount: string; /** * The accelerator type resource namename (see GPUs on Compute Engine). */ acceleratorType: string; /** * Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning). */ gpuPartitionSize: string; } /** * GkeNodePoolAutoscaling contains information the cluster autoscaler needs to adjust the size of the node pool to the current cluster usage. */ interface GkeNodePoolAutoscalingConfigResponse { /** * The maximum number of nodes in the node pool. Must be >= min_node_count, and must be > 0. Note: Quota must be sufficient to scale up the cluster. */ maxNodeCount: number; /** * The minimum number of nodes in the node pool. Must be >= 0 and <= max_node_count. */ minNodeCount: number; } /** * The configuration of a GKE node pool used by a Dataproc-on-GKE cluster (https://cloud.google.com/dataproc/docs/concepts/jobs/dataproc-gke#create-a-dataproc-on-gke-cluster). */ interface GkeNodePoolConfigResponse { /** * Optional. The autoscaler configuration for this node pool. The autoscaler is enabled only when a valid configuration is present. */ autoscaling: outputs.dataproc.v1.GkeNodePoolAutoscalingConfigResponse; /** * Optional. The node pool configuration. */ config: outputs.dataproc.v1.GkeNodeConfigResponse; /** * Optional. The list of Compute Engine zones (https://cloud.google.com/compute/docs/zones#available) where node pool nodes associated with a Dataproc on GKE virtual cluster will be located.Note: All node pools associated with a virtual cluster must be located in the same region as the virtual cluster, and they must be located in the same zone within that region.If a location is not specified during node pool creation, Dataproc on GKE will choose the zone. */ locations: string[]; } /** * GKE node pools that Dataproc workloads run on. */ interface GkeNodePoolTargetResponse { /** * The target GKE node pool. Format: 'projects/{project}/locations/{location}/clusters/{cluster}/nodePools/{node_pool}' */ nodePool: string; /** * Input only. The configuration for the GKE node pool.If specified, Dataproc attempts to create a node pool with the specified shape. If one with the same name already exists, it is verified against all specified fields. If a field differs, the virtual cluster creation will fail.If omitted, any node pool with the specified name is used. If a node pool with the specified name does not exist, Dataproc create a node pool with default values.This is an input only field. It will not be returned by the API. */ nodePoolConfig: outputs.dataproc.v1.GkeNodePoolConfigResponse; /** * The roles associated with the GKE node pool. */ roles: string[]; } /** * Encryption settings for the encrypting customer core content. NEXT ID: 2 */ interface GoogleCloudDataprocV1WorkflowTemplateEncryptionConfigResponse { /** * Optional. The Cloud KMS key name to use for encrypting customer core content. */ kmsKey: string; } /** * A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). */ interface HadoopJobResponse { /** * Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision might occur that causes an incorrect job submission. */ args: string[]; /** * Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks. */ fileUris: string[]; /** * Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1.LoggingConfigResponse; /** * The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris. */ mainClass: string; /** * The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar' */ mainJarFileUri: string; /** * Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code. */ properties: { [key: string]: string; }; } /** * A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. */ interface HiveJobResponse { /** * Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. */ continueOnFailure: boolean; /** * Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs. */ jarFileUris: string[]; /** * Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code. */ properties: { [key: string]: string; }; /** * The HCFS URI of the script that contains Hive queries. */ queryFileUri: string; /** * A list of queries. */ queryList: outputs.dataproc.v1.QueryListResponse; /** * Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name="value";). */ scriptVariables: { [key: string]: string; }; } /** * Identity related configuration, including service account based secure multi-tenancy user mappings. */ interface IdentityConfigResponse { /** * Map of user to service account. */ userServiceAccountMapping: { [key: string]: string; }; } /** * Instance flexibility Policy allowing a mixture of VM shapes and provisioning models. */ interface InstanceFlexibilityPolicyResponse { /** * Optional. List of instance selection options that the group will use when creating new VMs. */ instanceSelectionList: outputs.dataproc.v1.InstanceSelectionResponse[]; /** * A list of instance selection results in the group. */ instanceSelectionResults: outputs.dataproc.v1.InstanceSelectionResultResponse[]; } /** * Configuration for the size bounds of an instance group, including its proportional size to other groups. */ interface InstanceGroupAutoscalingPolicyConfigResponse { /** * Maximum number of instances for this group. Required for primary workers. Note that by default, clusters will not use secondary workers. Required for secondary workers if the minimum secondary instances is set.Primary workers - Bounds: [min_instances, ). Secondary workers - Bounds: [min_instances, ). Default: 0. */ maxInstances: number; /** * Optional. Minimum number of instances for this group.Primary workers - Bounds: 2, max_instances. Default: 2. Secondary workers - Bounds: 0, max_instances. Default: 0. */ minInstances: number; /** * Optional. Weight for the instance group, which is used to determine the fraction of total workers in the cluster from this instance group. For example, if primary workers have weight 2, and secondary workers have weight 1, the cluster will have approximately 2 primary workers for each secondary worker.The cluster may not reach the specified balance if constrained by min/max bounds or other autoscaling settings. For example, if max_instances for secondary workers is 0, then only primary workers will be added. The cluster can also be out of balance when created.If weight is not set on any instance group, the cluster will default to equal weight for all groups: the cluster will attempt to maintain an equal number of workers in each group within the configured size bounds for each group. If weight is set for one group only, the cluster will default to zero weight on the unset group. For example if weight is set only on primary workers, the cluster will use primary workers only and no secondary workers. */ weight: number; } /** * The config settings for Compute Engine resources in an instance group, such as a master or worker group. */ interface InstanceGroupConfigResponse { /** * Optional. The Compute Engine accelerator configuration for these instances. */ accelerators: outputs.dataproc.v1.AcceleratorConfigResponse[]; /** * Optional. Disk option config settings. */ diskConfig: outputs.dataproc.v1.DiskConfigResponse; /** * Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/v1/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/v1/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default. */ imageUri: string; /** * Optional. Instance flexibility Policy allowing a mixture of VM shapes and provisioning models. */ instanceFlexibilityPolicy: outputs.dataproc.v1.InstanceFlexibilityPolicyResponse; /** * The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group. */ instanceNames: string[]; /** * List of references to Compute Engine instances. */ instanceReferences: outputs.dataproc.v1.InstanceReferenceResponse[]; /** * Specifies that this instance group contains preemptible instances. */ isPreemptible: boolean; /** * Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]/machineTypes/n1-standard-2 projects/[project_id]/zones/[zone]/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2. */ machineTypeUri: string; /** * The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups. */ managedGroupConfig: outputs.dataproc.v1.ManagedGroupConfigResponse; /** * Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -> Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu). */ minCpuPlatform: string; /** * Optional. The minimum number of primary worker instances to create. If min_num_instances is set, cluster creation will succeed if the number of primary workers created is at least equal to the min_num_instances number.Example: Cluster creation request with num_instances = 5 and min_num_instances = 3: If 4 VMs are created and 1 instance fails, the failed VM is deleted. The cluster is resized to 4 instances and placed in a RUNNING state. If 2 instances are created and 3 instances fail, the cluster in placed in an ERROR state. The failed VMs are not deleted. */ minNumInstances: number; /** * Optional. The number of VM instances in the instance group. For HA cluster master_config groups, must be set to 3. For standard cluster master_config groups, must be set to 1. */ numInstances: number; /** * Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE. */ preemptibility: string; /** * Optional. Configuration to handle the startup of instances during cluster create and update process. */ startupConfig: outputs.dataproc.v1.StartupConfigResponse; } /** * A reference to a Compute Engine instance. */ interface InstanceReferenceResponse { /** * The unique identifier of the Compute Engine instance. */ instanceId: string; /** * The user-friendly name of the Compute Engine instance. */ instanceName: string; /** * The public ECIES key used for sharing data with this instance. */ publicEciesKey: string; /** * The public RSA key used for sharing data with this instance. */ publicKey: string; } /** * Defines machines types and a rank to which the machines types belong. */ interface InstanceSelectionResponse { /** * Optional. Full machine-type names, e.g. "n1-standard-16". */ machineTypes: string[]; /** * Optional. Preference of this instance selection. Lower number means higher preference. Dataproc will first try to create a VM based on the machine-type with priority rank and fallback to next rank based on availability. Machine types and instance selections with the same priority have the same preference. */ rank: number; } /** * Defines a mapping from machine types to the number of VMs that are created with each machine type. */ interface InstanceSelectionResultResponse { /** * Full machine-type names, e.g. "n1-standard-16". */ machineType: string; /** * Number of VM provisioned with the machine_type. */ vmCount: number; } /** * Dataproc job config. */ interface JobPlacementResponse { /** * Optional. Cluster labels to identify a cluster where the job will be submitted. */ clusterLabels: { [key: string]: string; }; /** * The name of the cluster where the job will be submitted. */ clusterName: string; /** * A cluster UUID generated by the Dataproc service when the job is submitted. */ clusterUuid: string; } /** * Encapsulates the full scoping used to reference a job. */ interface JobReferenceResponse { /** * Optional. The job ID, which must be unique within the project.The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.If not specified by the caller, the job ID will be provided by the server. */ jobId: string; /** * Optional. The ID of the Google Cloud Platform project that the job belongs to. If specified, must match the request project ID. */ project: string; } /** * Job scheduling options. */ interface JobSchedulingResponse { /** * Optional. Maximum number of times per hour a driver can be restarted as a result of driver exiting with non-zero code before job is reported failed.A job might be reported as thrashing if the driver exits with a non-zero code four times within a 10-minute window.Maximum value is 10.Note: This restartable job option is not supported in Dataproc workflow templates (https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template). */ maxFailuresPerHour: number; /** * Optional. Maximum total number of times a driver can be restarted as a result of the driver exiting with a non-zero code. After the maximum number is reached, the job will be reported as failed.Maximum value is 240.Note: Currently, this restartable job option is not supported in Dataproc workflow templates (https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template). */ maxFailuresTotal: number; } /** * Dataproc job status. */ interface JobStatusResponse { /** * Optional. Output only. Job state details, such as an error description if the state is ERROR. */ details: string; /** * A state message specifying the overall job state. */ state: string; /** * The time when this state was entered. */ stateStartTime: string; /** * Additional state information, which includes status reported by the agent. */ substate: string; } /** * Jupyter configuration for an interactive session. */ interface JupyterConfigResponse { /** * Optional. Display name, shown in the Jupyter kernelspec card. */ displayName: string; /** * Optional. Kernel */ kernel: string; } /** * Specifies Kerberos related configuration. */ interface KerberosConfigResponse { /** * Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship. */ crossRealmTrustAdminServer: string; /** * Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship. */ crossRealmTrustKdc: string; /** * Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust. */ crossRealmTrustRealm: string; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the shared password between the on-cluster Kerberos realm and the remote trusted realm, in a cross realm trust relationship. */ crossRealmTrustSharedPasswordUri: string; /** * Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster. */ enableKerberos: boolean; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database. */ kdcDbKeyUri: string; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided key. For the self-signed certificate, this password is generated by Dataproc. */ keyPasswordUri: string; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided keystore. For the self-signed certificate, this password is generated by Dataproc. */ keystorePasswordUri: string; /** * Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate. */ keystoreUri: string; /** * Optional. The uri of the KMS key used to encrypt various sensitive files. */ kmsKeyUri: string; /** * Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm. */ realm: string; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password. */ rootPrincipalPasswordUri: string; /** * Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used. */ tgtLifetimeHours: number; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided truststore. For the self-signed certificate, this password is generated by Dataproc. */ truststorePasswordUri: string; /** * Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate. */ truststoreUri: string; } /** * The configuration for running the Dataproc cluster on Kubernetes. */ interface KubernetesClusterConfigResponse { /** * The configuration for running the Dataproc cluster on GKE. */ gkeClusterConfig: outputs.dataproc.v1.GkeClusterConfigResponse; /** * Optional. A namespace within the Kubernetes cluster to deploy into. If this namespace does not exist, it is created. If it exists, Dataproc verifies that another Dataproc VirtualCluster is not installed into it. If not specified, the name of the Dataproc Cluster is used. */ kubernetesNamespace: string; /** * Optional. The software configuration for this Dataproc cluster running on Kubernetes. */ kubernetesSoftwareConfig: outputs.dataproc.v1.KubernetesSoftwareConfigResponse; } /** * The software configuration for this Dataproc cluster running on Kubernetes. */ interface KubernetesSoftwareConfigResponse { /** * The components that should be installed in this Dataproc cluster. The key must be a string from the KubernetesComponent enumeration. The value is the version of the software to be installed. At least one entry must be specified. */ componentVersion: { [key: string]: string; }; /** * The properties to set on daemon config files.Property keys are specified in prefix:property format, for example spark:spark.kubernetes.container.image. The following are supported prefixes and their mappings: spark: spark-defaults.confFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties). */ properties: { [key: string]: string; }; } /** * Specifies the cluster auto-delete schedule configuration. */ interface LifecycleConfigResponse { /** * Optional. The time when cluster will be auto-deleted (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)). */ autoDeleteTime: string; /** * Optional. The lifetime duration of cluster. The cluster will be auto-deleted at the end of this period. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)). */ autoDeleteTtl: string; /** * Optional. The duration to keep the cluster alive while idling (when no jobs are running). Passing this threshold will cause the cluster to be deleted. Minimum value is 5 minutes; maximum value is 14 days (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)). */ idleDeleteTtl: string; /** * The time when cluster became idle (most recent job finished) and became eligible for deletion due to idleness (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)). */ idleStartTime: string; } /** * The runtime logging config of the job. */ interface LoggingConfigResponse { /** * The per-package log levels for the driver. This can include "root" package name to configure rootLogger. Examples: - 'com.google = FATAL' - 'root = INFO' - 'org.apache = DEBUG' */ driverLogLevels: { [key: string]: string; }; } /** * Cluster that is managed by the workflow. */ interface ManagedClusterResponse { /** * The cluster name prefix. A unique cluster name will be formed by appending a random suffix.The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters. */ clusterName: string; /** * The cluster configuration. */ config: outputs.dataproc.v1.ClusterConfigResponse; /** * Optional. The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given cluster. */ labels: { [key: string]: string; }; } /** * Specifies the resources used to actively manage an instance group. */ interface ManagedGroupConfigResponse { /** * The name of the Instance Group Manager for this group. */ instanceGroupManagerName: string; /** * The partial URI to the instance group manager for this group. E.g. projects/my-project/regions/us-central1/instanceGroupManagers/my-igm. */ instanceGroupManagerUri: string; /** * The name of the Instance Template used for the Managed Instance Group. */ instanceTemplateName: string; } /** * Specifies a Metastore configuration. */ interface MetastoreConfigResponse { /** * Resource name of an existing Dataproc Metastore service.Example: projects/[project_id]/locations/[dataproc_region]/services/[service-name] */ dataprocMetastoreService: string; } /** * A Dataproc custom metric. */ interface MetricResponse { /** * Optional. Specify one or more Custom metrics (https://cloud.google.com/dataproc/docs/guides/dataproc-metrics#custom_metrics) to collect for the metric course (for the SPARK metric source (any Spark metric (https://spark.apache.org/docs/latest/monitoring.html#metrics) can be specified).Provide metrics in the following format: METRIC_SOURCE: INSTANCE:GROUP:METRIC Use camelcase as appropriate.Examples: yarn:ResourceManager:QueueMetrics:AppsCompleted spark:driver:DAGScheduler:job.allJobs sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.committed hiveserver2:JVM:Memory:NonHeapMemoryUsage.used Notes: Only the specified overridden metrics are collected for the metric source. For example, if one or more spark:executive metrics are listed as metric overrides, other SPARK metrics are not collected. The collection of the metrics for other enabled custom metric sources is unaffected. For example, if both SPARK andd YARN metric sources are enabled, and overrides are provided for Spark metrics only, all YARN metrics are collected. */ metricOverrides: string[]; /** * A standard set of metrics is collected unless metricOverrides are specified for the metric source (see Custom metrics (https://cloud.google.com/dataproc/docs/guides/dataproc-metrics#custom_metrics) for more information). */ metricSource: string; } /** * Deprecated. Used only for the deprecated beta. A full, namespace-isolated deployment target for an existing GKE cluster. */ interface NamespacedGkeDeploymentTargetResponse { /** * Optional. A namespace within the GKE cluster to deploy into. */ clusterNamespace: string; /** * Optional. The target GKE cluster to deploy to. Format: 'projects/{project}/locations/{location}/clusters/{cluster_id}' */ targetGkeCluster: string; } /** * Node Group Affinity for clusters using sole-tenant node groups. The Dataproc NodeGroupAffinity resource is not related to the Dataproc NodeGroup resource. */ interface NodeGroupAffinityResponse { /** * The URI of a sole-tenant node group resource (https://cloud.google.com/compute/docs/reference/rest/v1/nodeGroups) that the cluster will be created on.A full URL, partial URI, or node group name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]/nodeGroups/node-group-1 projects/[project_id]/zones/[zone]/nodeGroups/node-group-1 node-group-1 */ nodeGroupUri: string; } /** * Dataproc Node Group. The Dataproc NodeGroup resource is not related to the Dataproc NodeGroupAffinity resource. */ interface NodeGroupResponse { /** * Optional. Node group labels. Label keys must consist of from 1 to 63 characters and conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values can be empty. If specified, they must consist of from 1 to 63 characters and conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). The node group must have no more than 32 labelsn. */ labels: { [key: string]: string; }; /** * The Node group resource name (https://aip.dev/122). */ name: string; /** * Optional. The node group instance group configuration. */ nodeGroupConfig: outputs.dataproc.v1.InstanceGroupConfigResponse; /** * Node group roles. */ roles: string[]; } /** * Specifies an executable to run on a fully configured node and a timeout period for executable completion. */ interface NodeInitializationActionResponse { /** * Cloud Storage URI of executable file. */ executableFile: string; /** * Optional. Amount of time executable has to complete. Default is 10 minutes (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period. */ executionTimeout: string; } /** * A job executed by the workflow. */ interface OrderedJobResponse { /** * Optional. Job is a Flink job. */ flinkJob: outputs.dataproc.v1.FlinkJobResponse; /** * Optional. Job is a Hadoop job. */ hadoopJob: outputs.dataproc.v1.HadoopJobResponse; /** * Optional. Job is a Hive job. */ hiveJob: outputs.dataproc.v1.HiveJobResponse; /** * Optional. The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given job. */ labels: { [key: string]: string; }; /** * Optional. Job is a Pig job. */ pigJob: outputs.dataproc.v1.PigJobResponse; /** * Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow. */ prerequisiteStepIds: string[]; /** * Optional. Job is a Presto job. */ prestoJob: outputs.dataproc.v1.PrestoJobResponse; /** * Optional. Job is a PySpark job. */ pysparkJob: outputs.dataproc.v1.PySparkJobResponse; /** * Optional. Job scheduling configuration. */ scheduling: outputs.dataproc.v1.JobSchedulingResponse; /** * Optional. Job is a Spark job. */ sparkJob: outputs.dataproc.v1.SparkJobResponse; /** * Optional. Job is a SparkR job. */ sparkRJob: outputs.dataproc.v1.SparkRJobResponse; /** * Optional. Job is a SparkSql job. */ sparkSqlJob: outputs.dataproc.v1.SparkSqlJobResponse; /** * The step id. The id must be unique among all jobs within the template.The step id is used as prefix for job id, as job goog-dataproc-workflow-step-id label, and in prerequisiteStepIds field from other steps.The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between 3 and 50 characters. */ stepId: string; /** * Optional. Job is a Trino job. */ trinoJob: outputs.dataproc.v1.TrinoJobResponse; } /** * Configuration for parameter validation. */ interface ParameterValidationResponse { /** * Validation based on regular expressions. */ regex: outputs.dataproc.v1.RegexValidationResponse; /** * Validation based on a list of allowed values. */ values: outputs.dataproc.v1.ValueValidationResponse; } /** * Auxiliary services configuration for a workload. */ interface PeripheralsConfigResponse { /** * Optional. Resource name of an existing Dataproc Metastore service.Example: projects/[project_id]/locations/[region]/services/[service_id] */ metastoreService: string; /** * Optional. The Spark History Server configuration for the workload. */ sparkHistoryServerConfig: outputs.dataproc.v1.SparkHistoryServerConfigResponse; } /** * A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. */ interface PigJobResponse { /** * Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. */ continueOnFailure: boolean; /** * Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1.LoggingConfigResponse; /** * Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code. */ properties: { [key: string]: string; }; /** * The HCFS URI of the script that contains the Pig queries. */ queryFileUri: string; /** * A list of queries. */ queryList: outputs.dataproc.v1.QueryListResponse; /** * Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]). */ scriptVariables: { [key: string]: string; }; } /** * A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT: The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/presto) must be enabled when the cluster is created to submit a Presto job to the cluster. */ interface PrestoJobResponse { /** * Optional. Presto client tags to attach to this query */ clientTags: string[]; /** * Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. */ continueOnFailure: boolean; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1.LoggingConfigResponse; /** * Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats */ outputFormat: string; /** * Optional. A mapping of property names to values. Used to set Presto session properties (https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI */ properties: { [key: string]: string; }; /** * The HCFS URI of the script that contains SQL queries. */ queryFileUri: string; /** * A list of queries. */ queryList: outputs.dataproc.v1.QueryListResponse; } /** * Configuration for PyPi repository */ interface PyPiRepositoryConfigResponse { /** * Optional. PyPi repository address */ pypiRepository: string; } /** * A configuration for running an Apache PySpark (https://spark.apache.org/docs/latest/api/python/getting_started/quickstart.html) batch workload. */ interface PySparkBatchResponse { /** * Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the driver. Do not include arguments that can be set as batch properties, such as --conf, since a collision can occur that causes an incorrect batch submission. */ args: string[]; /** * Optional. HCFS URIs of files to be placed in the working directory of each executor. */ fileUris: string[]; /** * Optional. HCFS URIs of jar files to add to the classpath of the Spark driver and tasks. */ jarFileUris: string[]; /** * The HCFS URI of the main Python file to use as the Spark driver. Must be a .py file. */ mainPythonFileUri: string; /** * Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip. */ pythonFileUris: string[]; } /** * A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. */ interface PySparkJobResponse { /** * Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission. */ args: string[]; /** * Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks. */ fileUris: string[]; /** * Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1.LoggingConfigResponse; /** * The HCFS URI of the main Python file to use as the driver. Must be a .py file. */ mainPythonFileUri: string; /** * Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code. */ properties: { [key: string]: string; }; /** * Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip. */ pythonFileUris: string[]; } /** * A list of queries to run on a cluster. */ interface QueryListResponse { /** * The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } } */ queries: string[]; } /** * Validation based on regular expressions. */ interface RegexValidationResponse { /** * RE2 regular expressions used to validate the parameter's value. The value must match the regex in its entirety (substring matches are not sufficient). */ regexes: string[]; } /** * Configuration for dependency repositories */ interface RepositoryConfigResponse { /** * Optional. Configuration for PyPi repository. */ pypiRepositoryConfig: outputs.dataproc.v1.PyPiRepositoryConfigResponse; } /** * Reservation Affinity for consuming Zonal reservation. */ interface ReservationAffinityResponse { /** * Optional. Type of reservation to consume */ consumeReservationType: string; /** * Optional. Corresponds to the label key of reservation resource. */ key: string; /** * Optional. Corresponds to the label values of reservation resource. */ values: string[]; } /** * Runtime configuration for a workload. */ interface RuntimeConfigResponse { /** * Optional. Optional custom container image for the job runtime environment. If not specified, a default container image will be used. */ containerImage: string; /** * Optional. A mapping of property names to values, which are used to configure workload execution. */ properties: { [key: string]: string; }; /** * Optional. Dependency repository configuration. */ repositoryConfig: outputs.dataproc.v1.RepositoryConfigResponse; /** * Optional. Version of the batch runtime. */ version: string; } /** * Runtime information about workload execution. */ interface RuntimeInfoResponse { /** * Approximate workload resource usage, calculated when the workload completes (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)).Note: This metric calculation may change in the future, for example, to capture cumulative workload resource consumption during workload execution (see the Dataproc Serverless release notes (https://cloud.google.com/dataproc-serverless/docs/release-notes) for announcements, changes, fixes and other Dataproc developments). */ approximateUsage: outputs.dataproc.v1.UsageMetricsResponse; /** * Snapshot of current workload resource usage. */ currentUsage: outputs.dataproc.v1.UsageSnapshotResponse; /** * A URI pointing to the location of the diagnostics tarball. */ diagnosticOutputUri: string; /** * Map of remote access endpoints (such as web interfaces and APIs) to their URIs. */ endpoints: { [key: string]: string; }; /** * A URI pointing to the location of the stdout and stderr of the workload. */ outputUri: string; } /** * Security related configuration, including encryption, Kerberos, etc. */ interface SecurityConfigResponse { /** * Optional. Identity related configuration, including service account based secure multi-tenancy user mappings. */ identityConfig: outputs.dataproc.v1.IdentityConfigResponse; /** * Optional. Kerberos related configuration. */ kerberosConfig: outputs.dataproc.v1.KerberosConfigResponse; } /** * Historical state information. */ interface SessionStateHistoryResponse { /** * The state of the session at this point in the session history. */ state: string; /** * Details about the state at this point in the session history. */ stateMessage: string; /** * The time when the session entered the historical state. */ stateStartTime: string; } /** * Shielded Instance Config for clusters using Compute Engine Shielded VMs (https://cloud.google.com/security/shielded-cloud/shielded-vm). */ interface ShieldedInstanceConfigResponse { /** * Optional. Defines whether instances have integrity monitoring enabled. */ enableIntegrityMonitoring: boolean; /** * Optional. Defines whether instances have Secure Boot enabled. */ enableSecureBoot: boolean; /** * Optional. Defines whether instances have the vTPM enabled. */ enableVtpm: boolean; } /** * Specifies the selection and config of software inside the cluster. */ interface SoftwareConfigResponse { /** * Optional. The version of software inside the cluster. It must be one of the supported Dataproc Versions (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as "1.2" (including a subminor version, such as "1.2.29"), or the "preview" version (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version. */ imageVersion: string; /** * Optional. The set of components to activate on the cluster. */ optionalComponents: string[]; /** * Optional. The properties to set on daemon config files.Property keys are specified in prefix:property format, for example core:hadoop.tmp.dir. The following are supported prefixes and their mappings: capacity-scheduler: capacity-scheduler.xml core: core-site.xml distcp: distcp-default.xml hdfs: hdfs-site.xml hive: hive-site.xml mapred: mapred-site.xml pig: pig.properties spark: spark-defaults.conf yarn: yarn-site.xmlFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties). */ properties: { [key: string]: string; }; } /** * A configuration for running an Apache Spark (https://spark.apache.org/) batch workload. */ interface SparkBatchResponse { /** * Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the driver. Do not include arguments that can be set as batch properties, such as --conf, since a collision can occur that causes an incorrect batch submission. */ args: string[]; /** * Optional. HCFS URIs of files to be placed in the working directory of each executor. */ fileUris: string[]; /** * Optional. HCFS URIs of jar files to add to the classpath of the Spark driver and tasks. */ jarFileUris: string[]; /** * Optional. The name of the driver main class. The jar file that contains the class must be in the classpath or specified in jar_file_uris. */ mainClass: string; /** * Optional. The HCFS URI of the jar file that contains the main class. */ mainJarFileUri: string; } /** * Spark History Server configuration for the workload. */ interface SparkHistoryServerConfigResponse { /** * Optional. Resource name of an existing Dataproc Cluster to act as a Spark History Server for the workload.Example: projects/[project_id]/regions/[region]/clusters/[cluster_name] */ dataprocCluster: string; } /** * A Dataproc job for running Apache Spark (https://spark.apache.org/) applications on YARN. */ interface SparkJobResponse { /** * Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission. */ args: string[]; /** * Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks. */ fileUris: string[]; /** * Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1.LoggingConfigResponse; /** * The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in SparkJob.jar_file_uris. */ mainClass: string; /** * The HCFS URI of the jar file that contains the main class. */ mainJarFileUri: string; /** * Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code. */ properties: { [key: string]: string; }; } /** * A configuration for running an Apache SparkR (https://spark.apache.org/docs/latest/sparkr.html) batch workload. */ interface SparkRBatchResponse { /** * Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the Spark driver. Do not include arguments that can be set as batch properties, such as --conf, since a collision can occur that causes an incorrect batch submission. */ args: string[]; /** * Optional. HCFS URIs of files to be placed in the working directory of each executor. */ fileUris: string[]; /** * The HCFS URI of the main R file to use as the driver. Must be a .R or .r file. */ mainRFileUri: string; } /** * A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/sparkr.html) applications on YARN. */ interface SparkRJobResponse { /** * Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission. */ args: string[]; /** * Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks. */ fileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1.LoggingConfigResponse; /** * The HCFS URI of the main R file to use as the driver. Must be a .R file. */ mainRFileUri: string; /** * Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API might be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code. */ properties: { [key: string]: string; }; } /** * A configuration for running Apache Spark SQL (https://spark.apache.org/sql/) queries as a batch workload. */ interface SparkSqlBatchResponse { /** * Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH. */ jarFileUris: string[]; /** * The HCFS URI of the script that contains Spark SQL queries to execute. */ queryFileUri: string; /** * Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";). */ queryVariables: { [key: string]: string; }; } /** * A Dataproc job for running Apache Spark SQL (https://spark.apache.org/sql/) queries. */ interface SparkSqlJobResponse { /** * Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1.LoggingConfigResponse; /** * Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Dataproc API might be overwritten. */ properties: { [key: string]: string; }; /** * The HCFS URI of the script that contains SQL queries. */ queryFileUri: string; /** * A list of queries. */ queryList: outputs.dataproc.v1.QueryListResponse; /** * Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";). */ scriptVariables: { [key: string]: string; }; } /** * Basic autoscaling configurations for Spark Standalone. */ interface SparkStandaloneAutoscalingConfigResponse { /** * Timeout for Spark graceful decommissioning of spark workers. Specifies the duration to wait for spark worker to complete spark decommissioning tasks before forcefully removing workers. Only applicable to downscaling operations.Bounds: 0s, 1d. */ gracefulDecommissionTimeout: string; /** * Optional. Remove only idle workers when scaling down cluster */ removeOnlyIdleWorkers: boolean; /** * Fraction of required executors to remove from Spark Serverless clusters. A scale-down factor of 1.0 will result in scaling down so that there are no more executors for the Spark Job.(more aggressive scaling). A scale-down factor closer to 0 will result in a smaller magnitude of scaling donw (less aggressive scaling).Bounds: 0.0, 1.0. */ scaleDownFactor: number; /** * Optional. Minimum scale-down threshold as a fraction of total cluster size before scaling occurs. For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler must recommend at least a 2 worker scale-down for the cluster to scale. A threshold of 0 means the autoscaler will scale down on any recommended change.Bounds: 0.0, 1.0. Default: 0.0. */ scaleDownMinWorkerFraction: number; /** * Fraction of required workers to add to Spark Standalone clusters. A scale-up factor of 1.0 will result in scaling up so that there are no more required workers for the Spark Job (more aggressive scaling). A scale-up factor closer to 0 will result in a smaller magnitude of scaling up (less aggressive scaling).Bounds: 0.0, 1.0. */ scaleUpFactor: number; /** * Optional. Minimum scale-up threshold as a fraction of total cluster size before scaling occurs. For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler must recommend at least a 2-worker scale-up for the cluster to scale. A threshold of 0 means the autoscaler will scale up on any recommended change.Bounds: 0.0, 1.0. Default: 0.0. */ scaleUpMinWorkerFraction: number; } /** * Configuration to handle the startup of instances during cluster create and update process. */ interface StartupConfigResponse { /** * Optional. The config setting to enable cluster creation/ updation to be successful only after required_registration_fraction of instances are up and running. This configuration is applicable to only secondary workers for now. The cluster will fail if required_registration_fraction of instances are not available. This will include instance creation, agent registration, and service registration (if enabled). */ requiredRegistrationFraction: number; } /** * Historical state information. */ interface StateHistoryResponse { /** * The state of the batch at this point in history. */ state: string; /** * Details about the state at this point in history. */ stateMessage: string; /** * The time when the batch entered the historical state. */ stateStartTime: string; } /** * A configurable parameter that replaces one or more fields in the template. Parameterizable fields: - Labels - File uris - Job properties - Job arguments - Script variables - Main class (in HadoopJob and SparkJob) - Zone (in ClusterSelector) */ interface TemplateParameterResponse { /** * Optional. Brief description of the parameter. Must not exceed 1024 characters. */ description: string; /** * Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter's list of field paths.A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template's cluster selector would be specified as placement.clusterSelector.zone.Also, field paths can reference fields using the following syntax: Values in maps can be referenced by key: labels'key' placement.clusterSelector.clusterLabels'key' placement.managedCluster.labels'key' placement.clusterSelector.clusterLabels'key' jobs'step-id'.labels'key' Jobs in the jobs list can be referenced by step-id: jobs'step-id'.hadoopJob.mainJarFileUri jobs'step-id'.hiveJob.queryFileUri jobs'step-id'.pySparkJob.mainPythonFileUri jobs'step-id'.hadoopJob.jarFileUris0 jobs'step-id'.hadoopJob.archiveUris0 jobs'step-id'.hadoopJob.fileUris0 jobs'step-id'.pySparkJob.pythonFileUris0 Items in repeated fields can be referenced by a zero-based index: jobs'step-id'.sparkJob.args0 Other examples: jobs'step-id'.hadoopJob.properties'key' jobs'step-id'.hadoopJob.args0 jobs'step-id'.hiveJob.scriptVariables'key' jobs'step-id'.hadoopJob.mainJarFileUri placement.clusterSelector.zoneIt may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: placement.clusterSelector.clusterLabels jobs'step-id'.sparkJob.args */ fields: string[]; /** * Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters. */ name: string; /** * Optional. Validation rules to be applied to this parameter's value. */ validation: outputs.dataproc.v1.ParameterValidationResponse; } /** * A Dataproc job for running Trino (https://trino.io/) queries. IMPORTANT: The Dataproc Trino Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/trino) must be enabled when the cluster is created to submit a Trino job to the cluster. */ interface TrinoJobResponse { /** * Optional. Trino client tags to attach to this query */ clientTags: string[]; /** * Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. */ continueOnFailure: boolean; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1.LoggingConfigResponse; /** * Optional. The format in which query output will be displayed. See the Trino documentation for supported output formats */ outputFormat: string; /** * Optional. A mapping of property names to values. Used to set Trino session properties (https://trino.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Trino CLI */ properties: { [key: string]: string; }; /** * The HCFS URI of the script that contains SQL queries. */ queryFileUri: string; /** * A list of queries. */ queryList: outputs.dataproc.v1.QueryListResponse; } /** * Usage metrics represent approximate total resources consumed by a workload. */ interface UsageMetricsResponse { /** * Optional. Accelerator type being used, if any */ acceleratorType: string; /** * Optional. Accelerator usage in (milliAccelerator x seconds) (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)). */ milliAcceleratorSeconds: string; /** * Optional. DCU (Dataproc Compute Units) usage in (milliDCU x seconds) (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)). */ milliDcuSeconds: string; /** * Optional. Shuffle storage usage in (GB x seconds) (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)). */ shuffleStorageGbSeconds: string; } /** * The usage snapshot represents the resources consumed by a workload at a specified time. */ interface UsageSnapshotResponse { /** * Optional. Accelerator type being used, if any */ acceleratorType: string; /** * Optional. Milli (one-thousandth) accelerator. (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)) */ milliAccelerator: string; /** * Optional. Milli (one-thousandth) Dataproc Compute Units (DCUs) (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)). */ milliDcu: string; /** * Optional. Milli (one-thousandth) Dataproc Compute Units (DCUs) charged at premium tier (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)). */ milliDcuPremium: string; /** * Optional. Shuffle Storage in gigabytes (GB). (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)) */ shuffleStorageGb: string; /** * Optional. Shuffle Storage in gigabytes (GB) charged at premium tier. (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)) */ shuffleStorageGbPremium: string; /** * Optional. The timestamp of the usage snapshot. */ snapshotTime: string; } /** * Validation based on a list of allowed values. */ interface ValueValidationResponse { /** * List of allowed values for the parameter. */ values: string[]; } /** * The Dataproc cluster config for a cluster that does not directly control the underlying compute resources, such as a Dataproc-on-GKE cluster (https://cloud.google.com/dataproc/docs/guides/dpgke/dataproc-gke-overview). */ interface VirtualClusterConfigResponse { /** * Optional. Configuration of auxiliary services used by this cluster. */ auxiliaryServicesConfig: outputs.dataproc.v1.AuxiliaryServicesConfigResponse; /** * The configuration for running the Dataproc cluster on Kubernetes. */ kubernetesClusterConfig: outputs.dataproc.v1.KubernetesClusterConfigResponse; /** * Optional. A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see Dataproc staging and temp buckets (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). This field requires a Cloud Storage bucket name, not a gs://... URI to a Cloud Storage bucket. */ stagingBucket: string; } /** * Specifies workflow execution target.Either managed_cluster or cluster_selector is required. */ interface WorkflowTemplatePlacementResponse { /** * Optional. A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted. */ clusterSelector: outputs.dataproc.v1.ClusterSelectorResponse; /** * A cluster that is managed by the workflow. */ managedCluster: outputs.dataproc.v1.ManagedClusterResponse; } /** * A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.Beta Feature: This report is available for testing purposes only. It may be changed before final release. */ interface YarnApplicationResponse { /** * The application name. */ name: string; /** * The numerical progress of the application, from 1 to 100. */ progress: number; /** * The application state. */ state: string; /** * Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access. */ trackingUrl: string; } } namespace v1beta2 { /** * Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/)). */ interface AcceleratorConfigResponse { /** * The number of the accelerator cards of this type exposed to this instance. */ acceleratorCount: number; /** * Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes)Examples * https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80. */ acceleratorTypeUri: string; } /** * Autoscaling Policy config associated with the cluster. */ interface AutoscalingConfigResponse { /** * Optional. The autoscaling policy used by the cluster.Only resource names including projectid and location (region) are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id] projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]Note that the policy must be in the same project and Dataproc region. */ policyUri: string; } /** * Basic algorithm for autoscaling. */ interface BasicAutoscalingAlgorithmResponse { /** * Optional. Duration between scaling events. A scaling period starts after the update operation from the previous event has completed.Bounds: 2m, 1d. Default: 2m. */ cooldownPeriod: string; /** * Optional. YARN autoscaling configuration. */ yarnConfig: outputs.dataproc.v1beta2.BasicYarnAutoscalingConfigResponse; } /** * Basic autoscaling configurations for YARN. */ interface BasicYarnAutoscalingConfigResponse { /** * Timeout for YARN graceful decommissioning of Node Managers. Specifies the duration to wait for jobs to complete before forcefully removing workers (and potentially interrupting jobs). Only applicable to downscaling operations.Bounds: 0s, 1d. */ gracefulDecommissionTimeout: string; /** * Fraction of average YARN pending memory in the last cooldown period for which to remove workers. A scale-down factor of 1 will result in scaling down so that there is no available memory remaining after the update (more aggressive scaling). A scale-down factor of 0 disables removing workers, which can be beneficial for autoscaling a single job. See How autoscaling works for more information.Bounds: 0.0, 1.0. */ scaleDownFactor: number; /** * Optional. Minimum scale-down threshold as a fraction of total cluster size before scaling occurs. For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler must recommend at least a 2 worker scale-down for the cluster to scale. A threshold of 0 means the autoscaler will scale down on any recommended change.Bounds: 0.0, 1.0. Default: 0.0. */ scaleDownMinWorkerFraction: number; /** * Fraction of average YARN pending memory in the last cooldown period for which to add workers. A scale-up factor of 1.0 will result in scaling up so that there is no pending memory remaining after the update (more aggressive scaling). A scale-up factor closer to 0 will result in a smaller magnitude of scaling up (less aggressive scaling). See How autoscaling works for more information.Bounds: 0.0, 1.0. */ scaleUpFactor: number; /** * Optional. Minimum scale-up threshold as a fraction of total cluster size before scaling occurs. For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler must recommend at least a 2-worker scale-up for the cluster to scale. A threshold of 0 means the autoscaler will scale up on any recommended change.Bounds: 0.0, 1.0. Default: 0.0. */ scaleUpMinWorkerFraction: number; } /** * Associates members with a role. */ interface BindingResponse { /** * The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.dataproc.v1beta2.ExprResponse; /** * Specifies the identities requesting access for a Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com. */ members: string[]; /** * Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner. */ role: string; } /** * The cluster config. */ interface ClusterConfigResponse { /** * Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset. */ autoscalingConfig: outputs.dataproc.v1beta2.AutoscalingConfigResponse; /** * Optional. A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see Dataproc staging bucket (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). This field requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket. */ configBucket: string; /** * Optional. Encryption settings for the cluster. */ encryptionConfig: outputs.dataproc.v1beta2.EncryptionConfigResponse; /** * Optional. Port/endpoint configuration for this cluster */ endpointConfig: outputs.dataproc.v1beta2.EndpointConfigResponse; /** * Optional. The shared Compute Engine config settings for all instances in a cluster. */ gceClusterConfig: outputs.dataproc.v1beta2.GceClusterConfigResponse; /** * Optional. The Kubernetes Engine config for Dataproc clusters deployed to Kubernetes. Setting this is considered mutually exclusive with Compute Engine-based options such as gce_cluster_config, master_config, worker_config, secondary_worker_config, and autoscaling_config. */ gkeClusterConfig: outputs.dataproc.v1beta2.GkeClusterConfigResponse; /** * Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1beta2/instance/attributes/dataproc-role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi */ initializationActions: outputs.dataproc.v1beta2.NodeInitializationActionResponse[]; /** * Optional. The config setting for auto delete cluster schedule. */ lifecycleConfig: outputs.dataproc.v1beta2.LifecycleConfigResponse; /** * Optional. The Compute Engine config settings for the master instance in a cluster. */ masterConfig: outputs.dataproc.v1beta2.InstanceGroupConfigResponse; /** * Optional. Metastore configuration. */ metastoreConfig: outputs.dataproc.v1beta2.MetastoreConfigResponse; /** * Optional. The Compute Engine config settings for additional worker instances in a cluster. */ secondaryWorkerConfig: outputs.dataproc.v1beta2.InstanceGroupConfigResponse; /** * Optional. Security related configuration. */ securityConfig: outputs.dataproc.v1beta2.SecurityConfigResponse; /** * Optional. The config settings for software inside the cluster. */ softwareConfig: outputs.dataproc.v1beta2.SoftwareConfigResponse; /** * Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs data, such as Spark and MapReduce history files. If you do not specify a temp bucket, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's temp bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket. The default bucket has a TTL of 90 days, but you can use any TTL (or none) if you specify a bucket. This field requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket. */ tempBucket: string; /** * Optional. The Compute Engine config settings for worker instances in a cluster. */ workerConfig: outputs.dataproc.v1beta2.InstanceGroupConfigResponse; } /** * Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. */ interface ClusterMetricsResponse { /** * The HDFS metrics. */ hdfsMetrics: { [key: string]: string; }; /** * The YARN metrics. */ yarnMetrics: { [key: string]: string; }; } /** * A selector that chooses target cluster for jobs based on metadata. */ interface ClusterSelectorResponse { /** * The cluster labels. Cluster must have all labels to match. */ clusterLabels: { [key: string]: string; }; /** * Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster.If unspecified, the zone of the first cluster matching the selector is used. */ zone: string; } /** * The status of a cluster and its instances. */ interface ClusterStatusResponse { /** * Optional details of cluster's state. */ detail: string; /** * The cluster's state. */ state: string; /** * Time when this state was entered (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)). */ stateStartTime: string; /** * Additional state information that includes status reported by the agent. */ substate: string; } /** * Specifies the config of disk options for a group of VM instances. */ interface DiskConfigResponse { /** * Optional. Size in GB of the boot disk (default is 500GB). */ bootDiskSizeGb: number; /** * Optional. Type of the boot disk (default is "pd-standard"). Valid values: "pd-balanced" (Persistent Disk Balanced Solid State Drive), "pd-ssd" (Persistent Disk Solid State Drive), or "pd-standard" (Persistent Disk Hard Disk Drive). See Disk types (https://cloud.google.com/compute/docs/disks#disk-types). */ bootDiskType: string; /** * Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries. */ numLocalSsds: number; } /** * Encryption settings for the cluster. */ interface EncryptionConfigResponse { /** * Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster. */ gcePdKmsKeyName: string; } /** * Endpoint config for this cluster */ interface EndpointConfigResponse { /** * Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false. */ enableHttpPortAccess: boolean; /** * The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true. */ httpPorts: { [key: string]: string; }; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. */ interface GceClusterConfigResponse { /** * Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses. */ internalIpOnly: boolean; /** * The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)). */ metadata: { [key: string]: string; }; /** * Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks (https://cloud.google.com/compute/docs/subnetworks) for more information).A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default projects/[project_id]/regions/global/default default */ networkUri: string; /** * Optional. Node Group Affinity for sole-tenant clusters. */ nodeGroupAffinity: outputs.dataproc.v1beta2.NodeGroupAffinityResponse; /** * Optional. The type of IPv6 access for a cluster. */ privateIpv6GoogleAccess: string; /** * Optional. Reservation Affinity for consuming Zonal reservation. */ reservationAffinity: outputs.dataproc.v1beta2.ReservationAffinityResponse; /** * Optional. The Dataproc service account (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/service-accounts#service_accounts_in_dataproc) (also see VM Data Plane identity (https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-principals#vm_service_account_data_plane_identity)) used by Dataproc cluster VM instances to access Google Cloud Platform services.If not specified, the Compute Engine default service account (https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used. */ serviceAccount: string; /** * Optional. The URIs of service account scopes to be included in Compute Engine instances. The following base set of scopes is always included: https://www.googleapis.com/auth/cloud.useraccounts.readonly https://www.googleapis.com/auth/devstorage.read_write https://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided: https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/bigtable.admin.table https://www.googleapis.com/auth/bigtable.data https://www.googleapis.com/auth/devstorage.full_control */ serviceAccountScopes: string[]; /** * Optional. Shielded Instance Config for clusters using Compute Engine Shielded VMs (https://cloud.google.com/security/shielded-cloud/shielded-vm). */ shieldedInstanceConfig: outputs.dataproc.v1beta2.ShieldedInstanceConfigResponse; /** * Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0 projects/[project_id]/regions/us-east1/subnetworks/sub0 sub0 */ subnetworkUri: string; /** * The Compute Engine tags to add to all instances (see Tagging instances (https://cloud.google.com/compute/docs/label-or-tag-resources#tags)). */ tags: string[]; /** * Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the "global" region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] us-central1-f */ zoneUri: string; } /** * The GKE config for this cluster. */ interface GkeClusterConfigResponse { /** * Optional. A target for the deployment. */ namespacedGkeDeploymentTarget: outputs.dataproc.v1beta2.NamespacedGkeDeploymentTargetResponse; } /** * A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). */ interface HadoopJobResponse { /** * Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission. */ args: string[]; /** * Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks. */ fileUris: string[]; /** * Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1beta2.LoggingConfigResponse; /** * The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris. */ mainClass: string; /** * The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar' */ mainJarFileUri: string; /** * Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code. */ properties: { [key: string]: string; }; } /** * A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. */ interface HiveJobResponse { /** * Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. */ continueOnFailure: boolean; /** * Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs. */ jarFileUris: string[]; /** * Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code. */ properties: { [key: string]: string; }; /** * The HCFS URI of the script that contains Hive queries. */ queryFileUri: string; /** * A list of queries. */ queryList: outputs.dataproc.v1beta2.QueryListResponse; /** * Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name="value";). */ scriptVariables: { [key: string]: string; }; } /** * Configuration for the size bounds of an instance group, including its proportional size to other groups. */ interface InstanceGroupAutoscalingPolicyConfigResponse { /** * Optional. Maximum number of instances for this group. Required for primary workers. Note that by default, clusters will not use secondary workers. Required for secondary workers if the minimum secondary instances is set.Primary workers - Bounds: [min_instances, ). Required. Secondary workers - Bounds: [min_instances, ). Default: 0. */ maxInstances: number; /** * Optional. Minimum number of instances for this group.Primary workers - Bounds: 2, max_instances. Default: 2. Secondary workers - Bounds: 0, max_instances. Default: 0. */ minInstances: number; /** * Optional. Weight for the instance group, which is used to determine the fraction of total workers in the cluster from this instance group. For example, if primary workers have weight 2, and secondary workers have weight 1, the cluster will have approximately 2 primary workers for each secondary worker.The cluster may not reach the specified balance if constrained by min/max bounds or other autoscaling settings. For example, if max_instances for secondary workers is 0, then only primary workers will be added. The cluster can also be out of balance when created.If weight is not set on any instance group, the cluster will default to equal weight for all groups: the cluster will attempt to maintain an equal number of workers in each group within the configured size bounds for each group. If weight is set for one group only, the cluster will default to zero weight on the unset group. For example if weight is set only on primary workers, the cluster will use primary workers only and no secondary workers. */ weight: number; } /** * The config settings for Compute Engine resources in an instance group, such as a master or worker group. */ interface InstanceGroupConfigResponse { /** * Optional. The Compute Engine accelerator configuration for these instances. */ accelerators: outputs.dataproc.v1beta2.AcceleratorConfigResponse[]; /** * Optional. Disk option config settings. */ diskConfig: outputs.dataproc.v1beta2.DiskConfigResponse; /** * Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default. */ imageUri: string; /** * The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group. */ instanceNames: string[]; /** * List of references to Compute Engine instances. */ instanceReferences: outputs.dataproc.v1beta2.InstanceReferenceResponse[]; /** * Specifies that this instance group contains preemptible instances. */ isPreemptible: boolean; /** * Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2. */ machineTypeUri: string; /** * The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups. */ managedGroupConfig: outputs.dataproc.v1beta2.ManagedGroupConfigResponse; /** * Specifies the minimum cpu platform for the Instance Group. See Dataproc -> Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu). */ minCpuPlatform: string; /** * Optional. The number of VM instances in the instance group. For HA cluster master_config groups, must be set to 3. For standard cluster master_config groups, must be set to 1. */ numInstances: number; /** * Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE. */ preemptibility: string; } /** * A reference to a Compute Engine instance. */ interface InstanceReferenceResponse { /** * The unique identifier of the Compute Engine instance. */ instanceId: string; /** * The user-friendly name of the Compute Engine instance. */ instanceName: string; /** * The public key used for sharing data with this instance. */ publicKey: string; } /** * Dataproc job config. */ interface JobPlacementResponse { /** * Optional. Cluster labels to identify a cluster where the job will be submitted. */ clusterLabels: { [key: string]: string; }; /** * The name of the cluster where the job will be submitted. */ clusterName: string; /** * A cluster UUID generated by the Dataproc service when the job is submitted. */ clusterUuid: string; } /** * Encapsulates the full scoping used to reference a job. */ interface JobReferenceResponse { /** * Optional. The job ID, which must be unique within the project. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.If not specified by the caller, the job ID will be provided by the server. */ jobId: string; /** * Optional. The ID of the Google Cloud Platform project that the job belongs to. If specified, must match the request project ID. */ project: string; } /** * Job scheduling options. */ interface JobSchedulingResponse { /** * Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10. */ maxFailuresPerHour: number; /** * Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240. */ maxFailuresTotal: number; } /** * Dataproc job status. */ interface JobStatusResponse { /** * Optional Job state details, such as an error description if the state is ERROR. */ details: string; /** * A state message specifying the overall job state. */ state: string; /** * The time when this state was entered. */ stateStartTime: string; /** * Additional state information, which includes status reported by the agent. */ substate: string; } /** * Specifies Kerberos related configuration. */ interface KerberosConfigResponse { /** * Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship. */ crossRealmTrustAdminServer: string; /** * Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship. */ crossRealmTrustKdc: string; /** * Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust. */ crossRealmTrustRealm: string; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the shared password between the on-cluster Kerberos realm and the remote trusted realm, in a cross realm trust relationship. */ crossRealmTrustSharedPasswordUri: string; /** * Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster. */ enableKerberos: boolean; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database. */ kdcDbKeyUri: string; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided key. For the self-signed certificate, this password is generated by Dataproc. */ keyPasswordUri: string; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided keystore. For the self-signed certificate, this password is generated by Dataproc. */ keystorePasswordUri: string; /** * Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate. */ keystoreUri: string; /** * Optional. The uri of the KMS key used to encrypt various sensitive files. */ kmsKeyUri: string; /** * Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm. */ realm: string; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password. */ rootPrincipalPasswordUri: string; /** * Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used. */ tgtLifetimeHours: number; /** * Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided truststore. For the self-signed certificate, this password is generated by Dataproc. */ truststorePasswordUri: string; /** * Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate. */ truststoreUri: string; } /** * Specifies the cluster auto-delete schedule configuration. */ interface LifecycleConfigResponse { /** * Optional. The time when cluster will be auto-deleted. (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)). */ autoDeleteTime: string; /** * Optional. The lifetime duration of cluster. The cluster will be auto-deleted at the end of this period. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)). */ autoDeleteTtl: string; /** * Optional. The duration to keep the cluster alive while idling (when no jobs are running). Passing this threshold will cause the cluster to be deleted. Minimum value is 5 minutes; maximum value is 14 days (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)). */ idleDeleteTtl: string; /** * The time when cluster became idle (most recent job finished) and became eligible for deletion due to idleness (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)). */ idleStartTime: string; } /** * The runtime logging config of the job. */ interface LoggingConfigResponse { /** * The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG' */ driverLogLevels: { [key: string]: string; }; } /** * Cluster that is managed by the workflow. */ interface ManagedClusterResponse { /** * The cluster name prefix. A unique cluster name will be formed by appending a random suffix.The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters. */ clusterName: string; /** * The cluster configuration. */ config: outputs.dataproc.v1beta2.ClusterConfigResponse; /** * Optional. The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given cluster. */ labels: { [key: string]: string; }; } /** * Specifies the resources used to actively manage an instance group. */ interface ManagedGroupConfigResponse { /** * The name of the Instance Group Manager for this group. */ instanceGroupManagerName: string; /** * The name of the Instance Template used for the Managed Instance Group. */ instanceTemplateName: string; } /** * Specifies a Metastore configuration. */ interface MetastoreConfigResponse { /** * Resource name of an existing Dataproc Metastore service.Example: projects/[project_id]/locations/[dataproc_region]/services/[service-name] */ dataprocMetastoreService: string; } /** * A full, namespace-isolated deployment target for an existing GKE cluster. */ interface NamespacedGkeDeploymentTargetResponse { /** * Optional. A namespace within the GKE cluster to deploy into. */ clusterNamespace: string; /** * Optional. The target GKE cluster to deploy to. Format: 'projects/{project}/locations/{location}/clusters/{cluster_id}' */ targetGkeCluster: string; } /** * Node Group Affinity for clusters using sole-tenant node groups. */ interface NodeGroupAffinityResponse { /** * The URI of a sole-tenant node group resource (https://cloud.google.com/compute/docs/reference/rest/v1/nodeGroups) that the cluster will be created on.A full URL, partial URI, or node group name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 node-group-1 */ nodeGroupUri: string; } /** * Specifies an executable to run on a fully configured node and a timeout period for executable completion. */ interface NodeInitializationActionResponse { /** * Cloud Storage URI of executable file. */ executableFile: string; /** * Optional. Amount of time executable has to complete. Default is 10 minutes (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period. */ executionTimeout: string; } /** * A job executed by the workflow. */ interface OrderedJobResponse { /** * Optional. Job is a Hadoop job. */ hadoopJob: outputs.dataproc.v1beta2.HadoopJobResponse; /** * Optional. Job is a Hive job. */ hiveJob: outputs.dataproc.v1beta2.HiveJobResponse; /** * Optional. The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given job. */ labels: { [key: string]: string; }; /** * Optional. Job is a Pig job. */ pigJob: outputs.dataproc.v1beta2.PigJobResponse; /** * Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow. */ prerequisiteStepIds: string[]; /** * Optional. Job is a Presto job. */ prestoJob: outputs.dataproc.v1beta2.PrestoJobResponse; /** * Optional. Job is a PySpark job. */ pysparkJob: outputs.dataproc.v1beta2.PySparkJobResponse; /** * Optional. Job scheduling configuration. */ scheduling: outputs.dataproc.v1beta2.JobSchedulingResponse; /** * Optional. Job is a Spark job. */ sparkJob: outputs.dataproc.v1beta2.SparkJobResponse; /** * Optional. Job is a SparkR job. */ sparkRJob: outputs.dataproc.v1beta2.SparkRJobResponse; /** * Optional. Job is a SparkSql job. */ sparkSqlJob: outputs.dataproc.v1beta2.SparkSqlJobResponse; /** * The step id. The id must be unique among all jobs within the template.The step id is used as prefix for job id, as job goog-dataproc-workflow-step-id label, and in prerequisiteStepIds field from other steps.The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between 3 and 50 characters. */ stepId: string; } /** * Configuration for parameter validation. */ interface ParameterValidationResponse { /** * Validation based on regular expressions. */ regex: outputs.dataproc.v1beta2.RegexValidationResponse; /** * Validation based on a list of allowed values. */ values: outputs.dataproc.v1beta2.ValueValidationResponse; } /** * A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. */ interface PigJobResponse { /** * Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. */ continueOnFailure: boolean; /** * Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1beta2.LoggingConfigResponse; /** * Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code. */ properties: { [key: string]: string; }; /** * The HCFS URI of the script that contains the Pig queries. */ queryFileUri: string; /** * A list of queries. */ queryList: outputs.dataproc.v1beta2.QueryListResponse; /** * Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]). */ scriptVariables: { [key: string]: string; }; } /** * A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT: The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/presto) must be enabled when the cluster is created to submit a Presto job to the cluster. */ interface PrestoJobResponse { /** * Optional. Presto client tags to attach to this query */ clientTags: string[]; /** * Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. */ continueOnFailure: boolean; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1beta2.LoggingConfigResponse; /** * Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats */ outputFormat: string; /** * Optional. A mapping of property names to values. Used to set Presto session properties (https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI */ properties: { [key: string]: string; }; /** * The HCFS URI of the script that contains SQL queries. */ queryFileUri: string; /** * A list of queries. */ queryList: outputs.dataproc.v1beta2.QueryListResponse; } /** * A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. */ interface PySparkJobResponse { /** * Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission. */ args: string[]; /** * Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks. */ fileUris: string[]; /** * Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1beta2.LoggingConfigResponse; /** * The HCFS URI of the main Python file to use as the driver. Must be a .py file. */ mainPythonFileUri: string; /** * Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code. */ properties: { [key: string]: string; }; /** * Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip. */ pythonFileUris: string[]; } /** * A list of queries to run on a cluster. */ interface QueryListResponse { /** * The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } } */ queries: string[]; } /** * Validation based on regular expressions. */ interface RegexValidationResponse { /** * RE2 regular expressions used to validate the parameter's value. The value must match the regex in its entirety (substring matches are not sufficient). */ regexes: string[]; } /** * Reservation Affinity for consuming Zonal reservation. */ interface ReservationAffinityResponse { /** * Optional. Type of reservation to consume */ consumeReservationType: string; /** * Optional. Corresponds to the label key of reservation resource. */ key: string; /** * Optional. Corresponds to the label values of reservation resource. */ values: string[]; } /** * Security related configuration, including encryption, Kerberos, etc. */ interface SecurityConfigResponse { /** * Optional. Kerberos related configuration. */ kerberosConfig: outputs.dataproc.v1beta2.KerberosConfigResponse; } /** * Shielded Instance Config for clusters using Compute Engine Shielded VMs (https://cloud.google.com/security/shielded-cloud/shielded-vm). */ interface ShieldedInstanceConfigResponse { /** * Optional. Defines whether instances have integrity monitoring enabled. */ enableIntegrityMonitoring: boolean; /** * Optional. Defines whether instances have Secure Boot enabled. */ enableSecureBoot: boolean; /** * Optional. Defines whether instances have the vTPM enabled. */ enableVtpm: boolean; } /** * Specifies the selection and config of software inside the cluster. */ interface SoftwareConfigResponse { /** * Optional. The version of software inside the cluster. It must be one of the supported Dataproc Versions (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as "1.2" (including a subminor version, such as "1.2.29"), or the "preview" version (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version. */ imageVersion: string; /** * The set of optional components to activate on the cluster. */ optionalComponents: string[]; /** * Optional. The properties to set on daemon config files.Property keys are specified in prefix:property format, for example core:hadoop.tmp.dir. The following are supported prefixes and their mappings: capacity-scheduler: capacity-scheduler.xml core: core-site.xml distcp: distcp-default.xml hdfs: hdfs-site.xml hive: hive-site.xml mapred: mapred-site.xml pig: pig.properties spark: spark-defaults.conf yarn: yarn-site.xmlFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties). */ properties: { [key: string]: string; }; } /** * A Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. The specification of the main method to call to drive the job. Specify either the jar file that contains the main class or the main class name. To pass both a main jar and a main class in that jar, add the jar to CommonJob.jar_file_uris, and then specify the main class name in main_class. */ interface SparkJobResponse { /** * Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission. */ args: string[]; /** * Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks. */ fileUris: string[]; /** * Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1beta2.LoggingConfigResponse; /** * The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris. */ mainClass: string; /** * The HCFS URI of the jar file that contains the main class. */ mainJarFileUri: string; /** * Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code. */ properties: { [key: string]: string; }; } /** * A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/sparkr.html) applications on YARN. */ interface SparkRJobResponse { /** * Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip. */ archiveUris: string[]; /** * Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission. */ args: string[]; /** * Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks. */ fileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1beta2.LoggingConfigResponse; /** * The HCFS URI of the main R file to use as the driver. Must be a .R file. */ mainRFileUri: string; /** * Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code. */ properties: { [key: string]: string; }; } /** * A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. */ interface SparkSqlJobResponse { /** * Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH. */ jarFileUris: string[]; /** * Optional. The runtime log config for job execution. */ loggingConfig: outputs.dataproc.v1beta2.LoggingConfigResponse; /** * Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten. */ properties: { [key: string]: string; }; /** * The HCFS URI of the script that contains SQL queries. */ queryFileUri: string; /** * A list of queries. */ queryList: outputs.dataproc.v1beta2.QueryListResponse; /** * Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";). */ scriptVariables: { [key: string]: string; }; } /** * A configurable parameter that replaces one or more fields in the template. Parameterizable fields: - Labels - File uris - Job properties - Job arguments - Script variables - Main class (in HadoopJob and SparkJob) - Zone (in ClusterSelector) */ interface TemplateParameterResponse { /** * Optional. Brief description of the parameter. Must not exceed 1024 characters. */ description: string; /** * Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter's list of field paths.A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template's cluster selector would be specified as placement.clusterSelector.zone.Also, field paths can reference fields using the following syntax: Values in maps can be referenced by key: labels'key' placement.clusterSelector.clusterLabels'key' placement.managedCluster.labels'key' placement.clusterSelector.clusterLabels'key' jobs'step-id'.labels'key' Jobs in the jobs list can be referenced by step-id: jobs'step-id'.hadoopJob.mainJarFileUri jobs'step-id'.hiveJob.queryFileUri jobs'step-id'.pySparkJob.mainPythonFileUri jobs'step-id'.hadoopJob.jarFileUris0 jobs'step-id'.hadoopJob.archiveUris0 jobs'step-id'.hadoopJob.fileUris0 jobs'step-id'.pySparkJob.pythonFileUris0 Items in repeated fields can be referenced by a zero-based index: jobs'step-id'.sparkJob.args0 Other examples: jobs'step-id'.hadoopJob.properties'key' jobs'step-id'.hadoopJob.args0 jobs'step-id'.hiveJob.scriptVariables'key' jobs'step-id'.hadoopJob.mainJarFileUri placement.clusterSelector.zoneIt may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: placement.clusterSelector.clusterLabels jobs'step-id'.sparkJob.args */ fields: string[]; /** * Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters. */ name: string; /** * Optional. Validation rules to be applied to this parameter's value. */ validation: outputs.dataproc.v1beta2.ParameterValidationResponse; } /** * Validation based on a list of allowed values. */ interface ValueValidationResponse { /** * List of allowed values for the parameter. */ values: string[]; } /** * Specifies workflow execution target.Either managed_cluster or cluster_selector is required. */ interface WorkflowTemplatePlacementResponse { /** * Optional. A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted. */ clusterSelector: outputs.dataproc.v1beta2.ClusterSelectorResponse; /** * Optional. A cluster that is managed by the workflow. */ managedCluster: outputs.dataproc.v1beta2.ManagedClusterResponse; } /** * A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.Beta Feature: This report is available for testing purposes only. It may be changed before final release. */ interface YarnApplicationResponse { /** * The application name. */ name: string; /** * The numerical progress of the application, from 1 to 100. */ progress: number; /** * The application state. */ state: string; /** * The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access. */ trackingUrl: string; } } } export declare namespace datastore { namespace v1 { /** * A property of an index. */ interface GoogleDatastoreAdminV1IndexedPropertyResponse { /** * The indexed property's direction. Must not be DIRECTION_UNSPECIFIED. */ direction: string; /** * The property name to index. */ name: string; } } } export declare namespace datastream { namespace v1 { /** * AVRO file format configuration. */ interface AvroFileFormatResponse { } /** * Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded. */ interface BackfillAllStrategyResponse { /** * MySQL data source objects to avoid backfilling. */ mysqlExcludedObjects: outputs.datastream.v1.MysqlRdbmsResponse; /** * Oracle data source objects to avoid backfilling. */ oracleExcludedObjects: outputs.datastream.v1.OracleRdbmsResponse; /** * PostgreSQL data source objects to avoid backfilling. */ postgresqlExcludedObjects: outputs.datastream.v1.PostgresqlRdbmsResponse; } /** * Backfill strategy to disable automatic backfill for the Stream's objects. */ interface BackfillNoneStrategyResponse { } /** * BigQuery destination configuration */ interface BigQueryDestinationConfigResponse { /** * The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. */ dataFreshness: string; /** * Single destination dataset. */ singleTargetDataset: outputs.datastream.v1.SingleTargetDatasetResponse; /** * Source hierarchy datasets. */ sourceHierarchyDatasets: outputs.datastream.v1.SourceHierarchyDatasetsResponse; } /** * BigQuery warehouse profile. */ interface BigQueryProfileResponse { } /** * Dataset template used for dynamic dataset creation. */ interface DatasetTemplateResponse { /** * If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. _. */ datasetIdPrefix: string; /** * Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. */ kmsKeyName: string; /** * The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations. */ location: string; } /** * The configuration of the stream destination. */ interface DestinationConfigResponse { /** * BigQuery destination configuration. */ bigqueryDestinationConfig: outputs.datastream.v1.BigQueryDestinationConfigResponse; /** * Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}` */ destinationConnectionProfile: string; /** * A configuration for how data should be loaded to Cloud Storage. */ gcsDestinationConfig: outputs.datastream.v1.GcsDestinationConfigResponse; } /** * Configuration to drop large object values. */ interface DropLargeObjectsResponse { } /** * Represent a user-facing Error. */ interface ErrorResponse { /** * Additional information about the error. */ details: { [key: string]: string; }; /** * The time when the error occurred. */ errorTime: string; /** * A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses. */ errorUuid: string; /** * A message containing more information about the error that occurred. */ message: string; /** * A title that explains the reason for the error. */ reason: string; } /** * Forward SSH Tunnel connectivity. */ interface ForwardSshTunnelConnectivityResponse { /** * Hostname for the SSH tunnel. */ hostname: string; /** * Input only. SSH password. */ password: string; /** * Port for the SSH tunnel, default value is 22. */ port: number; /** * Input only. SSH private key. */ privateKey: string; /** * Username for the SSH tunnel. */ username: string; } /** * Google Cloud Storage destination configuration */ interface GcsDestinationConfigResponse { /** * AVRO file format configuration. */ avroFileFormat: outputs.datastream.v1.AvroFileFormatResponse; /** * The maximum duration for which new events are added before a file is closed and a new file is created. Values within the range of 15-60 seconds are allowed. */ fileRotationInterval: string; /** * The maximum file size to be saved in the bucket. */ fileRotationMb: number; /** * JSON file format configuration. */ jsonFileFormat: outputs.datastream.v1.JsonFileFormatResponse; /** * Path inside the Cloud Storage bucket to write data to. */ path: string; } /** * Cloud Storage bucket profile. */ interface GcsProfileResponse { /** * The Cloud Storage bucket name. */ bucket: string; /** * The root path inside the Cloud Storage bucket. */ rootPath: string; } /** * JSON file format configuration. */ interface JsonFileFormatResponse { /** * Compression of the loaded JSON file. */ compression: string; /** * The schema file format along JSON data files. */ schemaFileFormat: string; } /** * MySQL Column. */ interface MysqlColumnResponse { /** * Column collation. */ collation: string; /** * Column name. */ column: string; /** * The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html */ dataType: string; /** * Column length. */ length: number; /** * Whether or not the column can accept a null value. */ nullable: boolean; /** * The ordinal position of the column in the table. */ ordinalPosition: number; /** * Column precision. */ precision: number; /** * Whether or not the column represents a primary key. */ primaryKey: boolean; /** * Column scale. */ scale: number; } /** * MySQL database. */ interface MysqlDatabaseResponse { /** * Database name. */ database: string; /** * Tables in the database. */ mysqlTables: outputs.datastream.v1.MysqlTableResponse[]; } /** * MySQL database profile. */ interface MysqlProfileResponse { /** * Hostname for the MySQL connection. */ hostname: string; /** * Input only. Password for the MySQL connection. */ password: string; /** * Port for the MySQL connection, default value is 3306. */ port: number; /** * SSL configuration for the MySQL connection. */ sslConfig: outputs.datastream.v1.MysqlSslConfigResponse; /** * Username for the MySQL connection. */ username: string; } /** * MySQL database structure */ interface MysqlRdbmsResponse { /** * Mysql databases on the server */ mysqlDatabases: outputs.datastream.v1.MysqlDatabaseResponse[]; } /** * MySQL source configuration */ interface MysqlSourceConfigResponse { /** * MySQL objects to exclude from the stream. */ excludeObjects: outputs.datastream.v1.MysqlRdbmsResponse; /** * MySQL objects to retrieve from the source. */ includeObjects: outputs.datastream.v1.MysqlRdbmsResponse; /** * Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used. */ maxConcurrentBackfillTasks: number; /** * Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used. */ maxConcurrentCdcTasks: number; } /** * MySQL SSL configuration information. */ interface MysqlSslConfigResponse { /** * Input only. PEM-encoded certificate of the CA that signed the source database server's certificate. */ caCertificate: string; /** * Indicates whether the ca_certificate field is set. */ caCertificateSet: boolean; /** * Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory. */ clientCertificate: string; /** * Indicates whether the client_certificate field is set. */ clientCertificateSet: boolean; /** * Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory. */ clientKey: string; /** * Indicates whether the client_key field is set. */ clientKeySet: boolean; } /** * MySQL table. */ interface MysqlTableResponse { /** * MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything. */ mysqlColumns: outputs.datastream.v1.MysqlColumnResponse[]; /** * Table name. */ table: string; } /** * Oracle Column. */ interface OracleColumnResponse { /** * Column name. */ column: string; /** * The Oracle data type. */ dataType: string; /** * Column encoding. */ encoding: string; /** * Column length. */ length: number; /** * Whether or not the column can accept a null value. */ nullable: boolean; /** * The ordinal position of the column in the table. */ ordinalPosition: number; /** * Column precision. */ precision: number; /** * Whether or not the column represents a primary key. */ primaryKey: boolean; /** * Column scale. */ scale: number; } /** * Oracle database profile. */ interface OracleProfileResponse { /** * Connection string attributes */ connectionAttributes: { [key: string]: string; }; /** * Database for the Oracle connection. */ databaseService: string; /** * Hostname for the Oracle connection. */ hostname: string; /** * Optional. SSL configuration for the Oracle connection. */ oracleSslConfig: outputs.datastream.v1.OracleSslConfigResponse; /** * Password for the Oracle connection. */ password: string; /** * Port for the Oracle connection, default value is 1521. */ port: number; /** * Username for the Oracle connection. */ username: string; } /** * Oracle database structure. */ interface OracleRdbmsResponse { /** * Oracle schemas/databases in the database server. */ oracleSchemas: outputs.datastream.v1.OracleSchemaResponse[]; } /** * Oracle schema. */ interface OracleSchemaResponse { /** * Tables in the schema. */ oracleTables: outputs.datastream.v1.OracleTableResponse[]; /** * Schema name. */ schema: string; } /** * Oracle data source configuration */ interface OracleSourceConfigResponse { /** * Drop large object values. */ dropLargeObjects: outputs.datastream.v1.DropLargeObjectsResponse; /** * Oracle objects to exclude from the stream. */ excludeObjects: outputs.datastream.v1.OracleRdbmsResponse; /** * Oracle objects to include in the stream. */ includeObjects: outputs.datastream.v1.OracleRdbmsResponse; /** * Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used. */ maxConcurrentBackfillTasks: number; /** * Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used. */ maxConcurrentCdcTasks: number; /** * Stream large object values. NOTE: This feature is currently experimental. */ streamLargeObjects: outputs.datastream.v1.StreamLargeObjectsResponse; } /** * Oracle SSL configuration information. */ interface OracleSslConfigResponse { /** * Input only. PEM-encoded certificate of the CA that signed the source database server's certificate. */ caCertificate: string; /** * Indicates whether the ca_certificate field has been set for this Connection-Profile. */ caCertificateSet: boolean; } /** * Oracle table. */ interface OracleTableResponse { /** * Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. */ oracleColumns: outputs.datastream.v1.OracleColumnResponse[]; /** * Table name. */ table: string; } /** * PostgreSQL Column. */ interface PostgresqlColumnResponse { /** * Column name. */ column: string; /** * The PostgreSQL data type. */ dataType: string; /** * Column length. */ length: number; /** * Whether or not the column can accept a null value. */ nullable: boolean; /** * The ordinal position of the column in the table. */ ordinalPosition: number; /** * Column precision. */ precision: number; /** * Whether or not the column represents a primary key. */ primaryKey: boolean; /** * Column scale. */ scale: number; } /** * PostgreSQL database profile. */ interface PostgresqlProfileResponse { /** * Database for the PostgreSQL connection. */ database: string; /** * Hostname for the PostgreSQL connection. */ hostname: string; /** * Password for the PostgreSQL connection. */ password: string; /** * Port for the PostgreSQL connection, default value is 5432. */ port: number; /** * Username for the PostgreSQL connection. */ username: string; } /** * PostgreSQL database structure. */ interface PostgresqlRdbmsResponse { /** * PostgreSQL schemas in the database server. */ postgresqlSchemas: outputs.datastream.v1.PostgresqlSchemaResponse[]; } /** * PostgreSQL schema. */ interface PostgresqlSchemaResponse { /** * Tables in the schema. */ postgresqlTables: outputs.datastream.v1.PostgresqlTableResponse[]; /** * Schema name. */ schema: string; } /** * PostgreSQL data source configuration */ interface PostgresqlSourceConfigResponse { /** * PostgreSQL objects to exclude from the stream. */ excludeObjects: outputs.datastream.v1.PostgresqlRdbmsResponse; /** * PostgreSQL objects to include in the stream. */ includeObjects: outputs.datastream.v1.PostgresqlRdbmsResponse; /** * Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used. */ maxConcurrentBackfillTasks: number; /** * The name of the publication that includes the set of all tables that are defined in the stream's include_objects. */ publication: string; /** * Immutable. The name of the logical replication slot that's configured with the pgoutput plugin. */ replicationSlot: string; } /** * PostgreSQL table. */ interface PostgresqlTableResponse { /** * PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. */ postgresqlColumns: outputs.datastream.v1.PostgresqlColumnResponse[]; /** * Table name. */ table: string; } /** * Private Connectivity */ interface PrivateConnectivityResponse { /** * A reference to a private connection resource. Format: `projects/{project}/locations/{location}/privateConnections/{name}` */ privateConnection: string; } /** * A single target dataset to which all data will be streamed. */ interface SingleTargetDatasetResponse { /** * The dataset ID of the target dataset. DatasetIds allowed characters: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference. */ datasetId: string; } /** * The configuration of the stream source. */ interface SourceConfigResponse { /** * MySQL data source configuration. */ mysqlSourceConfig: outputs.datastream.v1.MysqlSourceConfigResponse; /** * Oracle data source configuration. */ oracleSourceConfig: outputs.datastream.v1.OracleSourceConfigResponse; /** * PostgreSQL data source configuration. */ postgresqlSourceConfig: outputs.datastream.v1.PostgresqlSourceConfigResponse; /** * Source connection profile resoource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}` */ sourceConnectionProfile: string; } /** * Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. */ interface SourceHierarchyDatasetsResponse { /** * The dataset template to use for dynamic dataset creation. */ datasetTemplate: outputs.datastream.v1.DatasetTemplateResponse; } /** * Static IP address connectivity. Used when the source database is configured to allow incoming connections from the Datastream public IP addresses for the region specified in the connection profile. */ interface StaticServiceIpConnectivityResponse { } /** * Configuration to stream large object values. */ interface StreamLargeObjectsResponse { } /** * The VPC Peering configuration is used to create VPC peering between Datastream and the consumer's VPC. */ interface VpcPeeringConfigResponse { /** * A free subnet for peering. (CIDR of /29) */ subnet: string; /** * Fully qualified name of the VPC that Datastream will peer to. Format: `projects/{project}/global/{networks}/{name}` */ vpc: string; } } namespace v1alpha1 { /** * AVRO file format configuration. */ interface AvroFileFormatResponse { } /** * Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded. */ interface BackfillAllStrategyResponse { /** * MySQL data source objects to avoid backfilling. */ mysqlExcludedObjects: outputs.datastream.v1alpha1.MysqlRdbmsResponse; /** * Oracle data source objects to avoid backfilling. */ oracleExcludedObjects: outputs.datastream.v1alpha1.OracleRdbmsResponse; } /** * Backfill strategy to disable automatic backfill for the Stream's objects. */ interface BackfillNoneStrategyResponse { } /** * The configuration of the stream destination. */ interface DestinationConfigResponse { /** * Destination connection profile identifier. */ destinationConnectionProfileName: string; /** * GCS destination configuration. */ gcsDestinationConfig: outputs.datastream.v1alpha1.GcsDestinationConfigResponse; } /** * Configuration to drop large object values. */ interface DropLargeObjectsResponse { } /** * Represent a user-facing Error. */ interface ErrorResponse { /** * Additional information about the error. */ details: { [key: string]: string; }; /** * The time when the error occurred. */ errorTime: string; /** * A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses. */ errorUuid: string; /** * A message containing more information about the error that occurred. */ message: string; /** * A title that explains the reason for the error. */ reason: string; } /** * Forward SSH Tunnel connectivity. */ interface ForwardSshTunnelConnectivityResponse { /** * Hostname for the SSH tunnel. */ hostname: string; /** * Input only. SSH password. */ password: string; /** * Port for the SSH tunnel, default value is 22. */ port: number; /** * Input only. SSH private key. */ privateKey: string; /** * Username for the SSH tunnel. */ username: string; } /** * Google Cloud Storage destination configuration */ interface GcsDestinationConfigResponse { /** * AVRO file format configuration. */ avroFileFormat: outputs.datastream.v1alpha1.AvroFileFormatResponse; /** * The maximum duration for which new events are added before a file is closed and a new file is created. */ fileRotationInterval: string; /** * The maximum file size to be saved in the bucket. */ fileRotationMb: number; /** * File format that data should be written in. Deprecated field (b/169501737) - use file_format instead. * * @deprecated File format that data should be written in. Deprecated field (b/169501737) - use file_format instead. */ gcsFileFormat: string; /** * JSON file format configuration. */ jsonFileFormat: outputs.datastream.v1alpha1.JsonFileFormatResponse; /** * Path inside the Cloud Storage bucket to write data to. */ path: string; } /** * Cloud Storage bucket profile. */ interface GcsProfileResponse { /** * The full project and resource path for Cloud Storage bucket including the name. */ bucketName: string; /** * The root path inside the Cloud Storage bucket. */ rootPath: string; } /** * JSON file format configuration. */ interface JsonFileFormatResponse { /** * Compression of the loaded JSON file. */ compression: string; /** * The schema file format along JSON data files. */ schemaFileFormat: string; } /** * MySQL Column. */ interface MysqlColumnResponse { /** * Column collation. */ collation: string; /** * Column name. */ columnName: string; /** * The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html */ dataType: string; /** * Column length. */ length: number; /** * Whether or not the column can accept a null value. */ nullable: boolean; /** * The ordinal position of the column in the table. */ ordinalPosition: number; /** * Whether or not the column represents a primary key. */ primaryKey: boolean; } /** * MySQL database. */ interface MysqlDatabaseResponse { /** * Database name. */ databaseName: string; /** * Tables in the database. */ mysqlTables: outputs.datastream.v1alpha1.MysqlTableResponse[]; } /** * MySQL database profile. */ interface MysqlProfileResponse { /** * Hostname for the MySQL connection. */ hostname: string; /** * Input only. Password for the MySQL connection. */ password: string; /** * Port for the MySQL connection, default value is 3306. */ port: number; /** * SSL configuration for the MySQL connection. */ sslConfig: outputs.datastream.v1alpha1.MysqlSslConfigResponse; /** * Username for the MySQL connection. */ username: string; } /** * MySQL database structure */ interface MysqlRdbmsResponse { /** * Mysql databases on the server */ mysqlDatabases: outputs.datastream.v1alpha1.MysqlDatabaseResponse[]; } /** * MySQL source configuration */ interface MysqlSourceConfigResponse { /** * MySQL objects to retrieve from the source. */ allowlist: outputs.datastream.v1alpha1.MysqlRdbmsResponse; /** * MySQL objects to exclude from the stream. */ rejectlist: outputs.datastream.v1alpha1.MysqlRdbmsResponse; } /** * MySQL SSL configuration information. */ interface MysqlSslConfigResponse { /** * Input only. PEM-encoded certificate of the CA that signed the source database server's certificate. */ caCertificate: string; /** * Indicates whether the ca_certificate field is set. */ caCertificateSet: boolean; /** * Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory. */ clientCertificate: string; /** * Indicates whether the client_certificate field is set. */ clientCertificateSet: boolean; /** * Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory. */ clientKey: string; /** * Indicates whether the client_key field is set. */ clientKeySet: boolean; } /** * MySQL table. */ interface MysqlTableResponse { /** * MySQL columns in the database. When unspecified as part of include/exclude lists, includes/excludes everything. */ mysqlColumns: outputs.datastream.v1alpha1.MysqlColumnResponse[]; /** * Table name. */ tableName: string; } /** * No connectivity settings. */ interface NoConnectivitySettingsResponse { } /** * Oracle Column. */ interface OracleColumnResponse { /** * Column name. */ columnName: string; /** * The Oracle data type. */ dataType: string; /** * Column encoding. */ encoding: string; /** * Column length. */ length: number; /** * Whether or not the column can accept a null value. */ nullable: boolean; /** * The ordinal position of the column in the table. */ ordinalPosition: number; /** * Column precision. */ precision: number; /** * Whether or not the column represents a primary key. */ primaryKey: boolean; /** * Column scale. */ scale: number; } /** * Oracle database profile. */ interface OracleProfileResponse { /** * Connection string attributes */ connectionAttributes: { [key: string]: string; }; /** * Database for the Oracle connection. */ databaseService: string; /** * Hostname for the Oracle connection. */ hostname: string; /** * Password for the Oracle connection. */ password: string; /** * Port for the Oracle connection, default value is 1521. */ port: number; /** * Username for the Oracle connection. */ username: string; } /** * Oracle database structure. */ interface OracleRdbmsResponse { /** * Oracle schemas/databases in the database server. */ oracleSchemas: outputs.datastream.v1alpha1.OracleSchemaResponse[]; } /** * Oracle schema. */ interface OracleSchemaResponse { /** * Tables in the schema. */ oracleTables: outputs.datastream.v1alpha1.OracleTableResponse[]; /** * Schema name. */ schemaName: string; } /** * Oracle data source configuration */ interface OracleSourceConfigResponse { /** * Oracle objects to include in the stream. */ allowlist: outputs.datastream.v1alpha1.OracleRdbmsResponse; /** * Drop large object values. */ dropLargeObjects: outputs.datastream.v1alpha1.DropLargeObjectsResponse; /** * Oracle objects to exclude from the stream. */ rejectlist: outputs.datastream.v1alpha1.OracleRdbmsResponse; } /** * Oracle table. */ interface OracleTableResponse { /** * Oracle columns in the schema. When unspecified as part of inclue/exclude lists, includes/excludes everything. */ oracleColumns: outputs.datastream.v1alpha1.OracleColumnResponse[]; /** * Table name. */ tableName: string; } /** * Private Connectivity */ interface PrivateConnectivityResponse { privateConnectionName: string; } /** * The configuration of the stream source. */ interface SourceConfigResponse { /** * MySQL data source configuration */ mysqlSourceConfig: outputs.datastream.v1alpha1.MysqlSourceConfigResponse; /** * Oracle data source configuration */ oracleSourceConfig: outputs.datastream.v1alpha1.OracleSourceConfigResponse; /** * Source connection profile identifier. */ sourceConnectionProfileName: string; } /** * Static IP address connectivity. */ interface StaticServiceIpConnectivityResponse { } /** * The VPC Peering configuration is used to create VPC peering between Datastream and the consumer's VPC. */ interface VpcPeeringConfigResponse { /** * A free subnet for peering. (CIDR of /29) */ subnet: string; /** * fully qualified name of the VPC Datastream will peer to. */ vpcName: string; } } } export declare namespace deploymentmanager { namespace alpha { /** * Async options that determine when a resource should finish. */ interface AsyncOptionsResponse { /** * Method regex where this policy will apply. */ methodMatch: string; /** * Deployment manager will poll instances for this API resource setting a RUNNING state, and blocking until polling conditions tell whether the resource is completed or failed. */ pollingOptions: outputs.deploymentmanager.alpha.PollingOptionsResponse; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.deploymentmanager.alpha.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Basic Auth used as a credential. */ interface BasicAuthResponse { password: string; user: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.deploymentmanager.alpha.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * CollectionOverride allows resource handling overrides for specific resources within a BaseType */ interface CollectionOverrideResponse { /** * The collection that identifies this resource within its service. */ collection: string; /** * Custom verb method mappings to support unordered list API mappings. */ methodMap: outputs.deploymentmanager.alpha.MethodMapResponse; /** * The options to apply to this resource-level override */ options: outputs.deploymentmanager.alpha.OptionsResponse; } /** * Label object for CompositeTypes */ interface CompositeTypeLabelEntryResponse { /** * Key of the label */ key: string; /** * Value of the label */ value: string; } interface ConfigFileResponse { /** * The contents of the file. */ content: string; } /** * The credential used by Deployment Manager and TypeProvider. Only one of the options is permitted. */ interface CredentialResponse { /** * Basic Auth Credential, only used by TypeProvider. */ basicAuth: outputs.deploymentmanager.alpha.BasicAuthResponse; /** * Service Account Credential, only used by Deployment. */ serviceAccount: outputs.deploymentmanager.alpha.ServiceAccountResponse; /** * Specify to use the project default credential, only supported by Deployment. */ useProjectDefault: boolean; } /** * Label object for Deployments */ interface DeploymentLabelEntryResponse { /** * Key of the label */ key: string; /** * Value of the label */ value: string; } /** * Output object for Deployments */ interface DeploymentOutputEntryResponse { /** * Key of the output */ key: string; /** * Value of the label */ value: string; } /** * Label object for DeploymentUpdate */ interface DeploymentUpdateLabelEntryResponse { /** * Key of the label */ key: string; /** * Value of the label */ value: string; } interface DeploymentUpdateResponse { /** * The user-provided default credential to use when deploying this preview. */ credential: outputs.deploymentmanager.alpha.CredentialResponse; /** * An optional user-provided description of the deployment after the current update has been applied. */ description: string; /** * Map of One Platform labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. */ labels: outputs.deploymentmanager.alpha.DeploymentUpdateLabelEntryResponse[]; /** * URL of the manifest representing the update configuration of this deployment. */ manifest: string; } interface DiagnosticResponse { /** * JsonPath expression on the resource that if non empty, indicates that this field needs to be extracted as a diagnostic. */ field: string; /** * Level to record this diagnostic. */ level: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } interface ImportFileResponse { /** * The contents of the file. */ content: string; /** * The name of the file. */ name: string; } /** * InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API. */ interface InputMappingResponse { /** * The name of the field that is going to be injected. */ fieldName: string; /** * The location where this mapping applies. */ location: string; /** * Regex to evaluate on method to decide if input applies. */ methodMatch: string; /** * A jsonPath expression to select an element. */ value: string; } interface InstancesBulkInsertOperationMetadataResponse { /** * Status information per location (location name is key). Example key: zones/us-central1-a */ perLocationStatus: { [key: string]: string; }; } /** * Deployment Manager will call these methods during the events of creation/deletion/update/get/setIamPolicy */ interface MethodMapResponse { /** * The action identifier for the create method to be used for this collection */ create: string; /** * The action identifier for the delete method to be used for this collection */ delete: string; /** * The action identifier for the get method to be used for this collection */ get: string; /** * The action identifier for the setIamPolicy method to be used for this collection */ setIamPolicy: string; /** * The action identifier for the update method to be used for this collection */ update: string; } interface OperationErrorErrorsItemResponse { /** * The error type identifier for this error. */ code: string; /** * Indicates the field in the request that caused the error. This property is optional. */ location: string; /** * An optional, human-readable error message. */ message: string; } /** * [Output Only] If errors are generated during processing of the operation, this field will be populated. */ interface OperationErrorResponse { /** * The array of errors encountered while processing this operation. */ errors: outputs.deploymentmanager.alpha.OperationErrorErrorsItemResponse[]; } /** * Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/{$api_version}/globalOperations) * [Regional](/compute/docs/reference/rest/{$api_version}/regionOperations) * [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources. */ interface OperationResponse { /** * The value of `requestId` if you provided it in the request. Not present otherwise. */ clientOperationId: string; /** * [Deprecated] This field is deprecated. * * @deprecated [Deprecated] This field is deprecated. */ creationTimestamp: string; /** * A textual description of the operation, which is set when the operation is created. */ description: string; /** * The time that this operation was completed. This value is in RFC3339 text format. */ endTime: string; /** * If errors are generated during processing of the operation, this field will be populated. */ error: outputs.deploymentmanager.alpha.OperationErrorResponse; /** * If the operation fails, this field contains the HTTP error message that was returned, such as `NOT FOUND`. */ httpErrorMessage: string; /** * If the operation fails, this field contains the HTTP error status code that was returned. For example, a `404` means the resource was not found. */ httpErrorStatusCode: number; /** * The time that this operation was requested. This value is in RFC3339 text format. */ insertTime: string; instancesBulkInsertOperationMetadata: outputs.deploymentmanager.alpha.InstancesBulkInsertOperationMetadataResponse; /** * Type of the resource. Always `compute#operation` for Operation resources. */ kind: string; /** * Name of the operation. */ name: string; /** * An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request. */ operationGroupId: string; /** * The type of operation, such as `insert`, `update`, or `delete`, and so on. */ operationType: string; /** * An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses. */ progress: number; /** * The URL of the region where the operation resides. Only applicable when performing regional operations. */ region: string; /** * Server-defined URL for the resource. */ selfLink: string; /** * If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state. */ setCommonInstanceMetadataOperationMetadata: outputs.deploymentmanager.alpha.SetCommonInstanceMetadataOperationMetadataResponse; /** * The time that this operation was started by the server. This value is in RFC3339 text format. */ startTime: string; /** * The status of the operation, which can be one of the following: `PENDING`, `RUNNING`, or `DONE`. */ status: string; /** * An optional textual description of the current status of the operation. */ statusMessage: string; /** * The unique target ID, which identifies a specific incarnation of the target resource. */ targetId: string; /** * The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from. */ targetLink: string; /** * User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`. */ user: string; /** * If warning messages are generated during processing of the operation, this field will be populated. */ warnings: outputs.deploymentmanager.alpha.OperationWarningsItemResponse[]; /** * The URL of the zone where the operation resides. Only applicable when performing per-zone operations. */ zone: string; } interface OperationWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface OperationWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.deploymentmanager.alpha.OperationWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * Options allows customized resource handling by Deployment Manager. */ interface OptionsResponse { /** * Options regarding how to thread async requests. */ asyncOptions: outputs.deploymentmanager.alpha.AsyncOptionsResponse[]; /** * The mappings that apply for requests. */ inputMappings: outputs.deploymentmanager.alpha.InputMappingResponse[]; /** * The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed. */ nameProperty: string; /** * Options for how to validate and process properties on a resource. */ validationOptions: outputs.deploymentmanager.alpha.ValidationOptionsResponse; } interface PollingOptionsResponse { /** * An array of diagnostics to be collected by Deployment Manager, these diagnostics will be displayed to the user. */ diagnostics: outputs.deploymentmanager.alpha.DiagnosticResponse[]; /** * JsonPath expression that determines if the request failed. */ failCondition: string; /** * JsonPath expression that determines if the request is completed. */ finishCondition: string; /** * JsonPath expression that evaluates to string, it indicates where to poll. */ pollingLink: string; /** * JsonPath expression, after polling is completed, indicates where to fetch the resource. */ targetLink: string; } /** * Service Account used as a credential. */ interface ServiceAccountResponse { /** * The IAM service account email address like test@myproject.iam.gserviceaccount.com */ email: string; } interface SetCommonInstanceMetadataOperationMetadataResponse { /** * The client operation id. */ clientOperationId: string; /** * Status information per location (location name is key). Example key: zones/us-central1-a */ perLocationOperations: { [key: string]: string; }; } interface TargetConfigurationResponse { /** * The configuration to use for this deployment. */ config: outputs.deploymentmanager.alpha.ConfigFileResponse; /** * Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template. */ imports: outputs.deploymentmanager.alpha.ImportFileResponse[]; } /** * Files that make up the template contents of a template type. */ interface TemplateContentsResponse { /** * Import files referenced by the main template. */ imports: outputs.deploymentmanager.alpha.ImportFileResponse[]; /** * Which interpreter (python or jinja) should be used during expansion. */ interpreter: string; /** * The filename of the mainTemplate */ mainTemplate: string; /** * The contents of the template schema. */ schema: string; /** * The contents of the main template file. */ template: string; } /** * Label object for TypeProviders */ interface TypeProviderLabelEntryResponse { /** * Key of the label */ key: string; /** * Value of the label */ value: string; } /** * Options for how to validate and process properties on a resource. */ interface ValidationOptionsResponse { /** * Customize how deployment manager will validate the resource against schema errors. */ schemaValidation: string; /** * Specify what to do with extra properties when executing a request. */ undeclaredProperties: string; } } namespace v2 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.deploymentmanager.v2.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.deploymentmanager.v2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } interface ConfigFileResponse { /** * The contents of the file. */ content: string; } /** * Label object for Deployments */ interface DeploymentLabelEntryResponse { /** * Key of the label */ key: string; /** * Value of the label */ value: string; } /** * Label object for DeploymentUpdate */ interface DeploymentUpdateLabelEntryResponse { /** * Key of the label */ key: string; /** * Value of the label */ value: string; } interface DeploymentUpdateResponse { /** * An optional user-provided description of the deployment after the current update has been applied. */ description: string; /** * Map of One Platform labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. */ labels: outputs.deploymentmanager.v2.DeploymentUpdateLabelEntryResponse[]; /** * URL of the manifest representing the update configuration of this deployment. */ manifest: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } interface ImportFileResponse { /** * The contents of the file. */ content: string; /** * The name of the file. */ name: string; } interface InstancesBulkInsertOperationMetadataResponse { /** * Status information per location (location name is key). Example key: zones/us-central1-a */ perLocationStatus: { [key: string]: string; }; } interface OperationErrorErrorsItemResponse { /** * The error type identifier for this error. */ code: string; /** * Indicates the field in the request that caused the error. This property is optional. */ location: string; /** * An optional, human-readable error message. */ message: string; } /** * [Output Only] If errors are generated during processing of the operation, this field will be populated. */ interface OperationErrorResponse { /** * The array of errors encountered while processing this operation. */ errors: outputs.deploymentmanager.v2.OperationErrorErrorsItemResponse[]; } /** * Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/{$api_version}/globalOperations) * [Regional](/compute/docs/reference/rest/{$api_version}/regionOperations) * [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources. */ interface OperationResponse { /** * The value of `requestId` if you provided it in the request. Not present otherwise. */ clientOperationId: string; /** * [Deprecated] This field is deprecated. * * @deprecated [Deprecated] This field is deprecated. */ creationTimestamp: string; /** * A textual description of the operation, which is set when the operation is created. */ description: string; /** * The time that this operation was completed. This value is in RFC3339 text format. */ endTime: string; /** * If errors are generated during processing of the operation, this field will be populated. */ error: outputs.deploymentmanager.v2.OperationErrorResponse; /** * If the operation fails, this field contains the HTTP error message that was returned, such as `NOT FOUND`. */ httpErrorMessage: string; /** * If the operation fails, this field contains the HTTP error status code that was returned. For example, a `404` means the resource was not found. */ httpErrorStatusCode: number; /** * The time that this operation was requested. This value is in RFC3339 text format. */ insertTime: string; instancesBulkInsertOperationMetadata: outputs.deploymentmanager.v2.InstancesBulkInsertOperationMetadataResponse; /** * Type of the resource. Always `compute#operation` for Operation resources. */ kind: string; /** * Name of the operation. */ name: string; /** * An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request. */ operationGroupId: string; /** * The type of operation, such as `insert`, `update`, or `delete`, and so on. */ operationType: string; /** * An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses. */ progress: number; /** * The URL of the region where the operation resides. Only applicable when performing regional operations. */ region: string; /** * Server-defined URL for the resource. */ selfLink: string; /** * If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state. */ setCommonInstanceMetadataOperationMetadata: outputs.deploymentmanager.v2.SetCommonInstanceMetadataOperationMetadataResponse; /** * The time that this operation was started by the server. This value is in RFC3339 text format. */ startTime: string; /** * The status of the operation, which can be one of the following: `PENDING`, `RUNNING`, or `DONE`. */ status: string; /** * An optional textual description of the current status of the operation. */ statusMessage: string; /** * The unique target ID, which identifies a specific incarnation of the target resource. */ targetId: string; /** * The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from. */ targetLink: string; /** * User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`. */ user: string; /** * If warning messages are generated during processing of the operation, this field will be populated. */ warnings: outputs.deploymentmanager.v2.OperationWarningsItemResponse[]; /** * The URL of the zone where the operation resides. Only applicable when performing per-zone operations. */ zone: string; } interface OperationWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface OperationWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.deploymentmanager.v2.OperationWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } interface SetCommonInstanceMetadataOperationMetadataResponse { /** * The client operation id. */ clientOperationId: string; /** * Status information per location (location name is key). Example key: zones/us-central1-a */ perLocationOperations: { [key: string]: string; }; } interface TargetConfigurationResponse { /** * The configuration to use for this deployment. */ config: outputs.deploymentmanager.v2.ConfigFileResponse; /** * Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template. */ imports: outputs.deploymentmanager.v2.ImportFileResponse[]; } } namespace v2beta { /** * Async options that determine when a resource should finish. */ interface AsyncOptionsResponse { /** * Method regex where this policy will apply. */ methodMatch: string; /** * Deployment manager will poll instances for this API resource setting a RUNNING state, and blocking until polling conditions tell whether the resource is completed or failed. */ pollingOptions: outputs.deploymentmanager.v2beta.PollingOptionsResponse; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.deploymentmanager.v2beta.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Basic Auth used as a credential. */ interface BasicAuthResponse { password: string; user: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.deploymentmanager.v2beta.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * CollectionOverride allows resource handling overrides for specific resources within a BaseType */ interface CollectionOverrideResponse { /** * The collection that identifies this resource within its service. */ collection: string; /** * The options to apply to this resource-level override */ options: outputs.deploymentmanager.v2beta.OptionsResponse; } /** * Label object for CompositeTypes */ interface CompositeTypeLabelEntryResponse { /** * Key of the label */ key: string; /** * Value of the label */ value: string; } interface ConfigFileResponse { /** * The contents of the file. */ content: string; } /** * The credential used by Deployment Manager and TypeProvider. Only one of the options is permitted. */ interface CredentialResponse { /** * Basic Auth Credential, only used by TypeProvider. */ basicAuth: outputs.deploymentmanager.v2beta.BasicAuthResponse; /** * Service Account Credential, only used by Deployment. */ serviceAccount: outputs.deploymentmanager.v2beta.ServiceAccountResponse; /** * Specify to use the project default credential, only supported by Deployment. */ useProjectDefault: boolean; } /** * Label object for Deployments */ interface DeploymentLabelEntryResponse { /** * Key of the label */ key: string; /** * Value of the label */ value: string; } /** * Label object for DeploymentUpdate */ interface DeploymentUpdateLabelEntryResponse { /** * Key of the label */ key: string; /** * Value of the label */ value: string; } interface DeploymentUpdateResponse { /** * An optional user-provided description of the deployment after the current update has been applied. */ description: string; /** * Map of One Platform labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. */ labels: outputs.deploymentmanager.v2beta.DeploymentUpdateLabelEntryResponse[]; /** * URL of the manifest representing the update configuration of this deployment. */ manifest: string; } interface DiagnosticResponse { /** * JsonPath expression on the resource that if non empty, indicates that this field needs to be extracted as a diagnostic. */ field: string; /** * Level to record this diagnostic. */ level: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } interface ImportFileResponse { /** * The contents of the file. */ content: string; /** * The name of the file. */ name: string; } /** * InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API. */ interface InputMappingResponse { /** * The name of the field that is going to be injected. */ fieldName: string; /** * The location where this mapping applies. */ location: string; /** * Regex to evaluate on method to decide if input applies. */ methodMatch: string; /** * A jsonPath expression to select an element. */ value: string; } interface InstancesBulkInsertOperationMetadataResponse { /** * Status information per location (location name is key). Example key: zones/us-central1-a */ perLocationStatus: { [key: string]: string; }; } interface OperationErrorErrorsItemResponse { /** * The error type identifier for this error. */ code: string; /** * Indicates the field in the request that caused the error. This property is optional. */ location: string; /** * An optional, human-readable error message. */ message: string; } /** * [Output Only] If errors are generated during processing of the operation, this field will be populated. */ interface OperationErrorResponse { /** * The array of errors encountered while processing this operation. */ errors: outputs.deploymentmanager.v2beta.OperationErrorErrorsItemResponse[]; } /** * Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/{$api_version}/globalOperations) * [Regional](/compute/docs/reference/rest/{$api_version}/regionOperations) * [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources. */ interface OperationResponse { /** * The value of `requestId` if you provided it in the request. Not present otherwise. */ clientOperationId: string; /** * [Deprecated] This field is deprecated. * * @deprecated [Deprecated] This field is deprecated. */ creationTimestamp: string; /** * A textual description of the operation, which is set when the operation is created. */ description: string; /** * The time that this operation was completed. This value is in RFC3339 text format. */ endTime: string; /** * If errors are generated during processing of the operation, this field will be populated. */ error: outputs.deploymentmanager.v2beta.OperationErrorResponse; /** * If the operation fails, this field contains the HTTP error message that was returned, such as `NOT FOUND`. */ httpErrorMessage: string; /** * If the operation fails, this field contains the HTTP error status code that was returned. For example, a `404` means the resource was not found. */ httpErrorStatusCode: number; /** * The time that this operation was requested. This value is in RFC3339 text format. */ insertTime: string; instancesBulkInsertOperationMetadata: outputs.deploymentmanager.v2beta.InstancesBulkInsertOperationMetadataResponse; /** * Type of the resource. Always `compute#operation` for Operation resources. */ kind: string; /** * Name of the operation. */ name: string; /** * An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request. */ operationGroupId: string; /** * The type of operation, such as `insert`, `update`, or `delete`, and so on. */ operationType: string; /** * An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses. */ progress: number; /** * The URL of the region where the operation resides. Only applicable when performing regional operations. */ region: string; /** * Server-defined URL for the resource. */ selfLink: string; /** * If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state. */ setCommonInstanceMetadataOperationMetadata: outputs.deploymentmanager.v2beta.SetCommonInstanceMetadataOperationMetadataResponse; /** * The time that this operation was started by the server. This value is in RFC3339 text format. */ startTime: string; /** * The status of the operation, which can be one of the following: `PENDING`, `RUNNING`, or `DONE`. */ status: string; /** * An optional textual description of the current status of the operation. */ statusMessage: string; /** * The unique target ID, which identifies a specific incarnation of the target resource. */ targetId: string; /** * The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from. */ targetLink: string; /** * User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`. */ user: string; /** * If warning messages are generated during processing of the operation, this field will be populated. */ warnings: outputs.deploymentmanager.v2beta.OperationWarningsItemResponse[]; /** * The URL of the zone where the operation resides. Only applicable when performing per-zone operations. */ zone: string; } interface OperationWarningsItemDataItemResponse { /** * A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). */ key: string; /** * A warning data value corresponding to the key. */ value: string; } interface OperationWarningsItemResponse { /** * A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. */ code: string; /** * Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } */ data: outputs.deploymentmanager.v2beta.OperationWarningsItemDataItemResponse[]; /** * A human-readable description of the warning code. */ message: string; } /** * Options allows customized resource handling by Deployment Manager. */ interface OptionsResponse { /** * Options regarding how to thread async requests. */ asyncOptions: outputs.deploymentmanager.v2beta.AsyncOptionsResponse[]; /** * The mappings that apply for requests. */ inputMappings: outputs.deploymentmanager.v2beta.InputMappingResponse[]; /** * Options for how to validate and process properties on a resource. */ validationOptions: outputs.deploymentmanager.v2beta.ValidationOptionsResponse; /** * Additional properties block described as a jsonSchema, these properties will never be part of the json payload, but they can be consumed by InputMappings, this must be a valid json schema draft-04. The properties specified here will be decouple in a different section. This schema will be merged to the schema validation, and properties here will be extracted From the payload and consumed explicitly by InputMappings. ex: field1: type: string field2: type: number */ virtualProperties: string; } interface PollingOptionsResponse { /** * An array of diagnostics to be collected by Deployment Manager, these diagnostics will be displayed to the user. */ diagnostics: outputs.deploymentmanager.v2beta.DiagnosticResponse[]; /** * JsonPath expression that determines if the request failed. */ failCondition: string; /** * JsonPath expression that determines if the request is completed. */ finishCondition: string; /** * JsonPath expression that evaluates to string, it indicates where to poll. */ pollingLink: string; /** * JsonPath expression, after polling is completed, indicates where to fetch the resource. */ targetLink: string; } /** * Service Account used as a credential. */ interface ServiceAccountResponse { /** * The IAM service account email address like test@myproject.iam.gserviceaccount.com */ email: string; } interface SetCommonInstanceMetadataOperationMetadataResponse { /** * The client operation id. */ clientOperationId: string; /** * Status information per location (location name is key). Example key: zones/us-central1-a */ perLocationOperations: { [key: string]: string; }; } interface TargetConfigurationResponse { /** * The configuration to use for this deployment. */ config: outputs.deploymentmanager.v2beta.ConfigFileResponse; /** * Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template. */ imports: outputs.deploymentmanager.v2beta.ImportFileResponse[]; } /** * Files that make up the template contents of a template type. */ interface TemplateContentsResponse { /** * Import files referenced by the main template. */ imports: outputs.deploymentmanager.v2beta.ImportFileResponse[]; /** * Which interpreter (python or jinja) should be used during expansion. */ interpreter: string; /** * The filename of the mainTemplate */ mainTemplate: string; /** * The contents of the template schema. */ schema: string; /** * The contents of the main template file. */ template: string; } /** * Label object for TypeProviders */ interface TypeProviderLabelEntryResponse { /** * Key of the label */ key: string; /** * Value of the label */ value: string; } /** * Options for how to validate and process properties on a resource. */ interface ValidationOptionsResponse { /** * Customize how deployment manager will validate the resource against schema errors. */ schemaValidation: string; /** * Specify what to do with extra properties when executing a request. */ undeclaredProperties: string; } } } export declare namespace dialogflow { namespace v2 { /** * Metadata for article suggestion models. */ interface GoogleCloudDialogflowV2ArticleSuggestionModelMetadataResponse { /** * Optional. Type of the article suggestion model. If not provided, model_type is used. */ trainingModelType: string; } /** * Defines the Automated Agent to connect to a conversation. */ interface GoogleCloudDialogflowV2AutomatedAgentConfigResponse { /** * ID of the Dialogflow agent environment to use. This project needs to either be the same project as the conversation or you need to grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API Service Agent` role in this project. - For ES agents, use format: `projects//locations//agent/environments/`. If environment is not specified, the default `draft` environment is used. Refer to [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest) for more details. - For CX agents, use format `projects//locations//agents//environments/`. If environment is not specified, the default `draft` environment is used. */ agent: string; /** * Optional. Sets Dialogflow CX session life time. By default, a Dialogflow CX session remains active and its data is stored for 30 minutes after the last request is sent for the session. This value should be no longer than 1 day. */ sessionTtl: string; } /** * Dialogflow contexts are similar to natural language context. If a person says to you "they are orange", you need context in order to understand what "they" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview). */ interface GoogleCloudDialogflowV2ContextResponse { /** * Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries. */ lifespanCount: number; /** * The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size` */ name: string; /** * Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value. */ parameters: { [key: string]: string; }; } /** * Represents metadata of a conversation. */ interface GoogleCloudDialogflowV2ConversationInfoResponse { /** * Optional. The language code of the conversation data within this dataset. See https://cloud.google.com/apis/design/standard_fields for more information. Supports all UTF-8 languages. */ languageCode: string; } /** * Represents a phone number for telephony integration. It allows for connecting a particular conversation over telephony. */ interface GoogleCloudDialogflowV2ConversationPhoneNumberResponse { /** * The phone number to connect to this conversation. */ phoneNumber: string; } /** * The status of a reload attempt. */ interface GoogleCloudDialogflowV2DocumentReloadStatusResponse { /** * The status of a reload attempt or the initial load. */ status: outputs.dialogflow.v2.GoogleRpcStatusResponse; /** * The time of a reload attempt. This reload may have been triggered automatically or manually and may not have succeeded. */ time: string; } /** * An **entity entry** for an associated entity type. */ interface GoogleCloudDialogflowV2EntityTypeEntityResponse { /** * A collection of value synonyms. For example, if the entity type is *vegetable*, and `value` is *scallions*, a synonym could be *green onions*. For `KIND_LIST` entity types: * This collection must contain exactly one synonym equal to `value`. */ synonyms: string[]; /** * The primary value associated with this entity entry. For example, if the entity type is *vegetable*, the value could be *scallions*. For `KIND_MAP` entity types: * A reference value to be used in place of synonyms. For `KIND_LIST` entity types: * A string that can contain references to other entity types (with or without aliases). */ value: string; } /** * The configuration for model evaluation. */ interface GoogleCloudDialogflowV2EvaluationConfigResponse { /** * Datasets used for evaluation. */ datasets: outputs.dialogflow.v2.GoogleCloudDialogflowV2InputDatasetResponse[]; /** * Configuration for smart compose model evalution. */ smartComposeConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2EvaluationConfigSmartComposeConfigResponse; /** * Configuration for smart reply model evalution. */ smartReplyConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2EvaluationConfigSmartReplyConfigResponse; } /** * Smart compose specific configuration for evaluation job. */ interface GoogleCloudDialogflowV2EvaluationConfigSmartComposeConfigResponse { /** * The allowlist document resource name. Format: `projects//knowledgeBases//documents/`. Only used for smart compose model. */ allowlistDocument: string; /** * The model to be evaluated can return multiple results with confidence score on each query. These results will be sorted by the descending order of the scores and we only keep the first max_result_count results as the final results to evaluate. */ maxResultCount: number; } /** * Smart reply specific configuration for evaluation job. */ interface GoogleCloudDialogflowV2EvaluationConfigSmartReplyConfigResponse { /** * The allowlist document resource name. Format: `projects//knowledgeBases//documents/`. Only used for smart reply model. */ allowlistDocument: string; /** * The model to be evaluated can return multiple results with confidence score on each query. These results will be sorted by the descending order of the scores and we only keep the first max_result_count results as the final results to evaluate. */ maxResultCount: number; } /** * Whether fulfillment is enabled for the specific feature. */ interface GoogleCloudDialogflowV2FulfillmentFeatureResponse { /** * The type of the feature that enabled for fulfillment. */ type: string; } /** * Represents configuration for a generic web service. Dialogflow supports two mechanisms for authentications: - Basic authentication with username and password. - Authentication with additional authentication headers. More information could be found at: https://cloud.google.com/dialogflow/docs/fulfillment-configure. */ interface GoogleCloudDialogflowV2FulfillmentGenericWebServiceResponse { /** * Optional. Indicates if generic web service is created through Cloud Functions integration. Defaults to false. is_cloud_function is deprecated. Cloud functions can be configured by its uri as a regular web service now. */ isCloudFunction: boolean; /** * Optional. The password for HTTP Basic authentication. */ password: string; /** * Optional. The HTTP request headers to send together with fulfillment requests. */ requestHeaders: { [key: string]: string; }; /** * The fulfillment URI for receiving POST requests. It must use https protocol. */ uri: string; /** * Optional. The user name for HTTP Basic authentication. */ username: string; } /** * By default, your agent responds to a matched intent with a static response. As an alternative, you can provide a more dynamic response by using fulfillment. When you enable fulfillment for an intent, Dialogflow responds to that intent by calling a service that you define. For example, if an end-user wants to schedule a haircut on Friday, your service can check your database and respond to the end-user with availability information for Friday. For more information, see the [fulfillment guide](https://cloud.google.com/dialogflow/docs/fulfillment-overview). */ interface GoogleCloudDialogflowV2FulfillmentResponse { /** * Optional. The human-readable name of the fulfillment, unique within the agent. This field is not used for Fulfillment in an Environment. */ displayName: string; /** * Optional. Whether fulfillment is enabled. */ enabled: boolean; /** * Optional. The field defines whether the fulfillment is enabled for certain features. */ features: outputs.dialogflow.v2.GoogleCloudDialogflowV2FulfillmentFeatureResponse[]; /** * Configuration for a generic web service. */ genericWebService: outputs.dialogflow.v2.GoogleCloudDialogflowV2FulfillmentGenericWebServiceResponse; /** * The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment. */ name: string; } /** * Google Cloud Storage location for the inputs. */ interface GoogleCloudDialogflowV2GcsSourcesResponse { /** * Google Cloud Storage URIs for the inputs. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. */ uris: string[]; } /** * Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY, CONVERSATION_SUMMARIZATION. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationModelConfigResponse { /** * Version of current baseline model. It will be ignored if model is set. Valid versions are: Article Suggestion baseline model: - 0.9 - 1.0 (default) Summarization baseline model: - 1.0 */ baselineModelVersion: string; /** * Conversation model resource name. Format: `projects//conversationModels/`. */ model: string; } /** * Config to process conversation. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationProcessConfigResponse { /** * Number of recent non-small-talk sentences to use as context for article and FAQ suggestion */ recentSentencesCount: number; } /** * Configuration for analyses to run on each conversation message. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigMessageAnalysisConfigResponse { /** * Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access. */ enableEntityExtraction: boolean; /** * Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult. */ enableSentimentAnalysis: boolean; } /** * Defines the Human Agent Assist to connect to a conversation. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigResponse { /** * Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access. */ endUserSuggestionConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionConfigResponse; /** * Configuration for agent assistance of human agent participant. */ humanAgentSuggestionConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionConfigResponse; /** * Configuration for message analysis. */ messageAnalysisConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigMessageAnalysisConfigResponse; /** * Pub/Sub topic on which to publish new agent assistant events. */ notificationConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2NotificationConfigResponse; } /** * Detail human agent assistant config. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionConfigResponse { /** * Configuration of different suggestion features. One feature can have only one config. */ featureConfigs: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfigResponse[]; /** * If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse. */ groupSuggestionResponses: boolean; } /** * Config for suggestion features. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfigResponse { /** * Configs of custom conversation model. */ conversationModelConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationModelConfigResponse; /** * Configs for processing conversation. */ conversationProcessConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationProcessConfigResponse; /** * Optional. Disable the logging of search queries sent by human agents. It can prevent those queries from being stored at answer records. Supported features: KNOWLEDGE_SEARCH. */ disableAgentQueryLogging: boolean; /** * Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, KNOWLEDGE_ASSIST. */ enableEventBasedSuggestion: boolean; /** * Configs of query. */ queryConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigResponse; /** * The suggestion feature. */ suggestionFeature: outputs.dialogflow.v2.GoogleCloudDialogflowV2SuggestionFeatureResponse; /** * Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field. */ suggestionTriggerSettings: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionTriggerSettingsResponse; } /** * Settings that determine how to filter recent conversation context when generating suggestions. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigContextFilterSettingsResponse { /** * If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped. */ dropHandoffMessages: boolean; /** * If set to true, all messages from ivr stage are dropped. */ dropIvrMessages: boolean; /** * If set to true, all messages from virtual agent are dropped. */ dropVirtualAgentMessages: boolean; } /** * The configuration used for human agent side Dialogflow assist suggestion. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfigResponse { /** * Optional. The name of a dialogflow virtual agent used for intent detection and suggestion triggered by human agent. Format: `projects//locations//agent`. */ agent: string; } /** * Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceResponse { /** * The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project. */ agent: string; /** * Optional. The Dialogflow assist configuration for human agent. */ humanAgentSideConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfigResponse; } /** * Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDocumentQuerySourceResponse { /** * Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported. */ documents: string[]; } /** * Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigKnowledgeBaseQuerySourceResponse { /** * Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported. */ knowledgeBases: string[]; } /** * Config for suggestion query. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigResponse { /** * Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION. */ confidenceThreshold: number; /** * Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped. */ contextFilterSettings: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigContextFilterSettingsResponse; /** * Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST. */ dialogflowQuerySource: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceResponse; /** * Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE. */ documentQuerySource: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDocumentQuerySourceResponse; /** * Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ. */ knowledgeBaseQuerySource: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigKnowledgeBaseQuerySourceResponse; /** * Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20. */ maxResults: number; } /** * Settings of suggestion trigger. */ interface GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionTriggerSettingsResponse { /** * Do not trigger if last utterance is small talk. */ noSmalltalk: boolean; /** * Only trigger suggestion if participant role of last utterance is END_USER. */ onlyEndUser: boolean; } /** * Configuration specific to LivePerson (https://www.liveperson.com). */ interface GoogleCloudDialogflowV2HumanAgentHandoffConfigLivePersonConfigResponse { /** * Account number of the LivePerson account to connect. This is the account number you input at the login page. */ accountNumber: string; } /** * Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. */ interface GoogleCloudDialogflowV2HumanAgentHandoffConfigResponse { /** * Uses LivePerson (https://www.liveperson.com). */ livePersonConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentHandoffConfigLivePersonConfigResponse; /** * Uses Salesforce Live Agent. */ salesforceLiveAgentConfig: outputs.dialogflow.v2.GoogleCloudDialogflowV2HumanAgentHandoffConfigSalesforceLiveAgentConfigResponse; } /** * Configuration specific to Salesforce Live Agent. */ interface GoogleCloudDialogflowV2HumanAgentHandoffConfigSalesforceLiveAgentConfigResponse { /** * Live Agent chat button ID. */ buttonId: string; /** * Live Agent deployment ID. */ deploymentId: string; /** * Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com. */ endpointDomain: string; /** * The organization ID of the Salesforce account. */ organizationId: string; } /** * Represents the configuration of importing a set of conversation files in Google Cloud Storage. */ interface GoogleCloudDialogflowV2InputConfigResponse { /** * The Cloud Storage URI has the form gs:////agent*.json. Wildcards are allowed and will be expanded into all matched JSON files, which will be read as one conversation per file. */ gcsSource: outputs.dialogflow.v2.GoogleCloudDialogflowV2GcsSourcesResponse; } /** * InputDataset used to create model or do evaluation. NextID:5 */ interface GoogleCloudDialogflowV2InputDatasetResponse { /** * ConversationDataset resource name. Format: `projects//locations//conversationDatasets/` */ dataset: string; } /** * Represents a single followup intent in the chain. */ interface GoogleCloudDialogflowV2IntentFollowupIntentInfoResponse { /** * The unique identifier of the followup intent. Format: `projects//agent/intents/`. */ followupIntentName: string; /** * The unique identifier of the followup intent's parent. Format: `projects//agent/intents/`. */ parentFollowupIntentName: string; } /** * Opens the given URI. */ interface GoogleCloudDialogflowV2IntentMessageBasicCardButtonOpenUriActionResponse { /** * The HTTP or HTTPS scheme URI. */ uri: string; } /** * The button object that appears at the bottom of a card. */ interface GoogleCloudDialogflowV2IntentMessageBasicCardButtonResponse { /** * Action to take when a user taps on the button. */ openUriAction: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageBasicCardButtonOpenUriActionResponse; /** * The title of the button. */ title: string; } /** * The basic card message. Useful for displaying information. */ interface GoogleCloudDialogflowV2IntentMessageBasicCardResponse { /** * Optional. The collection of card buttons. */ buttons: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageBasicCardButtonResponse[]; /** * Required, unless image is present. The body text of the card. */ formattedText: string; /** * Optional. The image for the card. */ image: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageImageResponse; /** * Optional. The subtitle of the card. */ subtitle: string; /** * Optional. The title of the card. */ title: string; } /** * Actions on Google action to open a given url. */ interface GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlActionResponse { /** * URL */ url: string; /** * Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser. */ urlTypeHint: string; } /** * Browsing carousel tile */ interface GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemResponse { /** * Optional. Description of the carousel item. Maximum of four lines of text. */ description: string; /** * Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text. */ footer: string; /** * Optional. Hero image for the carousel item. */ image: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageImageResponse; /** * Action to present to the user. */ openUriAction: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlActionResponse; /** * Title of the carousel item. Maximum of two lines of text. */ title: string; } /** * Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel */ interface GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardResponse { /** * Optional. Settings for displaying the image. Applies to every image in items. */ imageDisplayOptions: string; /** * List of items in the Browse Carousel Card. Minimum of two items, maximum of ten. */ items: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemResponse[]; } /** * Contains information about a button. */ interface GoogleCloudDialogflowV2IntentMessageCardButtonResponse { /** * Optional. The text to send back to the Dialogflow API or a URI to open. */ postback: string; /** * Optional. The text to show on the button. */ text: string; } /** * The card response message. */ interface GoogleCloudDialogflowV2IntentMessageCardResponse { /** * Optional. The collection of card buttons. */ buttons: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageCardButtonResponse[]; /** * Optional. The public URI to an image file for the card. */ imageUri: string; /** * Optional. The subtitle of the card. */ subtitle: string; /** * Optional. The title of the card. */ title: string; } /** * An item in the carousel. */ interface GoogleCloudDialogflowV2IntentMessageCarouselSelectItemResponse { /** * Optional. The body text of the card. */ description: string; /** * Optional. The image to display. */ image: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageImageResponse; /** * Additional info about the option item. */ info: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageSelectItemInfoResponse; /** * Title of the carousel item. */ title: string; } /** * The card for presenting a carousel of options to select from. */ interface GoogleCloudDialogflowV2IntentMessageCarouselSelectResponse { /** * Carousel items. */ items: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageCarouselSelectItemResponse[]; } /** * Column properties for TableCard. */ interface GoogleCloudDialogflowV2IntentMessageColumnPropertiesResponse { /** * Column heading. */ header: string; /** * Optional. Defines text alignment for all cells in this column. */ horizontalAlignment: string; } /** * The image response message. */ interface GoogleCloudDialogflowV2IntentMessageImageResponse { /** * Optional. A text description of the image to be used for accessibility, e.g., screen readers. */ accessibilityText: string; /** * Optional. The public URI to an image file. */ imageUri: string; } /** * The suggestion chip message that allows the user to jump out to the app or website associated with this agent. */ interface GoogleCloudDialogflowV2IntentMessageLinkOutSuggestionResponse { /** * The name of the app or site this chip is linking to. */ destinationName: string; /** * The URI of the app or site to open when the user taps the suggestion chip. */ uri: string; } /** * An item in the list. */ interface GoogleCloudDialogflowV2IntentMessageListSelectItemResponse { /** * Optional. The main text describing the item. */ description: string; /** * Optional. The image to display. */ image: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageImageResponse; /** * Additional information about this option. */ info: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageSelectItemInfoResponse; /** * The title of the list item. */ title: string; } /** * The card for presenting a list of options to select from. */ interface GoogleCloudDialogflowV2IntentMessageListSelectResponse { /** * List items. */ items: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageListSelectItemResponse[]; /** * Optional. Subtitle of the list. */ subtitle: string; /** * Optional. The overall title of the list. */ title: string; } /** * The media content card for Actions on Google. */ interface GoogleCloudDialogflowV2IntentMessageMediaContentResponse { /** * List of media objects. */ mediaObjects: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageMediaContentResponseMediaObjectResponse[]; /** * Optional. What type of media is the content (ie "audio"). */ mediaType: string; } /** * Response media object for media content card. */ interface GoogleCloudDialogflowV2IntentMessageMediaContentResponseMediaObjectResponse { /** * Url where the media is stored. */ contentUrl: string; /** * Optional. Description of media card. */ description: string; /** * Optional. Icon to display above media content. */ icon: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageImageResponse; /** * Optional. Image to display above media content. */ largeImage: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageImageResponse; /** * Name of media card. */ name: string; } /** * The quick replies response message. */ interface GoogleCloudDialogflowV2IntentMessageQuickRepliesResponse { /** * Optional. The collection of quick replies. */ quickReplies: string[]; /** * Optional. The title of the collection of quick replies. */ title: string; } /** * A rich response message. Corresponds to the intent `Response` field in the Dialogflow console. For more information, see [Rich response messages](https://cloud.google.com/dialogflow/docs/intents-rich-messages). */ interface GoogleCloudDialogflowV2IntentMessageResponse { /** * The basic card response for Actions on Google. */ basicCard: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageBasicCardResponse; /** * Browse carousel card for Actions on Google. */ browseCarouselCard: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardResponse; /** * The card response. */ card: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageCardResponse; /** * The carousel card response for Actions on Google. */ carouselSelect: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageCarouselSelectResponse; /** * The image response. */ image: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageImageResponse; /** * The link out suggestion chip for Actions on Google. */ linkOutSuggestion: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageLinkOutSuggestionResponse; /** * The list card response for Actions on Google. */ listSelect: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageListSelectResponse; /** * The media content card for Actions on Google. */ mediaContent: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageMediaContentResponse; /** * A custom platform-specific response. */ payload: { [key: string]: string; }; /** * Optional. The platform that this message is intended for. */ platform: string; /** * The quick replies response. */ quickReplies: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageQuickRepliesResponse; /** * The voice and text-only responses for Actions on Google. */ simpleResponses: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageSimpleResponsesResponse; /** * The suggestion chips for Actions on Google. */ suggestions: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageSuggestionsResponse; /** * Table card for Actions on Google. */ tableCard: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageTableCardResponse; /** * The text response. */ text: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageTextResponse; } /** * Additional info about the select item for when it is triggered in a dialog. */ interface GoogleCloudDialogflowV2IntentMessageSelectItemInfoResponse { /** * A unique key that will be sent back to the agent if this response is given. */ key: string; /** * Optional. A list of synonyms that can also be used to trigger this item in dialog. */ synonyms: string[]; } /** * The simple response message containing speech or text. */ interface GoogleCloudDialogflowV2IntentMessageSimpleResponseResponse { /** * Optional. The text to display. */ displayText: string; /** * One of text_to_speech or ssml must be provided. Structured spoken response to the user in the SSML format. Mutually exclusive with text_to_speech. */ ssml: string; /** * One of text_to_speech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml. */ textToSpeech: string; } /** * The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`. */ interface GoogleCloudDialogflowV2IntentMessageSimpleResponsesResponse { /** * The list of simple responses. */ simpleResponses: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageSimpleResponseResponse[]; } /** * The suggestion chip message that the user can tap to quickly post a reply to the conversation. */ interface GoogleCloudDialogflowV2IntentMessageSuggestionResponse { /** * The text shown the in the suggestion chip. */ title: string; } /** * The collection of suggestions. */ interface GoogleCloudDialogflowV2IntentMessageSuggestionsResponse { /** * The list of suggested replies. */ suggestions: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageSuggestionResponse[]; } /** * Cell of TableCardRow. */ interface GoogleCloudDialogflowV2IntentMessageTableCardCellResponse { /** * Text in this cell. */ text: string; } /** * Table card for Actions on Google. */ interface GoogleCloudDialogflowV2IntentMessageTableCardResponse { /** * Optional. List of buttons for the card. */ buttons: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageBasicCardButtonResponse[]; /** * Optional. Display properties for the columns in this table. */ columnProperties: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageColumnPropertiesResponse[]; /** * Optional. Image which should be displayed on the card. */ image: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageImageResponse; /** * Optional. Rows in this table of data. */ rows: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageTableCardRowResponse[]; /** * Optional. Subtitle to the title. */ subtitle: string; /** * Title of the card. */ title: string; } /** * Row of TableCard. */ interface GoogleCloudDialogflowV2IntentMessageTableCardRowResponse { /** * Optional. List of cells that make up this row. */ cells: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentMessageTableCardCellResponse[]; /** * Optional. Whether to add a visual divider after this row. */ dividerAfter: boolean; } /** * The text response message. */ interface GoogleCloudDialogflowV2IntentMessageTextResponse { /** * Optional. The collection of the agent's responses. */ text: string[]; } /** * Represents intent parameters. */ interface GoogleCloudDialogflowV2IntentParameterResponse { /** * Optional. The default value to use when the `value` yields an empty result. Default values can be extracted from contexts by using the following syntax: `#context_name.parameter_name`. */ defaultValue: string; /** * The name of the parameter. */ displayName: string; /** * Optional. The name of the entity type, prefixed with `@`, that describes values of the parameter. If the parameter is required, this must be provided. */ entityTypeDisplayName: string; /** * Optional. Indicates whether the parameter represents a list of values. */ isList: boolean; /** * Optional. Indicates whether the parameter is required. That is, whether the intent cannot be completed without collecting the parameter value. */ mandatory: boolean; /** * The unique identifier of this parameter. */ name: string; /** * Optional. The collection of prompts that the agent can present to the user in order to collect a value for the parameter. */ prompts: string[]; /** * Optional. The definition of the parameter value. It can be: - a constant string, - a parameter value defined as `$parameter_name`, - an original parameter value defined as `$parameter_name.original`, - a parameter value from some context defined as `#context_name.parameter_name`. */ value: string; } /** * Represents a part of a training phrase. */ interface GoogleCloudDialogflowV2IntentTrainingPhrasePartResponse { /** * Optional. The parameter name for the value extracted from the annotated part of the example. This field is required for annotated parts of the training phrase. */ alias: string; /** * Optional. The entity type name prefixed with `@`. This field is required for annotated parts of the training phrase. */ entityType: string; /** * The text for this part. */ text: string; /** * Optional. Indicates whether the text was manually annotated. This field is set to true when the Dialogflow Console is used to manually annotate the part. When creating an annotated part with the API, you must set this to true. */ userDefined: boolean; } /** * Represents an example that the agent is trained on. */ interface GoogleCloudDialogflowV2IntentTrainingPhraseResponse { /** * The unique identifier of this training phrase. */ name: string; /** * The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `entity_type`, `alias`, and `user_defined` fields are all set. */ parts: outputs.dialogflow.v2.GoogleCloudDialogflowV2IntentTrainingPhrasePartResponse[]; /** * Optional. Indicates how many times this example was added to the intent. Each time a developer adds an existing sample by editing an intent or training, this counter is increased. */ timesAddedCount: number; /** * The type of the training phrase. */ type: string; } /** * Defines logging behavior for conversation lifecycle events. */ interface GoogleCloudDialogflowV2LoggingConfigResponse { /** * Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos. */ enableStackdriverLogging: boolean; } /** * Defines notification behavior. */ interface GoogleCloudDialogflowV2NotificationConfigResponse { /** * Format of message. */ messageFormat: string; /** * Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. For telephony integration to receive notification, make sure either this topic is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. For chat integration to receive notification, make sure API caller has been granted the `Dialogflow Service Agent` role for the topic. Format: `projects//locations//topics/`. */ topic: string; } /** * The evaluation metrics for smart reply model. */ interface GoogleCloudDialogflowV2SmartReplyMetricsResponse { /** * Percentage of target participant messages in the evaluation dataset for which similar messages have appeared at least once in the allowlist. Should be [0, 1]. */ allowlistCoverage: number; /** * Total number of conversations used to generate this metric. */ conversationCount: string; /** * Metrics of top n smart replies, sorted by TopNMetric.n. */ topNMetrics: outputs.dialogflow.v2.GoogleCloudDialogflowV2SmartReplyMetricsTopNMetricsResponse[]; } /** * Evaluation metrics when retrieving `n` smart replies with the model. */ interface GoogleCloudDialogflowV2SmartReplyMetricsTopNMetricsResponse { /** * Number of retrieved smart replies. For example, when `n` is 3, this evaluation contains metrics for when Dialogflow retrieves 3 smart replies with the model. */ n: number; /** * Defined as `number of queries whose top n smart replies have at least one similar (token match similarity above the defined threshold) reply as the real reply` divided by `number of queries with at least one smart reply`. Value ranges from 0.0 to 1.0 inclusive. */ recall: number; } /** * Metadata for smart reply models. */ interface GoogleCloudDialogflowV2SmartReplyModelMetadataResponse { /** * Optional. Type of the smart reply model. If not provided, model_type is used. */ trainingModelType: string; } /** * Configures speech transcription for ConversationProfile. */ interface GoogleCloudDialogflowV2SpeechToTextConfigResponse { /** * Which Speech model to select. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then a default model is used. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. */ model: string; /** * The speech model used in speech to text. `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated as `USE_ENHANCED`. It can be overridden in AnalyzeContentRequest and StreamingAnalyzeContentRequest request. If enhanced model variant is specified and an enhanced version of the specified model for the language does not exist, then it would emit an error. */ speechModelVariant: string; /** * Use timeout based endpointing, interpreting endpointer sensitivy as seconds of timeout value. */ useTimeoutBasedEndpointing: boolean; } /** * The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. */ interface GoogleCloudDialogflowV2SuggestionFeatureResponse { /** * Type of Human Agent Assistant API feature to request. */ type: string; } /** * Configuration of how speech should be synthesized. */ interface GoogleCloudDialogflowV2SynthesizeSpeechConfigResponse { /** * Optional. An identifier which selects 'audio effects' profiles that are applied on (post synthesized) text to speech. Effects are applied on top of each other in the order they are given. */ effectsProfileId: string[]; /** * Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 semitones from the original pitch. -20 means decrease 20 semitones from the original pitch. */ pitch: number; /** * Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other values < 0.25 or > 4.0 will return an error. */ speakingRate: number; /** * Optional. The desired voice of the synthesized audio. */ voice: outputs.dialogflow.v2.GoogleCloudDialogflowV2VoiceSelectionParamsResponse; /** * Optional. Volume gain (in dB) of the normal native volume supported by the specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. We strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that. */ volumeGainDb: number; } /** * Instructs the speech synthesizer on how to generate the output audio content. */ interface GoogleCloudDialogflowV2TextToSpeechSettingsResponse { /** * Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained. */ enableTextToSpeech: boolean; /** * Audio encoding of the synthesized audio content. */ outputAudioEncoding: string; /** * Optional. The synthesis sample rate (in hertz) for this audio. If not provided, then the synthesizer will use the default sample rate based on the audio encoding. If this is different from the voice's natural sample rate, then the synthesizer will honor this request by converting to the desired sample rate (which might result in worse audio quality). */ sampleRateHertz: number; /** * Optional. Configuration of how speech should be synthesized, mapping from language (https://cloud.google.com/dialogflow/docs/reference/language) to SynthesizeSpeechConfig. */ synthesizeSpeechConfigs: { [key: string]: string; }; } /** * Description of which voice to use for speech synthesis. */ interface GoogleCloudDialogflowV2VoiceSelectionParamsResponse { /** * Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and ssml_gender. */ name: string; /** * Optional. The preferred gender of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and name. Note that this is only a preference, not requirement. If a voice of the appropriate gender is not available, the synthesizer should substitute a voice with a different gender rather than failing the request. */ ssmlGender: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface GoogleRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } namespace v2beta1 { /** * Defines the Automated Agent to connect to a conversation. */ interface GoogleCloudDialogflowV2beta1AutomatedAgentConfigResponse { /** * ID of the Dialogflow agent environment to use. This project needs to either be the same project as the conversation or you need to grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API Service Agent` role in this project. - For ES agents, use format: `projects//locations//agent/environments/`. If environment is not specified, the default `draft` environment is used. Refer to [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2beta1#google.cloud.dialogflow.v2beta1.DetectIntentRequest) for more details. - For CX agents, use format `projects//locations//agents//environments/`. If environment is not specified, the default `draft` environment is used. */ agent: string; /** * Optional. Sets Dialogflow CX session life time. By default, a Dialogflow CX session remains active and its data is stored for 30 minutes after the last request is sent for the session. This value should be no longer than 1 day. */ sessionTtl: string; } /** * Dialogflow contexts are similar to natural language context. If a person says to you "they are orange", you need context in order to understand what "they" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview). */ interface GoogleCloudDialogflowV2beta1ContextResponse { /** * Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries. */ lifespanCount: number; /** * The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size` */ name: string; /** * Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value. */ parameters: { [key: string]: string; }; } /** * Represents a phone number for telephony integration. It allows for connecting a particular conversation over telephony. */ interface GoogleCloudDialogflowV2beta1ConversationPhoneNumberResponse { /** * The phone number to connect to this conversation. */ phoneNumber: string; } /** * The status of a reload attempt. */ interface GoogleCloudDialogflowV2beta1DocumentReloadStatusResponse { /** * The status of a reload attempt or the initial load. */ status: outputs.dialogflow.v2beta1.GoogleRpcStatusResponse; /** * The time of a reload attempt. This reload may have been triggered automatically or manually and may not have succeeded. */ time: string; } /** * An **entity entry** for an associated entity type. */ interface GoogleCloudDialogflowV2beta1EntityTypeEntityResponse { /** * A collection of value synonyms. For example, if the entity type is *vegetable*, and `value` is *scallions*, a synonym could be *green onions*. For `KIND_LIST` entity types: * This collection must contain exactly one synonym equal to `value`. */ synonyms: string[]; /** * The primary value associated with this entity entry. For example, if the entity type is *vegetable*, the value could be *scallions*. For `KIND_MAP` entity types: * A reference value to be used in place of synonyms. For `KIND_LIST` entity types: * A string that can contain references to other entity types (with or without aliases). */ value: string; } /** * Whether fulfillment is enabled for the specific feature. */ interface GoogleCloudDialogflowV2beta1FulfillmentFeatureResponse { /** * The type of the feature that enabled for fulfillment. */ type: string; } /** * Represents configuration for a generic web service. Dialogflow supports two mechanisms for authentications: - Basic authentication with username and password. - Authentication with additional authentication headers. More information could be found at: https://cloud.google.com/dialogflow/docs/fulfillment-configure. */ interface GoogleCloudDialogflowV2beta1FulfillmentGenericWebServiceResponse { /** * Optional. Indicates if generic web service is created through Cloud Functions integration. Defaults to false. is_cloud_function is deprecated. Cloud functions can be configured by its uri as a regular web service now. */ isCloudFunction: boolean; /** * The password for HTTP Basic authentication. */ password: string; /** * The HTTP request headers to send together with fulfillment requests. */ requestHeaders: { [key: string]: string; }; /** * The fulfillment URI for receiving POST requests. It must use https protocol. */ uri: string; /** * The user name for HTTP Basic authentication. */ username: string; } /** * By default, your agent responds to a matched intent with a static response. As an alternative, you can provide a more dynamic response by using fulfillment. When you enable fulfillment for an intent, Dialogflow responds to that intent by calling a service that you define. For example, if an end-user wants to schedule a haircut on Friday, your service can check your database and respond to the end-user with availability information for Friday. For more information, see the [fulfillment guide](https://cloud.google.com/dialogflow/docs/fulfillment-overview). */ interface GoogleCloudDialogflowV2beta1FulfillmentResponse { /** * The human-readable name of the fulfillment, unique within the agent. This field is not used for Fulfillment in an Environment. */ displayName: string; /** * Whether fulfillment is enabled. */ enabled: boolean; /** * The field defines whether the fulfillment is enabled for certain features. */ features: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1FulfillmentFeatureResponse[]; /** * Configuration for a generic web service. */ genericWebService: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1FulfillmentGenericWebServiceResponse; /** * The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment. */ name: string; } /** * Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY, CONVERSATION_SUMMARIZATION. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigConversationModelConfigResponse { /** * Version of current baseline model. It will be ignored if model is set. Valid versions are: Article Suggestion baseline model: - 0.9 - 1.0 (default) Summarization baseline model: - 1.0 */ baselineModelVersion: string; /** * Conversation model resource name. Format: `projects//conversationModels/`. */ model: string; } /** * Config to process conversation. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigConversationProcessConfigResponse { /** * Number of recent non-small-talk sentences to use as context for article and FAQ suggestion */ recentSentencesCount: number; } /** * Configuration for analyses to run on each conversation message. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigMessageAnalysisConfigResponse { /** * Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access. */ enableEntityExtraction: boolean; /** * Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult. */ enableSentimentAnalysis: boolean; } /** * Defines the Human Agent Assistant to connect to a conversation. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigResponse { /** * Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access. */ endUserSuggestionConfig: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionConfigResponse; /** * Configuration for agent assistance of human agent participant. */ humanAgentSuggestionConfig: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionConfigResponse; /** * Configuration for message analysis. */ messageAnalysisConfig: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigMessageAnalysisConfigResponse; /** * Pub/Sub topic on which to publish new agent assistant events. */ notificationConfig: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1NotificationConfigResponse; } /** * Detail human agent assistant config. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionConfigResponse { /** * Configuration of different suggestion features. One feature can have only one config. */ featureConfigs: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionFeatureConfigResponse[]; /** * If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse. */ groupSuggestionResponses: boolean; } /** * Config for suggestion features. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionFeatureConfigResponse { /** * Configs of custom conversation model. */ conversationModelConfig: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigConversationModelConfigResponse; /** * Configs for processing conversation. */ conversationProcessConfig: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigConversationProcessConfigResponse; /** * Optional. Disable the logging of search queries sent by human agents. It can prevent those queries from being stored at answer records. Supported features: KNOWLEDGE_SEARCH. */ disableAgentQueryLogging: boolean; /** * Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, ENTITY_EXTRACTION, KNOWLEDGE_ASSIST. */ enableEventBasedSuggestion: boolean; /** * Configs of query. */ queryConfig: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigResponse; /** * The suggestion feature. */ suggestionFeature: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1SuggestionFeatureResponse; /** * Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field. */ suggestionTriggerSettings: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionTriggerSettingsResponse; } /** * Settings that determine how to filter recent conversation context when generating suggestions. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigContextFilterSettingsResponse { /** * If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped. */ dropHandoffMessages: boolean; /** * If set to true, all messages from ivr stage are dropped. */ dropIvrMessages: boolean; /** * If set to true, all messages from virtual agent are dropped. */ dropVirtualAgentMessages: boolean; } /** * The configuration used for human agent side Dialogflow assist suggestion. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfigResponse { /** * Optional. The name of a dialogflow virtual agent used for intent detection and suggestion triggered by human agent. Format: `projects//locations//agent`. */ agent: string; } /** * Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST, ENTITY_EXTRACTION. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceResponse { /** * The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project. */ agent: string; /** * The Dialogflow assist configuration for human agent. */ humanAgentSideConfig: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfigResponse; } /** * Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDocumentQuerySourceResponse { /** * Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported. */ documents: string[]; } /** * Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigKnowledgeBaseQuerySourceResponse { /** * Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported. */ knowledgeBases: string[]; } /** * Config for suggestion query. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigResponse { /** * Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION. */ confidenceThreshold: number; /** * Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped. */ contextFilterSettings: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigContextFilterSettingsResponse; /** * Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST, ENTITY_EXTRACTION. */ dialogflowQuerySource: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceResponse; /** * Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE. */ documentQuerySource: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigDocumentQuerySourceResponse; /** * Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ. */ knowledgeBaseQuerySource: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionQueryConfigKnowledgeBaseQuerySourceResponse; /** * Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20. */ maxResults: number; } /** * Settings of suggestion trigger. */ interface GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigSuggestionTriggerSettingsResponse { /** * Do not trigger if last utterance is small talk. */ noSmallTalk: boolean; /** * Only trigger suggestion if participant role of last utterance is END_USER. */ onlyEndUser: boolean; } /** * Configuration specific to LivePerson (https://www.liveperson.com). */ interface GoogleCloudDialogflowV2beta1HumanAgentHandoffConfigLivePersonConfigResponse { /** * Account number of the LivePerson account to connect. This is the account number you input at the login page. */ accountNumber: string; } /** * Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. */ interface GoogleCloudDialogflowV2beta1HumanAgentHandoffConfigResponse { /** * Uses LivePerson (https://www.liveperson.com). */ livePersonConfig: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentHandoffConfigLivePersonConfigResponse; /** * Uses Salesforce Live Agent. */ salesforceLiveAgentConfig: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1HumanAgentHandoffConfigSalesforceLiveAgentConfigResponse; } /** * Configuration specific to Salesforce Live Agent. */ interface GoogleCloudDialogflowV2beta1HumanAgentHandoffConfigSalesforceLiveAgentConfigResponse { /** * Live Agent chat button ID. */ buttonId: string; /** * Live Agent deployment ID. */ deploymentId: string; /** * Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com. */ endpointDomain: string; /** * The organization ID of the Salesforce account. */ organizationId: string; } /** * Represents a single followup intent in the chain. */ interface GoogleCloudDialogflowV2beta1IntentFollowupIntentInfoResponse { /** * The unique identifier of the followup intent. Format: `projects//agent/intents/`. */ followupIntentName: string; /** * The unique identifier of the followup intent's parent. Format: `projects//agent/intents/`. */ parentFollowupIntentName: string; } /** * Opens the given URI. */ interface GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonOpenUriActionResponse { /** * The HTTP or HTTPS scheme URI. */ uri: string; } /** * The button object that appears at the bottom of a card. */ interface GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonResponse { /** * Action to take when a user taps on the button. */ openUriAction: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonOpenUriActionResponse; /** * The title of the button. */ title: string; } /** * The basic card message. Useful for displaying information. */ interface GoogleCloudDialogflowV2beta1IntentMessageBasicCardResponse { /** * Optional. The collection of card buttons. */ buttons: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonResponse[]; /** * Required, unless image is present. The body text of the card. */ formattedText: string; /** * Optional. The image for the card. */ image: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageImageResponse; /** * Optional. The subtitle of the card. */ subtitle: string; /** * Optional. The title of the card. */ title: string; } /** * Actions on Google action to open a given url. */ interface GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlActionResponse { /** * URL */ url: string; /** * Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser. */ urlTypeHint: string; } /** * Browsing carousel tile */ interface GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemResponse { /** * Optional. Description of the carousel item. Maximum of four lines of text. */ description: string; /** * Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text. */ footer: string; /** * Optional. Hero image for the carousel item. */ image: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageImageResponse; /** * Action to present to the user. */ openUriAction: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlActionResponse; /** * Title of the carousel item. Maximum of two lines of text. */ title: string; } /** * Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel */ interface GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardResponse { /** * Optional. Settings for displaying the image. Applies to every image in items. */ imageDisplayOptions: string; /** * List of items in the Browse Carousel Card. Minimum of two items, maximum of ten. */ items: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemResponse[]; } /** * Optional. Contains information about a button. */ interface GoogleCloudDialogflowV2beta1IntentMessageCardButtonResponse { /** * Optional. The text to send back to the Dialogflow API or a URI to open. */ postback: string; /** * Optional. The text to show on the button. */ text: string; } /** * The card response message. */ interface GoogleCloudDialogflowV2beta1IntentMessageCardResponse { /** * Optional. The collection of card buttons. */ buttons: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageCardButtonResponse[]; /** * Optional. The public URI to an image file for the card. */ imageUri: string; /** * Optional. The subtitle of the card. */ subtitle: string; /** * Optional. The title of the card. */ title: string; } /** * An item in the carousel. */ interface GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectItemResponse { /** * Optional. The body text of the card. */ description: string; /** * Optional. The image to display. */ image: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageImageResponse; /** * Additional info about the option item. */ info: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfoResponse; /** * Title of the carousel item. */ title: string; } /** * The card for presenting a carousel of options to select from. */ interface GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectResponse { /** * Carousel items. */ items: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectItemResponse[]; } /** * Column properties for TableCard. */ interface GoogleCloudDialogflowV2beta1IntentMessageColumnPropertiesResponse { /** * Column heading. */ header: string; /** * Optional. Defines text alignment for all cells in this column. */ horizontalAlignment: string; } /** * The image response message. */ interface GoogleCloudDialogflowV2beta1IntentMessageImageResponse { /** * A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect. */ accessibilityText: string; /** * Optional. The public URI to an image file. */ imageUri: string; } /** * The suggestion chip message that allows the user to jump out to the app or website associated with this agent. */ interface GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestionResponse { /** * The name of the app or site this chip is linking to. */ destinationName: string; /** * The URI of the app or site to open when the user taps the suggestion chip. */ uri: string; } /** * An item in the list. */ interface GoogleCloudDialogflowV2beta1IntentMessageListSelectItemResponse { /** * Optional. The main text describing the item. */ description: string; /** * Optional. The image to display. */ image: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageImageResponse; /** * Additional information about this option. */ info: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfoResponse; /** * The title of the list item. */ title: string; } /** * The card for presenting a list of options to select from. */ interface GoogleCloudDialogflowV2beta1IntentMessageListSelectResponse { /** * List items. */ items: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageListSelectItemResponse[]; /** * Optional. Subtitle of the list. */ subtitle: string; /** * Optional. The overall title of the list. */ title: string; } /** * The media content card for Actions on Google. */ interface GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponse { /** * List of media objects. */ mediaObjects: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponseMediaObjectResponse[]; /** * Optional. What type of media is the content (ie "audio"). */ mediaType: string; } /** * Response media object for media content card. */ interface GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponseMediaObjectResponse { /** * Url where the media is stored. */ contentUrl: string; /** * Optional. Description of media card. */ description: string; /** * Optional. Icon to display above media content. */ icon: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageImageResponse; /** * Optional. Image to display above media content. */ largeImage: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageImageResponse; /** * Name of media card. */ name: string; } /** * The quick replies response message. */ interface GoogleCloudDialogflowV2beta1IntentMessageQuickRepliesResponse { /** * Optional. The collection of quick replies. */ quickReplies: string[]; /** * Optional. The title of the collection of quick replies. */ title: string; } /** * Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentRbmMediaResponse { /** * Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL. */ fileUri: string; /** * Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored. */ height: string; /** * Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button. */ thumbnailUri: string; } /** * Rich Business Messaging (RBM) Card content */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentResponse { /** * Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set. */ description: string; /** * Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card. */ media: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentRbmMediaResponse; /** * Optional. List of suggestions to include in the card. */ suggestions: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestionResponse[]; /** * Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set. */ title: string; } /** * Carousel Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. If you want to show a single card with more control over the layout, please use RbmStandaloneCard instead. */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmCarouselCardResponse { /** * The cards in the carousel. A carousel must have at least 2 cards and at most 10. */ cardContents: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentResponse[]; /** * The width of the cards in the carousel. */ cardWidth: string; } /** * Standalone Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. You can group multiple rich cards into one using RbmCarouselCard but carousel cards will give you less control over the card layout. */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmStandaloneCardResponse { /** * Card content. */ cardContent: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentResponse; /** * Orientation of the card. */ cardOrientation: string; /** * Required if orientation is horizontal. Image preview alignment for standalone cards with horizontal layout. */ thumbnailImageAlignment: string; } /** * Opens the user's default dialer app with the specified phone number but does not dial automatically. */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionDialResponse { /** * The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888. */ phoneNumber: string; } /** * Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionOpenUriResponse { /** * The uri to open on the user device */ uri: string; } /** * Opens the device's location chooser so the user can pick a location to send back to the agent. */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionShareLocationResponse { } /** * Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionResponse { /** * Suggested client side action: Dial a phone number */ dial: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionDialResponse; /** * Suggested client side action: Open a URI on device */ openUrl: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionOpenUriResponse; /** * Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic. */ postbackData: string; /** * Suggested client side action: Share user location */ shareLocation: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionShareLocationResponse; /** * Text to display alongside the action. */ text: string; } /** * Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedReplyResponse { /** * Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic. */ postbackData: string; /** * Suggested reply text. */ text: string; } /** * Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri). */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestionResponse { /** * Predefined client side actions that user can choose */ action: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionResponse; /** * Predefined replies for user to select instead of typing */ reply: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedReplyResponse; } /** * Rich Business Messaging (RBM) text response with suggestions. */ interface GoogleCloudDialogflowV2beta1IntentMessageRbmTextResponse { /** * Optional. One or more suggestions to show to the user. */ rbmSuggestion: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestionResponse[]; /** * Text sent and displayed to the user. */ text: string; } /** * Corresponds to the `Response` field in the Dialogflow console. */ interface GoogleCloudDialogflowV2beta1IntentMessageResponse { /** * Displays a basic card for Actions on Google. */ basicCard: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageBasicCardResponse; /** * Browse carousel card for Actions on Google. */ browseCarouselCard: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardResponse; /** * Displays a card. */ card: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageCardResponse; /** * Displays a carousel card for Actions on Google. */ carouselSelect: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectResponse; /** * Displays an image. */ image: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageImageResponse; /** * Displays a link out suggestion chip for Actions on Google. */ linkOutSuggestion: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestionResponse; /** * Displays a list card for Actions on Google. */ listSelect: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageListSelectResponse; /** * The media content card for Actions on Google. */ mediaContent: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponse; /** * A custom platform-specific response. */ payload: { [key: string]: string; }; /** * Optional. The platform that this message is intended for. */ platform: string; /** * Displays quick replies. */ quickReplies: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageQuickRepliesResponse; /** * Rich Business Messaging (RBM) carousel rich card response. */ rbmCarouselRichCard: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmCarouselCardResponse; /** * Standalone Rich Business Messaging (RBM) rich card response. */ rbmStandaloneRichCard: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmStandaloneCardResponse; /** * Rich Business Messaging (RBM) text response. RBM allows businesses to send enriched and branded versions of SMS. See https://jibe.google.com/business-messaging. */ rbmText: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageRbmTextResponse; /** * Returns a voice or text-only response for Actions on Google. */ simpleResponses: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageSimpleResponsesResponse; /** * Displays suggestion chips for Actions on Google. */ suggestions: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageSuggestionsResponse; /** * Table card for Actions on Google. */ tableCard: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageTableCardResponse; /** * Plays audio from a file in Telephony Gateway. */ telephonyPlayAudio: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudioResponse; /** * Synthesizes speech in Telephony Gateway. */ telephonySynthesizeSpeech: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeechResponse; /** * Transfers the call in Telephony Gateway. */ telephonyTransferCall: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCallResponse; /** * Returns a text response. */ text: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageTextResponse; } /** * Additional info about the select item for when it is triggered in a dialog. */ interface GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfoResponse { /** * A unique key that will be sent back to the agent if this response is given. */ key: string; /** * Optional. A list of synonyms that can also be used to trigger this item in dialog. */ synonyms: string[]; } /** * The simple response message containing speech or text. */ interface GoogleCloudDialogflowV2beta1IntentMessageSimpleResponseResponse { /** * Optional. The text to display. */ displayText: string; /** * One of text_to_speech or ssml must be provided. Structured spoken response to the user in the SSML format. Mutually exclusive with text_to_speech. */ ssml: string; /** * One of text_to_speech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml. */ textToSpeech: string; } /** * The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`. */ interface GoogleCloudDialogflowV2beta1IntentMessageSimpleResponsesResponse { /** * The list of simple responses. */ simpleResponses: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageSimpleResponseResponse[]; } /** * The suggestion chip message that the user can tap to quickly post a reply to the conversation. */ interface GoogleCloudDialogflowV2beta1IntentMessageSuggestionResponse { /** * The text shown the in the suggestion chip. */ title: string; } /** * The collection of suggestions. */ interface GoogleCloudDialogflowV2beta1IntentMessageSuggestionsResponse { /** * The list of suggested replies. */ suggestions: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageSuggestionResponse[]; } /** * Cell of TableCardRow. */ interface GoogleCloudDialogflowV2beta1IntentMessageTableCardCellResponse { /** * Text in this cell. */ text: string; } /** * Table card for Actions on Google. */ interface GoogleCloudDialogflowV2beta1IntentMessageTableCardResponse { /** * Optional. List of buttons for the card. */ buttons: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonResponse[]; /** * Optional. Display properties for the columns in this table. */ columnProperties: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageColumnPropertiesResponse[]; /** * Optional. Image which should be displayed on the card. */ image: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageImageResponse; /** * Optional. Rows in this table of data. */ rows: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageTableCardRowResponse[]; /** * Optional. Subtitle to the title. */ subtitle: string; /** * Title of the card. */ title: string; } /** * Row of TableCard. */ interface GoogleCloudDialogflowV2beta1IntentMessageTableCardRowResponse { /** * Optional. List of cells that make up this row. */ cells: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentMessageTableCardCellResponse[]; /** * Optional. Whether to add a visual divider after this row. */ dividerAfter: boolean; } /** * Plays audio from a file in Telephony Gateway. */ interface GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudioResponse { /** * URI to a Google Cloud Storage object containing the audio to play, e.g., "gs://bucket/object". The object must contain a single channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz. This object must be readable by the `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` service account where is the number of the Telephony Gateway project (usually the same as the Dialogflow agent project). If the Google Cloud Storage bucket is in the Telephony Gateway project, this permission is added by default when enabling the Dialogflow V2 API. For audio from other sources, consider using the `TelephonySynthesizeSpeech` message with SSML. */ audioUri: string; } /** * Synthesizes speech and plays back the synthesized audio to the caller in Telephony Gateway. Telephony Gateway takes the synthesizer settings from `DetectIntentResponse.output_audio_config` which can either be set at request-level or can come from the agent-level synthesizer config. */ interface GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeechResponse { /** * The SSML to be synthesized. For more information, see [SSML](https://developers.google.com/actions/reference/ssml). */ ssml: string; /** * The raw text to be synthesized. */ text: string; } /** * Transfers the call in Telephony Gateway. */ interface GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCallResponse { /** * The phone number to transfer the call to in [E.164 format](https://en.wikipedia.org/wiki/E.164). We currently only allow transferring to US numbers (+1xxxyyyzzzz). */ phoneNumber: string; } /** * The text response message. */ interface GoogleCloudDialogflowV2beta1IntentMessageTextResponse { /** * Optional. The collection of the agent's responses. */ text: string[]; } /** * Represents intent parameters. */ interface GoogleCloudDialogflowV2beta1IntentParameterResponse { /** * Optional. The default value to use when the `value` yields an empty result. Default values can be extracted from contexts by using the following syntax: `#context_name.parameter_name`. */ defaultValue: string; /** * The name of the parameter. */ displayName: string; /** * Optional. The name of the entity type, prefixed with `@`, that describes values of the parameter. If the parameter is required, this must be provided. */ entityTypeDisplayName: string; /** * Optional. Indicates whether the parameter represents a list of values. */ isList: boolean; /** * Optional. Indicates whether the parameter is required. That is, whether the intent cannot be completed without collecting the parameter value. */ mandatory: boolean; /** * The unique identifier of this parameter. */ name: string; /** * Optional. The collection of prompts that the agent can present to the user in order to collect a value for the parameter. */ prompts: string[]; /** * Optional. The definition of the parameter value. It can be: - a constant string, - a parameter value defined as `$parameter_name`, - an original parameter value defined as `$parameter_name.original`, - a parameter value from some context defined as `#context_name.parameter_name`. */ value: string; } /** * Represents a part of a training phrase. */ interface GoogleCloudDialogflowV2beta1IntentTrainingPhrasePartResponse { /** * Optional. The parameter name for the value extracted from the annotated part of the example. This field is required for annotated parts of the training phrase. */ alias: string; /** * Optional. The entity type name prefixed with `@`. This field is required for annotated parts of the training phrase. */ entityType: string; /** * The text for this part. */ text: string; /** * Optional. Indicates whether the text was manually annotated. This field is set to true when the Dialogflow Console is used to manually annotate the part. When creating an annotated part with the API, you must set this to true. */ userDefined: boolean; } /** * Represents an example that the agent is trained on. */ interface GoogleCloudDialogflowV2beta1IntentTrainingPhraseResponse { /** * The unique identifier of this training phrase. */ name: string; /** * The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `entity_type`, `alias`, and `user_defined` fields are all set. */ parts: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1IntentTrainingPhrasePartResponse[]; /** * Optional. Indicates how many times this example was added to the intent. Each time a developer adds an existing sample by editing an intent or training, this counter is increased. */ timesAddedCount: number; /** * The type of the training phrase. */ type: string; } /** * Defines logging behavior for conversation lifecycle events. */ interface GoogleCloudDialogflowV2beta1LoggingConfigResponse { /** * Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos. */ enableStackdriverLogging: boolean; } /** * Defines notification behavior. */ interface GoogleCloudDialogflowV2beta1NotificationConfigResponse { /** * Format of message. */ messageFormat: string; /** * Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. For telephony integration to receive notification, make sure either this topic is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. For chat integration to receive notification, make sure API caller has been granted the `Dialogflow Service Agent` role for the topic. Format: `projects//locations//topics/`. */ topic: string; } /** * Configures speech transcription for ConversationProfile. */ interface GoogleCloudDialogflowV2beta1SpeechToTextConfigResponse { /** * Which Speech model to select. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then a default model is used. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. */ model: string; /** * The speech model used in speech to text. `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated as `USE_ENHANCED`. It can be overridden in AnalyzeContentRequest and StreamingAnalyzeContentRequest request. If enhanced model variant is specified and an enhanced version of the specified model for the language does not exist, then it would emit an error. */ speechModelVariant: string; /** * Use timeout based endpointing, interpreting endpointer sensitivy as seconds of timeout value. */ useTimeoutBasedEndpointing: boolean; } /** * The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. */ interface GoogleCloudDialogflowV2beta1SuggestionFeatureResponse { /** * Type of Human Agent Assistant API feature to request. */ type: string; } /** * Configuration of how speech should be synthesized. */ interface GoogleCloudDialogflowV2beta1SynthesizeSpeechConfigResponse { /** * Optional. An identifier which selects 'audio effects' profiles that are applied on (post synthesized) text to speech. Effects are applied on top of each other in the order they are given. */ effectsProfileId: string[]; /** * Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 semitones from the original pitch. -20 means decrease 20 semitones from the original pitch. */ pitch: number; /** * Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other values < 0.25 or > 4.0 will return an error. */ speakingRate: number; /** * Optional. The desired voice of the synthesized audio. */ voice: outputs.dialogflow.v2beta1.GoogleCloudDialogflowV2beta1VoiceSelectionParamsResponse; /** * Optional. Volume gain (in dB) of the normal native volume supported by the specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. We strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that. */ volumeGainDb: number; } /** * Instructs the speech synthesizer on how to generate the output audio content. */ interface GoogleCloudDialogflowV2beta1TextToSpeechSettingsResponse { /** * Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained. */ enableTextToSpeech: boolean; /** * Audio encoding of the synthesized audio content. */ outputAudioEncoding: string; /** * Optional. The synthesis sample rate (in hertz) for this audio. If not provided, then the synthesizer will use the default sample rate based on the audio encoding. If this is different from the voice's natural sample rate, then the synthesizer will honor this request by converting to the desired sample rate (which might result in worse audio quality). */ sampleRateHertz: number; /** * Optional. Configuration of how speech should be synthesized, mapping from language (https://cloud.google.com/dialogflow/docs/reference/language) to SynthesizeSpeechConfig. */ synthesizeSpeechConfigs: { [key: string]: string; }; } /** * Description of which voice to use for speech synthesis. */ interface GoogleCloudDialogflowV2beta1VoiceSelectionParamsResponse { /** * Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and ssml_gender. For the list of available voices, please refer to [Supported voices and languages](https://cloud.google.com/text-to-speech/docs/voices). */ name: string; /** * Optional. The preferred gender of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and name. Note that this is only a preference, not requirement. If a voice of the appropriate gender is not available, the synthesizer should substitute a voice with a different gender rather than failing the request. */ ssmlGender: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface GoogleRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } namespace v3 { /** * Define behaviors for DTMF (dual tone multi frequency). */ interface GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettingsResponse { /** * If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a "3" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance). */ enabled: boolean; /** * The digit that terminates a DTMF digit sequence. */ finishDigit: string; /** * Max length of DTMF digits. */ maxDigits: number; } /** * Define behaviors on logging. */ interface GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettingsResponse { /** * If true, DF Interaction logging is currently enabled. */ enableInteractionLogging: boolean; /** * If true, StackDriver logging is currently enabled. */ enableStackdriverLogging: boolean; } /** * Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. */ interface GoogleCloudDialogflowCxV3AdvancedSettingsResponse { /** * If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level */ audioExportGcsDestination: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3GcsDestinationResponse; /** * Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level. */ dtmfSettings: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettingsResponse; /** * Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level. */ loggingSettings: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettingsResponse; } /** * Settings for answer feedback collection. */ interface GoogleCloudDialogflowCxV3AgentAnswerFeedbackSettingsResponse { /** * Optional. If enabled, end users will be able to provide answer feedback to Dialogflow responses. Feature works only if interaction logging is enabled in the Dialogflow agent. */ enableAnswerFeedback: boolean; } /** * Settings for Gen App Builder. */ interface GoogleCloudDialogflowCxV3AgentGenAppBuilderSettingsResponse { /** * The full name of the Gen App Builder engine related to this agent if there is one. Format: `projects/{Project ID}/locations/{Location ID}/collections/{Collection ID}/engines/{Engine ID}` */ engine: string; } /** * Settings of integration with GitHub. */ interface GoogleCloudDialogflowCxV3AgentGitIntegrationSettingsGithubSettingsResponse { /** * The access token used to authenticate the access to the GitHub repository. */ accessToken: string; /** * A list of branches configured to be used from Dialogflow. */ branches: string[]; /** * The unique repository display name for the GitHub repository. */ displayName: string; /** * The GitHub repository URI related to the agent. */ repositoryUri: string; /** * The branch of the GitHub repository tracked for this agent. */ trackingBranch: string; } /** * Settings for connecting to Git repository for an agent. */ interface GoogleCloudDialogflowCxV3AgentGitIntegrationSettingsResponse { /** * GitHub settings. */ githubSettings: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3AgentGitIntegrationSettingsGithubSettingsResponse; } /** * Represents the natural speech audio to be processed. */ interface GoogleCloudDialogflowCxV3AudioInputResponse { /** * The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests. */ audio: string; /** * Instructs the speech recognizer how to process the speech audio. */ config: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3InputAudioConfigResponse; } /** * Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length fromt the the start of the input audio. The flow goes like below: --> Time without speech detection | utterance only | utterance or no-speech event | | +-------------+ | +------------+ | +---------------+ ----------+ no barge-in +-|-+ barge-in +-|-+ normal period +----------- +-------------+ | +------------+ | +---------------+ No-speech event is a response with END_OF_UTTERANCE without any transcript following up. */ interface GoogleCloudDialogflowCxV3BargeInConfigResponse { /** * Duration that is not eligible for barge-in at the beginning of the input audio. */ noBargeInDuration: string; /** * Total duration for the playback at the beginning of the input audio. */ totalDuration: string; } /** * One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response. */ interface GoogleCloudDialogflowCxV3ConversationTurnResponse { /** * The user input. */ userInput: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ConversationTurnUserInputResponse; /** * The virtual agent output. */ virtualAgentOutput: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ConversationTurnVirtualAgentOutputResponse; } /** * The input from the human user. */ interface GoogleCloudDialogflowCxV3ConversationTurnUserInputResponse { /** * Whether sentiment analysis is enabled. */ enableSentimentAnalysis: boolean; /** * Parameters that need to be injected into the conversation during intent detection. */ injectedParameters: { [key: string]: string; }; /** * Supports text input, event input, dtmf input in the test case. */ input: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3QueryInputResponse; /** * If webhooks should be allowed to trigger in response to the user utterance. Often if parameters are injected, webhooks should not be enabled. */ isWebhookEnabled: boolean; } /** * The output from the virtual agent. */ interface GoogleCloudDialogflowCxV3ConversationTurnVirtualAgentOutputResponse { /** * The Page on which the utterance was spoken. Only name and displayName will be set. */ currentPage: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3PageResponse; /** * Input only. The diagnostic info output for the turn. Required to calculate the testing coverage. */ diagnosticInfo: { [key: string]: string; }; /** * If this is part of a result conversation turn, the list of differences between the original run and the replay for this output, if any. */ differences: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3TestRunDifferenceResponse[]; /** * The session parameters available to the bot at this point. */ sessionParameters: { [key: string]: string; }; /** * Response error from the agent in the test result. If set, other output is empty. */ status: outputs.dialogflow.v3.GoogleRpcStatusResponse; /** * The text responses from the agent for the turn. */ textResponses: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageTextResponse[]; /** * The Intent that triggered the response. Only name and displayName will be set. */ triggeredIntent: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3IntentResponse; } /** * A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains. */ interface GoogleCloudDialogflowCxV3DataStoreConnectionResponse { /** * The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}` */ dataStore: string; /** * The type of the connected data store. */ dataStoreType: string; } /** * Represents the input for dtmf event. */ interface GoogleCloudDialogflowCxV3DtmfInputResponse { /** * The dtmf digits. */ digits: string; /** * The finish digit (if any). */ finishDigit: string; } /** * An **entity entry** for an associated entity type. */ interface GoogleCloudDialogflowCxV3EntityTypeEntityResponse { /** * A collection of value synonyms. For example, if the entity type is *vegetable*, and `value` is *scallions*, a synonym could be *green onions*. For `KIND_LIST` entity types: * This collection must contain exactly one synonym equal to `value`. */ synonyms: string[]; /** * The primary value associated with this entity entry. For example, if the entity type is *vegetable*, the value could be *scallions*. For `KIND_MAP` entity types: * A canonical value to be used in place of synonyms. For `KIND_LIST` entity types: * A string that can contain references to other entity types (with or without aliases). */ value: string; } /** * An excluded entity phrase that should not be matched. */ interface GoogleCloudDialogflowCxV3EntityTypeExcludedPhraseResponse { /** * The word or phrase to be excluded. */ value: string; } /** * The configuration for continuous tests. */ interface GoogleCloudDialogflowCxV3EnvironmentTestCasesConfigResponse { /** * Whether to run test cases in TestCasesConfig.test_cases periodically. Default false. If set to true, run once a day. */ enableContinuousRun: boolean; /** * Whether to run test cases in TestCasesConfig.test_cases before deploying a flow version to the environment. Default false. */ enablePredeploymentRun: boolean; /** * A list of test case names to run. They should be under the same agent. Format of each test case name: `projects//locations/ /agents//testCases/` */ testCases: string[]; } /** * Configuration for the version. */ interface GoogleCloudDialogflowCxV3EnvironmentVersionConfigResponse { /** * Format: projects//locations//agents//flows//versions/. */ version: string; } /** * Configuration for webhooks. */ interface GoogleCloudDialogflowCxV3EnvironmentWebhookConfigResponse { /** * The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`. */ webhookOverrides: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3WebhookResponse[]; } /** * An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow. */ interface GoogleCloudDialogflowCxV3EventHandlerResponse { /** * The name of the event to handle. */ event: string; /** * The unique identifier of this event handler. */ name: string; /** * The target flow to transition to. Format: `projects//locations//agents//flows/`. */ targetFlow: string; /** * The target page to transition to. Format: `projects//locations//agents//flows//pages/`. */ targetPage: string; /** * The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks. */ triggerFulfillment: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FulfillmentResponse; } /** * Represents the event to trigger. */ interface GoogleCloudDialogflowCxV3EventInputResponse { /** * Name of the event. */ event: string; } /** * Definition of the experiment. */ interface GoogleCloudDialogflowCxV3ExperimentDefinitionResponse { /** * The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. "query_input.language_code=en" See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). */ condition: string; /** * The flow versions as the variants of this experiment. */ versionVariants: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3VersionVariantsResponse; } /** * A confidence interval is a range of possible values for the experiment objective you are trying to measure. */ interface GoogleCloudDialogflowCxV3ExperimentResultConfidenceIntervalResponse { /** * The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval. */ confidenceLevel: number; /** * Lower bound of the interval. */ lowerBound: number; /** * The percent change between an experiment metric's value and the value for its control. */ ratio: number; /** * Upper bound of the interval. */ upperBound: number; } /** * Metric and corresponding confidence intervals. */ interface GoogleCloudDialogflowCxV3ExperimentResultMetricResponse { /** * The probability that the treatment is better than all other treatments in the experiment */ confidenceInterval: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ExperimentResultConfidenceIntervalResponse; /** * Count value of a metric. */ count: number; /** * Count-based metric type. Only one of type or count_type is specified in each Metric. */ countType: string; /** * Ratio value of a metric. */ ratio: number; /** * Ratio-based metric type. Only one of type or count_type is specified in each Metric. */ type: string; } /** * The inference result which includes an objective metric to optimize and the confidence interval. */ interface GoogleCloudDialogflowCxV3ExperimentResultResponse { /** * The last time the experiment's stats data was updated. Will have default value if stats have never been computed for this experiment. */ lastUpdateTime: string; /** * Version variants and metrics. */ versionMetrics: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ExperimentResultVersionMetricsResponse[]; } /** * Version variant and associated metrics. */ interface GoogleCloudDialogflowCxV3ExperimentResultVersionMetricsResponse { /** * The metrics and corresponding confidence intervals in the inference result. */ metrics: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ExperimentResultMetricResponse[]; /** * Number of sessions that were allocated to this version. */ sessionCount: number; /** * The name of the flow Version. Format: `projects//locations//agents//flows//versions/`. */ version: string; } /** * Configuration for how the filling of a parameter should be handled. */ interface GoogleCloudDialogflowCxV3FormParameterFillBehaviorResponse { /** * The fulfillment to provide the initial prompt that the agent can present to the user in order to fill the parameter. */ initialPromptFulfillment: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FulfillmentResponse; /** * The handlers for parameter-level events, used to provide reprompt for the parameter or transition to a different page/flow. The supported events are: * `sys.no-match-`, where N can be from 1 to 6 * `sys.no-match-default` * `sys.no-input-`, where N can be from 1 to 6 * `sys.no-input-default` * `sys.invalid-parameter` `initial_prompt_fulfillment` provides the first prompt for the parameter. If the user's response does not fill the parameter, a no-match/no-input event will be triggered, and the fulfillment associated with the `sys.no-match-1`/`sys.no-input-1` handler (if defined) will be called to provide a prompt. The `sys.no-match-2`/`sys.no-input-2` handler (if defined) will respond to the next no-match/no-input event, and so on. A `sys.no-match-default` or `sys.no-input-default` handler will be used to handle all following no-match/no-input events after all numbered no-match/no-input handlers for the parameter are consumed. A `sys.invalid-parameter` handler can be defined to handle the case where the parameter values have been `invalidated` by webhook. For example, if the user's response fill the parameter, however the parameter was invalidated by webhook, the fulfillment associated with the `sys.invalid-parameter` handler (if defined) will be called to provide a prompt. If the event handler for the corresponding event can't be found on the parameter, `initial_prompt_fulfillment` will be re-prompted. */ repromptEventHandlers: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3EventHandlerResponse[]; } /** * Represents a form parameter. */ interface GoogleCloudDialogflowCxV3FormParameterResponse { /** * Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level. */ advancedSettings: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3AdvancedSettingsResponse; /** * The default value of an optional parameter. If the parameter is required, the default value will be ignored. */ defaultValue: any; /** * The human-readable name of the parameter, unique within the form. */ displayName: string; /** * The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types. */ entityType: string; /** * Defines fill behavior for the parameter. */ fillBehavior: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FormParameterFillBehaviorResponse; /** * Indicates whether the parameter represents a list of values. */ isList: boolean; /** * Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled. */ redact: boolean; /** * Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes. */ required: boolean; } /** * A form is a data model that groups related parameters that can be collected from the user. The process in which the agent prompts the user and collects parameter values from the user is called form filling. A form can be added to a page. When form filling is done, the filled parameters will be written to the session. */ interface GoogleCloudDialogflowCxV3FormResponse { /** * Parameters to collect from the user. */ parameters: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FormParameterResponse[]; } /** * The list of messages or conditional cases to activate for this case. */ interface GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseCaseContentResponse { /** * Additional cases to be evaluated. */ additionalCases: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FulfillmentConditionalCasesResponse; /** * Returned message. */ message: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageResponse; } /** * Each case has a Boolean condition. When it is evaluated to be True, the corresponding messages will be selected and evaluated recursively. */ interface GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseResponse { /** * A list of case content. */ caseContent: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseCaseContentResponse[]; /** * The condition to activate and select this case. Empty means the condition is always true. The condition is evaluated against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). */ condition: string; } /** * A list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored. */ interface GoogleCloudDialogflowCxV3FulfillmentConditionalCasesResponse { /** * A list of cascading if-else conditions. */ cases: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseResponse[]; } /** * A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both. */ interface GoogleCloudDialogflowCxV3FulfillmentResponse { /** * Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level. */ advancedSettings: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3AdvancedSettingsResponse; /** * Conditional cases for this fulfillment. */ conditionalCases: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FulfillmentConditionalCasesResponse[]; /** * If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers. */ enableGenerativeFallback: boolean; /** * The list of rich message responses to present to the user. */ messages: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageResponse[]; /** * Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks. */ returnPartialResponses: boolean; /** * Set parameter values before executing the webhook. */ setParameterActions: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FulfillmentSetParameterActionResponse[]; /** * The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified. */ tag: string; /** * The webhook to call. Format: `projects//locations//agents//webhooks/`. */ webhook: string; } /** * Setting a parameter value. */ interface GoogleCloudDialogflowCxV3FulfillmentSetParameterActionResponse { /** * Display name of the parameter. */ parameter: string; /** * The new value of the parameter. A null value clears the parameter. */ value: any; } /** * Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow. */ interface GoogleCloudDialogflowCxV3GcsDestinationResponse { /** * The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation. */ uri: string; } /** * Instructs the speech recognizer on how to process the audio content. */ interface GoogleCloudDialogflowCxV3InputAudioConfigResponse { /** * Audio encoding of the audio content to process. */ audioEncoding: string; /** * Configuration of barge-in behavior during the streaming of input audio. */ bargeInConfig: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3BargeInConfigResponse; /** * Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information. */ enableWordInfo: boolean; /** * Optional. Which Speech model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the InputAudioConfig. If enhanced speech model is enabled for the agent and an enhanced version of the specified model for the language does not exist, then the speech is recognized using the standard version of the specified model. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. If you specify a model, the following models typically have the best performance: - phone_call (best for Agent Assist and telephony) - latest_short (best for Dialogflow non-telephony) - command_and_search (best for very short utterances and commands) */ model: string; /** * Optional. Which variant of the Speech model to use. */ modelVariant: string; /** * Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details. */ phraseHints: string[]; /** * Sample rate (in Hertz) of the audio content sent in the query. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics) for more details. */ sampleRateHertz: number; /** * Optional. If `false` (default), recognition does not cease until the client closes the stream. If `true`, the recognizer will detect a single spoken utterance in input audio. Recognition ceases when it detects the audio's voice has stopped or paused. In this case, once a detected intent is received, the client should close the stream and start a new request with a new stream as needed. Note: This setting is relevant only for streaming methods. */ singleUtterance: boolean; } /** * Represents the intent to trigger programmatically rather than as a result of natural language processing. */ interface GoogleCloudDialogflowCxV3IntentInputResponse { /** * The unique identifier of the intent. Format: `projects//locations//agents//intents/`. */ intent: string; } /** * Represents an intent parameter. */ interface GoogleCloudDialogflowCxV3IntentParameterResponse { /** * The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types. */ entityType: string; /** * Indicates whether the parameter represents a list of values. */ isList: boolean; /** * Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled. */ redact: boolean; } /** * An intent represents a user's intent to interact with a conversational agent. You can provide information for the Dialogflow API to use to match user input to an intent by adding training phrases (i.e., examples of user input) to your intent. */ interface GoogleCloudDialogflowCxV3IntentResponse { /** * Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters. */ description: string; /** * The human-readable name of the intent, unique within the agent. */ displayName: string; /** * Indicates whether this is a fallback intent. Currently only default fallback intent is allowed in the agent, which is added upon agent creation. Adding training phrases to fallback intent is useful in the case of requests that are mistakenly matched, since training phrases assigned to fallback intents act as negative examples that triggers no-match event. */ isFallback: boolean; /** * The key/value metadata to label an intent. Labels can contain lowercase letters, digits and the symbols '-' and '_'. International characters are allowed, including letters from unicase alphabets. Keys must start with a letter. Keys and values can be no longer than 63 characters and no more than 128 bytes. Prefix "sys-" is reserved for Dialogflow defined labels. Currently allowed Dialogflow defined labels include: * sys-head * sys-contextual The above labels do not require value. "sys-head" means the intent is a head intent. "sys.contextual" means the intent is a contextual intent. */ labels: { [key: string]: string; }; /** * The unique identifier of the intent. Required for the Intents.UpdateIntent method. Intents.CreateIntent populates the name automatically. Format: `projects//locations//agents//intents/`. */ name: string; /** * The collection of parameters associated with the intent. */ parameters: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3IntentParameterResponse[]; /** * The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests. */ priority: number; /** * The collection of training phrases the agent is trained on to identify the intent. */ trainingPhrases: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3IntentTrainingPhraseResponse[]; } /** * Represents a part of a training phrase. */ interface GoogleCloudDialogflowCxV3IntentTrainingPhrasePartResponse { /** * The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase. */ parameterId: string; /** * The text for this part. */ text: string; } /** * Represents an example that the agent is trained on to identify the intent. */ interface GoogleCloudDialogflowCxV3IntentTrainingPhraseResponse { /** * The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `parameter_id` field is set. */ parts: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3IntentTrainingPhrasePartResponse[]; /** * Indicates how many times this example was added to the intent. */ repeatCount: number; } /** * The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment. */ interface GoogleCloudDialogflowCxV3KnowledgeConnectorSettingsResponse { /** * Optional. List of related data store connections. */ dataStoreConnections: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3DataStoreConnectionResponse[]; /** * Whether Knowledge Connector is enabled or not. */ enabled: boolean; /** * The target flow to transition to. Format: `projects//locations//agents//flows/`. */ targetFlow: string; /** * The target page to transition to. Format: `projects//locations//agents//flows//pages/`. */ targetPage: string; /** * The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment. */ triggerFulfillment: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FulfillmentResponse; } /** * Settings related to NLU. */ interface GoogleCloudDialogflowCxV3NluSettingsResponse { /** * To filter out false positive results and still get variety in matched natural language inputs for your agent, you can tune the machine learning classification threshold. If the returned score value is less than the threshold value, then a no-match event will be triggered. The score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the default of 0.3 is used. */ classificationThreshold: number; /** * Indicates NLU model training mode. */ modelTrainingMode: string; /** * Indicates the type of NLU model. */ modelType: string; } /** * A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page). */ interface GoogleCloudDialogflowCxV3PageResponse { /** * Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. */ advancedSettings: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3AdvancedSettingsResponse; /** * The human-readable name of the page, unique within the flow. */ displayName: string; /** * The fulfillment to call when the session is entering the page. */ entryFulfillment: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FulfillmentResponse; /** * Handlers associated with the page to handle events such as webhook errors, no match or no input. */ eventHandlers: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3EventHandlerResponse[]; /** * The form associated with the page, used for collecting parameters relevant to the page. */ form: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FormResponse; /** * Optional. Knowledge connector configuration. */ knowledgeConnectorSettings: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3KnowledgeConnectorSettingsResponse; /** * The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`. */ name: string; /** * Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups. */ transitionRouteGroups: string[]; /** * A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: * TransitionRoutes defined in the page with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in flow with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in the page with only condition specified. * TransitionRoutes defined in the transition route groups with only condition specified. */ transitionRoutes: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3TransitionRouteResponse[]; } /** * Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value. */ interface GoogleCloudDialogflowCxV3QueryInputResponse { /** * The natural language speech audio to be processed. */ audio: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3AudioInputResponse; /** * The DTMF event to be handled. */ dtmf: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3DtmfInputResponse; /** * The event to be triggered. */ event: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3EventInputResponse; /** * The intent to be triggered. */ intent: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3IntentInputResponse; /** * The language of the input. See [Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. */ languageCode: string; /** * The natural language text to be processed. */ text: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3TextInputResponse; } /** * Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates that the conversation succeeded. * In a webhook response when you determine that you handled the customer issue. */ interface GoogleCloudDialogflowCxV3ResponseMessageConversationSuccessResponse { /** * Custom metadata. Dialogflow doesn't impose any structure on this. */ metadata: { [key: string]: string; }; } /** * Indicates that interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only and not supposed to be defined by the user. */ interface GoogleCloudDialogflowCxV3ResponseMessageEndInteractionResponse { } /** * Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped. */ interface GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCardResponse { } /** * Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human. */ interface GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoffResponse { /** * Custom metadata for your handoff procedure. Dialogflow doesn't impose any structure on this. */ metadata: { [key: string]: string; }; } /** * Represents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs. The external URIs are specified via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user. */ interface GoogleCloudDialogflowCxV3ResponseMessageMixedAudioResponse { /** * Segments this audio response is composed of. */ segments: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageMixedAudioSegmentResponse[]; } /** * Represents one segment of audio. */ interface GoogleCloudDialogflowCxV3ResponseMessageMixedAudioSegmentResponse { /** * Whether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request. */ allowPlaybackInterruption: boolean; /** * Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request. */ audio: string; /** * Client-specific URI that points to an audio clip accessible to the client. Dialogflow does not impose any validation on it. */ uri: string; } /** * A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. */ interface GoogleCloudDialogflowCxV3ResponseMessageOutputAudioTextResponse { /** * Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request. */ allowPlaybackInterruption: boolean; /** * The SSML text to be synthesized. For more information, see [SSML](/speech/text-to-speech/docs/ssml). */ ssml: string; /** * The raw text to be synthesized. */ text: string; } /** * Specifies an audio clip to be played by the client as part of the response. */ interface GoogleCloudDialogflowCxV3ResponseMessagePlayAudioResponse { /** * Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request. */ allowPlaybackInterruption: boolean; /** * URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it. */ audioUri: string; } /** * Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard. */ interface GoogleCloudDialogflowCxV3ResponseMessageResponse { /** * The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned. */ channel: string; /** * Indicates that the conversation succeeded. */ conversationSuccess: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageConversationSuccessResponse; /** * A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response. */ endInteraction: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageEndInteractionResponse; /** * Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger. */ knowledgeInfoCard: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCardResponse; /** * Hands off conversation to a human agent. */ liveAgentHandoff: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoffResponse; /** * An audio response message composed of both the synthesized Dialogflow agent responses and responses defined via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user. */ mixedAudio: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageMixedAudioResponse; /** * A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. */ outputAudioText: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageOutputAudioTextResponse; /** * Returns a response containing a custom, platform-specific payload. */ payload: { [key: string]: string; }; /** * Signal that the client should play an audio clip hosted at a client-specific URI. Dialogflow uses this to construct mixed_audio. However, Dialogflow itself does not try to read or process the URI in any way. */ playAudio: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessagePlayAudioResponse; /** * Response type. */ responseType: string; /** * A signal that the client should transfer the phone call connected to this agent to a third-party endpoint. */ telephonyTransferCall: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCallResponse; /** * Returns a text response. */ text: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ResponseMessageTextResponse; } /** * Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. */ interface GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCallResponse { /** * Transfer the call to a phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164). */ phoneNumber: string; } /** * The text response message. */ interface GoogleCloudDialogflowCxV3ResponseMessageTextResponse { /** * Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request. */ allowPlaybackInterruption: boolean; /** * A collection of text responses. */ text: string[]; } /** * The configuration for auto rollout. */ interface GoogleCloudDialogflowCxV3RolloutConfigResponse { /** * The conditions that are used to evaluate the failure of a rollout step. If not specified, no rollout steps will fail. E.g. "containment_rate < 10% OR average_turn_count < 3". See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). */ failureCondition: string; /** * The conditions that are used to evaluate the success of a rollout step. If not specified, all rollout steps will proceed to the next one unless failure conditions are met. E.g. "containment_rate > 60% AND callback_rate < 20%". See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). */ rolloutCondition: string; /** * Steps to roll out a flow version. Steps should be sorted by percentage in ascending order. */ rolloutSteps: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3RolloutConfigRolloutStepResponse[]; } /** * A single rollout step with specified traffic allocation. */ interface GoogleCloudDialogflowCxV3RolloutConfigRolloutStepResponse { /** * The name of the rollout step; */ displayName: string; /** * The minimum time that this step should last. Should be longer than 1 hour. If not set, the default minimum duration for each step will be 1 hour. */ minDuration: string; /** * The percentage of traffic allocated to the flow version of this rollout step. (0%, 100%]. */ trafficPercent: number; } /** * State of the auto-rollout process. */ interface GoogleCloudDialogflowCxV3RolloutStateResponse { /** * Start time of the current step. */ startTime: string; /** * Display name of the current auto rollout step. */ step: string; /** * Index of the current step in the auto rollout steps list. */ stepIndex: number; } /** * Settings for exporting audio. */ interface GoogleCloudDialogflowCxV3SecuritySettingsAudioExportSettingsResponse { /** * Filename pattern for exported audio. */ audioExportPattern: string; /** * File format for exported audio file. Currently only in telephony recordings. */ audioFormat: string; /** * Enable audio redaction if it is true. */ enableAudioRedaction: boolean; /** * Cloud Storage bucket to export audio record to. Setting this field would grant the Storage Object Creator role to the Dialogflow Service Agent. API caller that tries to modify this field should have the permission of storage.buckets.setIamPolicy. */ gcsBucket: string; } /** * Settings for exporting conversations to [Insights](https://cloud.google.com/contact-center/insights/docs). */ interface GoogleCloudDialogflowCxV3SecuritySettingsInsightsExportSettingsResponse { /** * If enabled, we will automatically exports conversations to Insights and Insights runs its analyzers. */ enableInsightsExport: boolean; } /** * Settings related to speech recognition. */ interface GoogleCloudDialogflowCxV3SpeechToTextSettingsResponse { /** * Whether to use speech adaptation for speech recognition. */ enableSpeechAdaptation: boolean; } /** * Represents a result from running a test case in an agent environment. */ interface GoogleCloudDialogflowCxV3TestCaseResultResponse { /** * The conversation turns uttered during the test case replay in chronological order. */ conversationTurns: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3ConversationTurnResponse[]; /** * Environment where the test was run. If not set, it indicates the draft environment. */ environment: string; /** * The resource name for the test case result. Format: `projects//locations//agents//testCases/ /results/`. */ name: string; /** * Whether the test case passed in the agent environment. */ testResult: string; /** * The time that the test was run. */ testTime: string; } /** * Represents configurations for a test case. */ interface GoogleCloudDialogflowCxV3TestConfigResponse { /** * Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow. */ flow: string; /** * The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow. */ page: string; /** * Session parameters to be compared when calculating differences. */ trackingParameters: string[]; } /** * The description of differences between original and replayed agent output. */ interface GoogleCloudDialogflowCxV3TestRunDifferenceResponse { /** * A human readable description of the diff, showing the actual output vs expected output. */ description: string; /** * The type of diff. */ type: string; } /** * Represents the natural language text to be processed. */ interface GoogleCloudDialogflowCxV3TextInputResponse { /** * The UTF-8 encoded natural language text to be processed. Text length must not exceed 256 characters. */ text: string; } /** * Settings related to speech synthesizing. */ interface GoogleCloudDialogflowCxV3TextToSpeechSettingsResponse { /** * Configuration of how speech should be synthesized, mapping from language (https://cloud.google.com/dialogflow/cx/docs/reference/language) to SynthesizeSpeechConfig. These settings affect: - The [phone gateway](https://cloud.google.com/dialogflow/cx/docs/concept/integration/phone-gateway) synthesize configuration set via Agent.text_to_speech_settings. - How speech is synthesized when invoking session APIs. Agent.text_to_speech_settings only applies if OutputAudioConfig.synthesize_speech_config is not specified. */ synthesizeSpeechConfigs: { [key: string]: string; }; } /** * A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow. */ interface GoogleCloudDialogflowCxV3TransitionRouteResponse { /** * The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled. */ condition: string; /** * Optional. The description of the transition route. The maximum length is 500 characters. */ description: string; /** * The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled. */ intent: string; /** * The unique identifier of this transition route. */ name: string; /** * The target flow to transition to. Format: `projects//locations//agents//flows/`. */ targetFlow: string; /** * The target page to transition to. Format: `projects//locations//agents//flows//pages/`. */ targetPage: string; /** * The fulfillment to call when the condition is satisfied. At least one of `trigger_fulfillment` and `target` must be specified. When both are defined, `trigger_fulfillment` is executed first. */ triggerFulfillment: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3FulfillmentResponse; } /** * The history of variants update. */ interface GoogleCloudDialogflowCxV3VariantsHistoryResponse { /** * Update time of the variants. */ updateTime: string; /** * The flow versions as the variants. */ versionVariants: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3VersionVariantsResponse; } /** * A list of flow version variants. */ interface GoogleCloudDialogflowCxV3VersionVariantsResponse { /** * A list of flow version variants. */ variants: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3VersionVariantsVariantResponse[]; } /** * A single flow version with specified traffic allocation. */ interface GoogleCloudDialogflowCxV3VersionVariantsVariantResponse { /** * Whether the variant is for the control group. */ isControlGroup: boolean; /** * Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0. */ trafficAllocation: number; /** * The name of the flow version. Format: `projects//locations//agents//flows//versions/`. */ version: string; } /** * Represents configuration for a generic web service. */ interface GoogleCloudDialogflowCxV3WebhookGenericWebServiceResponse { /** * Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") ``` */ allowedCaCerts: string[]; /** * Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST. */ httpMethod: string; /** * Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response */ parameterMapping: { [key: string]: string; }; /** * The password for HTTP Basic authentication. */ password: string; /** * Optional. Defines a custom JSON object as request body to send to flexible webhook. */ requestBody: string; /** * The HTTP request headers to send together with webhook requests. */ requestHeaders: { [key: string]: string; }; /** * The webhook URI for receiving POST requests. It must use https protocol. */ uri: string; /** * The user name for HTTP Basic authentication. */ username: string; /** * Optional. Type of the webhook. */ webhookType: string; } /** * Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend. */ interface GoogleCloudDialogflowCxV3WebhookResponse { /** * Indicates whether the webhook is disabled. */ disabled: boolean; /** * The human-readable name of the webhook, unique within the agent. */ displayName: string; /** * Configuration for a generic web service. */ genericWebService: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3WebhookGenericWebServiceResponse; /** * The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`. */ name: string; /** * Configuration for a [Service Directory](https://cloud.google.com/service-directory) service. */ serviceDirectory: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfigResponse; /** * Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds. */ timeout: string; } /** * Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service. */ interface GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfigResponse { /** * Generic Service configuration of this webhook. */ genericWebService: outputs.dialogflow.v3.GoogleCloudDialogflowCxV3WebhookGenericWebServiceResponse; /** * The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent. */ service: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface GoogleRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } namespace v3beta1 { /** * Define behaviors for DTMF (dual tone multi frequency). */ interface GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettingsResponse { /** * If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a "3" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance). */ enabled: boolean; /** * The digit that terminates a DTMF digit sequence. */ finishDigit: string; /** * Max length of DTMF digits. */ maxDigits: number; } /** * Define behaviors on logging. */ interface GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettingsResponse { /** * If true, DF Interaction logging is currently enabled. */ enableInteractionLogging: boolean; /** * If true, StackDriver logging is currently enabled. */ enableStackdriverLogging: boolean; } /** * Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. */ interface GoogleCloudDialogflowCxV3beta1AdvancedSettingsResponse { /** * If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level */ audioExportGcsDestination: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1GcsDestinationResponse; /** * Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level. */ dtmfSettings: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettingsResponse; /** * Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level. */ loggingSettings: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettingsResponse; } /** * Settings for answer feedback collection. */ interface GoogleCloudDialogflowCxV3beta1AgentAnswerFeedbackSettingsResponse { /** * Optional. If enabled, end users will be able to provide answer feedback to Dialogflow responses. Feature works only if interaction logging is enabled in the Dialogflow agent. */ enableAnswerFeedback: boolean; } /** * Settings for Gen App Builder. */ interface GoogleCloudDialogflowCxV3beta1AgentGenAppBuilderSettingsResponse { /** * The full name of the Gen App Builder engine related to this agent if there is one. Format: `projects/{Project ID}/locations/{Location ID}/collections/{Collection ID}/engines/{Engine ID}` */ engine: string; } /** * Settings of integration with GitHub. */ interface GoogleCloudDialogflowCxV3beta1AgentGitIntegrationSettingsGithubSettingsResponse { /** * The access token used to authenticate the access to the GitHub repository. */ accessToken: string; /** * A list of branches configured to be used from Dialogflow. */ branches: string[]; /** * The unique repository display name for the GitHub repository. */ displayName: string; /** * The GitHub repository URI related to the agent. */ repositoryUri: string; /** * The branch of the GitHub repository tracked for this agent. */ trackingBranch: string; } /** * Settings for connecting to Git repository for an agent. */ interface GoogleCloudDialogflowCxV3beta1AgentGitIntegrationSettingsResponse { /** * GitHub settings. */ githubSettings: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1AgentGitIntegrationSettingsGithubSettingsResponse; } /** * Represents the natural speech audio to be processed. */ interface GoogleCloudDialogflowCxV3beta1AudioInputResponse { /** * The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests. */ audio: string; /** * Instructs the speech recognizer how to process the speech audio. */ config: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1InputAudioConfigResponse; } /** * Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length fromt the the start of the input audio. The flow goes like below: --> Time without speech detection | utterance only | utterance or no-speech event | | +-------------+ | +------------+ | +---------------+ ----------+ no barge-in +-|-+ barge-in +-|-+ normal period +----------- +-------------+ | +------------+ | +---------------+ No-speech event is a response with END_OF_UTTERANCE without any transcript following up. */ interface GoogleCloudDialogflowCxV3beta1BargeInConfigResponse { /** * Duration that is not eligible for barge-in at the beginning of the input audio. */ noBargeInDuration: string; /** * Total duration for the playback at the beginning of the input audio. */ totalDuration: string; } /** * One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response. */ interface GoogleCloudDialogflowCxV3beta1ConversationTurnResponse { /** * The user input. */ userInput: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ConversationTurnUserInputResponse; /** * The virtual agent output. */ virtualAgentOutput: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ConversationTurnVirtualAgentOutputResponse; } /** * The input from the human user. */ interface GoogleCloudDialogflowCxV3beta1ConversationTurnUserInputResponse { /** * Whether sentiment analysis is enabled. */ enableSentimentAnalysis: boolean; /** * Parameters that need to be injected into the conversation during intent detection. */ injectedParameters: { [key: string]: string; }; /** * Supports text input, event input, dtmf input in the test case. */ input: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1QueryInputResponse; /** * If webhooks should be allowed to trigger in response to the user utterance. Often if parameters are injected, webhooks should not be enabled. */ isWebhookEnabled: boolean; } /** * The output from the virtual agent. */ interface GoogleCloudDialogflowCxV3beta1ConversationTurnVirtualAgentOutputResponse { /** * The Page on which the utterance was spoken. Only name and displayName will be set. */ currentPage: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1PageResponse; /** * Input only. The diagnostic info output for the turn. Required to calculate the testing coverage. */ diagnosticInfo: { [key: string]: string; }; /** * If this is part of a result conversation turn, the list of differences between the original run and the replay for this output, if any. */ differences: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1TestRunDifferenceResponse[]; /** * The session parameters available to the bot at this point. */ sessionParameters: { [key: string]: string; }; /** * Response error from the agent in the test result. If set, other output is empty. */ status: outputs.dialogflow.v3beta1.GoogleRpcStatusResponse; /** * The text responses from the agent for the turn. */ textResponses: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageTextResponse[]; /** * The Intent that triggered the response. Only name and displayName will be set. */ triggeredIntent: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1IntentResponse; } /** * A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains. */ interface GoogleCloudDialogflowCxV3beta1DataStoreConnectionResponse { /** * The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}` */ dataStore: string; /** * The type of the connected data store. */ dataStoreType: string; } /** * Represents the input for dtmf event. */ interface GoogleCloudDialogflowCxV3beta1DtmfInputResponse { /** * The dtmf digits. */ digits: string; /** * The finish digit (if any). */ finishDigit: string; } /** * An **entity entry** for an associated entity type. */ interface GoogleCloudDialogflowCxV3beta1EntityTypeEntityResponse { /** * A collection of value synonyms. For example, if the entity type is *vegetable*, and `value` is *scallions*, a synonym could be *green onions*. For `KIND_LIST` entity types: * This collection must contain exactly one synonym equal to `value`. */ synonyms: string[]; /** * The primary value associated with this entity entry. For example, if the entity type is *vegetable*, the value could be *scallions*. For `KIND_MAP` entity types: * A canonical value to be used in place of synonyms. For `KIND_LIST` entity types: * A string that can contain references to other entity types (with or without aliases). */ value: string; } /** * An excluded entity phrase that should not be matched. */ interface GoogleCloudDialogflowCxV3beta1EntityTypeExcludedPhraseResponse { /** * The word or phrase to be excluded. */ value: string; } /** * The configuration for continuous tests. */ interface GoogleCloudDialogflowCxV3beta1EnvironmentTestCasesConfigResponse { /** * Whether to run test cases in TestCasesConfig.test_cases periodically. Default false. If set to true, run once a day. */ enableContinuousRun: boolean; /** * Whether to run test cases in TestCasesConfig.test_cases before deploying a flow version to the environment. Default false. */ enablePredeploymentRun: boolean; /** * A list of test case names to run. They should be under the same agent. Format of each test case name: `projects//locations/ /agents//testCases/` */ testCases: string[]; } /** * Configuration for the version. */ interface GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfigResponse { /** * Format: projects//locations//agents//flows//versions/. */ version: string; } /** * Configuration for webhooks. */ interface GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfigResponse { /** * The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`. */ webhookOverrides: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1WebhookResponse[]; } /** * An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow. */ interface GoogleCloudDialogflowCxV3beta1EventHandlerResponse { /** * The name of the event to handle. */ event: string; /** * The unique identifier of this event handler. */ name: string; /** * The target flow to transition to. Format: `projects//locations//agents//flows/`. */ targetFlow: string; /** * The target page to transition to. Format: `projects//locations//agents//flows//pages/`. */ targetPage: string; /** * The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks. */ triggerFulfillment: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FulfillmentResponse; } /** * Represents the event to trigger. */ interface GoogleCloudDialogflowCxV3beta1EventInputResponse { /** * Name of the event. */ event: string; } /** * Definition of the experiment. */ interface GoogleCloudDialogflowCxV3beta1ExperimentDefinitionResponse { /** * The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. "query_input.language_code=en" See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). */ condition: string; /** * The flow versions as the variants of this experiment. */ versionVariants: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1VersionVariantsResponse; } /** * A confidence interval is a range of possible values for the experiment objective you are trying to measure. */ interface GoogleCloudDialogflowCxV3beta1ExperimentResultConfidenceIntervalResponse { /** * The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval. */ confidenceLevel: number; /** * Lower bound of the interval. */ lowerBound: number; /** * The percent change between an experiment metric's value and the value for its control. */ ratio: number; /** * Upper bound of the interval. */ upperBound: number; } /** * Metric and corresponding confidence intervals. */ interface GoogleCloudDialogflowCxV3beta1ExperimentResultMetricResponse { /** * The probability that the treatment is better than all other treatments in the experiment */ confidenceInterval: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ExperimentResultConfidenceIntervalResponse; /** * Count value of a metric. */ count: number; /** * Count-based metric type. Only one of type or count_type is specified in each Metric. */ countType: string; /** * Ratio value of a metric. */ ratio: number; /** * Ratio-based metric type. Only one of type or count_type is specified in each Metric. */ type: string; } /** * The inference result which includes an objective metric to optimize and the confidence interval. */ interface GoogleCloudDialogflowCxV3beta1ExperimentResultResponse { /** * The last time the experiment's stats data was updated. Will have default value if stats have never been computed for this experiment. */ lastUpdateTime: string; /** * Version variants and metrics. */ versionMetrics: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ExperimentResultVersionMetricsResponse[]; } /** * Version variant and associated metrics. */ interface GoogleCloudDialogflowCxV3beta1ExperimentResultVersionMetricsResponse { /** * The metrics and corresponding confidence intervals in the inference result. */ metrics: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ExperimentResultMetricResponse[]; /** * Number of sessions that were allocated to this version. */ sessionCount: number; /** * The name of the flow Version. Format: `projects//locations//agents//flows//versions/`. */ version: string; } /** * Configuration for how the filling of a parameter should be handled. */ interface GoogleCloudDialogflowCxV3beta1FormParameterFillBehaviorResponse { /** * The fulfillment to provide the initial prompt that the agent can present to the user in order to fill the parameter. */ initialPromptFulfillment: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FulfillmentResponse; /** * The handlers for parameter-level events, used to provide reprompt for the parameter or transition to a different page/flow. The supported events are: * `sys.no-match-`, where N can be from 1 to 6 * `sys.no-match-default` * `sys.no-input-`, where N can be from 1 to 6 * `sys.no-input-default` * `sys.invalid-parameter` `initial_prompt_fulfillment` provides the first prompt for the parameter. If the user's response does not fill the parameter, a no-match/no-input event will be triggered, and the fulfillment associated with the `sys.no-match-1`/`sys.no-input-1` handler (if defined) will be called to provide a prompt. The `sys.no-match-2`/`sys.no-input-2` handler (if defined) will respond to the next no-match/no-input event, and so on. A `sys.no-match-default` or `sys.no-input-default` handler will be used to handle all following no-match/no-input events after all numbered no-match/no-input handlers for the parameter are consumed. A `sys.invalid-parameter` handler can be defined to handle the case where the parameter values have been `invalidated` by webhook. For example, if the user's response fill the parameter, however the parameter was invalidated by webhook, the fulfillment associated with the `sys.invalid-parameter` handler (if defined) will be called to provide a prompt. If the event handler for the corresponding event can't be found on the parameter, `initial_prompt_fulfillment` will be re-prompted. */ repromptEventHandlers: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1EventHandlerResponse[]; } /** * Represents a form parameter. */ interface GoogleCloudDialogflowCxV3beta1FormParameterResponse { /** * Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level. */ advancedSettings: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1AdvancedSettingsResponse; /** * The default value of an optional parameter. If the parameter is required, the default value will be ignored. */ defaultValue: any; /** * The human-readable name of the parameter, unique within the form. */ displayName: string; /** * The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types. */ entityType: string; /** * Defines fill behavior for the parameter. */ fillBehavior: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FormParameterFillBehaviorResponse; /** * Indicates whether the parameter represents a list of values. */ isList: boolean; /** * Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled. */ redact: boolean; /** * Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes. */ required: boolean; } /** * A form is a data model that groups related parameters that can be collected from the user. The process in which the agent prompts the user and collects parameter values from the user is called form filling. A form can be added to a page. When form filling is done, the filled parameters will be written to the session. */ interface GoogleCloudDialogflowCxV3beta1FormResponse { /** * Parameters to collect from the user. */ parameters: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FormParameterResponse[]; } /** * The list of messages or conditional cases to activate for this case. */ interface GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseCaseContentResponse { /** * Additional cases to be evaluated. */ additionalCases: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesResponse; /** * Returned message. */ message: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageResponse; } /** * Each case has a Boolean condition. When it is evaluated to be True, the corresponding messages will be selected and evaluated recursively. */ interface GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseResponse { /** * A list of case content. */ caseContent: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseCaseContentResponse[]; /** * The condition to activate and select this case. Empty means the condition is always true. The condition is evaluated against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). */ condition: string; } /** * A list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored. */ interface GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesResponse { /** * A list of cascading if-else conditions. */ cases: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseResponse[]; } /** * A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both. */ interface GoogleCloudDialogflowCxV3beta1FulfillmentResponse { /** * Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level. */ advancedSettings: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1AdvancedSettingsResponse; /** * Conditional cases for this fulfillment. */ conditionalCases: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesResponse[]; /** * If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers. */ enableGenerativeFallback: boolean; /** * The list of rich message responses to present to the user. */ messages: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageResponse[]; /** * Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks. */ returnPartialResponses: boolean; /** * Set parameter values before executing the webhook. */ setParameterActions: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FulfillmentSetParameterActionResponse[]; /** * The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified. */ tag: string; /** * The webhook to call. Format: `projects//locations//agents//webhooks/`. */ webhook: string; } /** * Setting a parameter value. */ interface GoogleCloudDialogflowCxV3beta1FulfillmentSetParameterActionResponse { /** * Display name of the parameter. */ parameter: string; /** * The new value of the parameter. A null value clears the parameter. */ value: any; } /** * Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow. */ interface GoogleCloudDialogflowCxV3beta1GcsDestinationResponse { /** * The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation. */ uri: string; } /** * Instructs the speech recognizer on how to process the audio content. */ interface GoogleCloudDialogflowCxV3beta1InputAudioConfigResponse { /** * Audio encoding of the audio content to process. */ audioEncoding: string; /** * Configuration of barge-in behavior during the streaming of input audio. */ bargeInConfig: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1BargeInConfigResponse; /** * Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information. */ enableWordInfo: boolean; /** * Optional. Which Speech model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the InputAudioConfig. If enhanced speech model is enabled for the agent and an enhanced version of the specified model for the language does not exist, then the speech is recognized using the standard version of the specified model. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. If you specify a model, the following models typically have the best performance: - phone_call (best for Agent Assist and telephony) - latest_short (best for Dialogflow non-telephony) - command_and_search (best for very short utterances and commands) */ model: string; /** * Optional. Which variant of the Speech model to use. */ modelVariant: string; /** * Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details. */ phraseHints: string[]; /** * Sample rate (in Hertz) of the audio content sent in the query. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics) for more details. */ sampleRateHertz: number; /** * Optional. If `false` (default), recognition does not cease until the client closes the stream. If `true`, the recognizer will detect a single spoken utterance in input audio. Recognition ceases when it detects the audio's voice has stopped or paused. In this case, once a detected intent is received, the client should close the stream and start a new request with a new stream as needed. Note: This setting is relevant only for streaming methods. */ singleUtterance: boolean; } /** * Represents the intent to trigger programmatically rather than as a result of natural language processing. */ interface GoogleCloudDialogflowCxV3beta1IntentInputResponse { /** * The unique identifier of the intent. Format: `projects//locations//agents//intents/`. */ intent: string; } /** * Represents an intent parameter. */ interface GoogleCloudDialogflowCxV3beta1IntentParameterResponse { /** * The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types. */ entityType: string; /** * Indicates whether the parameter represents a list of values. */ isList: boolean; /** * Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled. */ redact: boolean; } /** * An intent represents a user's intent to interact with a conversational agent. You can provide information for the Dialogflow API to use to match user input to an intent by adding training phrases (i.e., examples of user input) to your intent. */ interface GoogleCloudDialogflowCxV3beta1IntentResponse { /** * Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters. */ description: string; /** * The human-readable name of the intent, unique within the agent. */ displayName: string; /** * Indicates whether this is a fallback intent. Currently only default fallback intent is allowed in the agent, which is added upon agent creation. Adding training phrases to fallback intent is useful in the case of requests that are mistakenly matched, since training phrases assigned to fallback intents act as negative examples that triggers no-match event. */ isFallback: boolean; /** * The key/value metadata to label an intent. Labels can contain lowercase letters, digits and the symbols '-' and '_'. International characters are allowed, including letters from unicase alphabets. Keys must start with a letter. Keys and values can be no longer than 63 characters and no more than 128 bytes. Prefix "sys-" is reserved for Dialogflow defined labels. Currently allowed Dialogflow defined labels include: * sys-head * sys-contextual The above labels do not require value. "sys-head" means the intent is a head intent. "sys-contextual" means the intent is a contextual intent. */ labels: { [key: string]: string; }; /** * The unique identifier of the intent. Required for the Intents.UpdateIntent method. Intents.CreateIntent populates the name automatically. Format: `projects//locations//agents//intents/`. */ name: string; /** * The collection of parameters associated with the intent. */ parameters: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1IntentParameterResponse[]; /** * The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests. */ priority: number; /** * The collection of training phrases the agent is trained on to identify the intent. */ trainingPhrases: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1IntentTrainingPhraseResponse[]; } /** * Represents a part of a training phrase. */ interface GoogleCloudDialogflowCxV3beta1IntentTrainingPhrasePartResponse { /** * The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase. */ parameterId: string; /** * The text for this part. */ text: string; } /** * Represents an example that the agent is trained on to identify the intent. */ interface GoogleCloudDialogflowCxV3beta1IntentTrainingPhraseResponse { /** * The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `parameter_id` field is set. */ parts: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1IntentTrainingPhrasePartResponse[]; /** * Indicates how many times this example was added to the intent. */ repeatCount: number; } /** * The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment. */ interface GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettingsResponse { /** * Optional. List of related data store connections. */ dataStoreConnections: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1DataStoreConnectionResponse[]; /** * Whether Knowledge Connector is enabled or not. */ enabled: boolean; /** * The target flow to transition to. Format: `projects//locations//agents//flows/`. */ targetFlow: string; /** * The target page to transition to. Format: `projects//locations//agents//flows//pages/`. */ targetPage: string; /** * The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment. */ triggerFulfillment: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FulfillmentResponse; } /** * Settings related to NLU. */ interface GoogleCloudDialogflowCxV3beta1NluSettingsResponse { /** * To filter out false positive results and still get variety in matched natural language inputs for your agent, you can tune the machine learning classification threshold. If the returned score value is less than the threshold value, then a no-match event will be triggered. The score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the default of 0.3 is used. */ classificationThreshold: number; /** * Indicates NLU model training mode. */ modelTrainingMode: string; /** * Indicates the type of NLU model. */ modelType: string; } /** * A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page). */ interface GoogleCloudDialogflowCxV3beta1PageResponse { /** * Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level. */ advancedSettings: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1AdvancedSettingsResponse; /** * The human-readable name of the page, unique within the flow. */ displayName: string; /** * The fulfillment to call when the session is entering the page. */ entryFulfillment: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FulfillmentResponse; /** * Handlers associated with the page to handle events such as webhook errors, no match or no input. */ eventHandlers: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1EventHandlerResponse[]; /** * The form associated with the page, used for collecting parameters relevant to the page. */ form: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FormResponse; /** * Optional. Knowledge connector configuration. */ knowledgeConnectorSettings: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettingsResponse; /** * The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`. */ name: string; /** * Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups. */ transitionRouteGroups: string[]; /** * A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: * TransitionRoutes defined in the page with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in flow with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in the page with only condition specified. * TransitionRoutes defined in the transition route groups with only condition specified. */ transitionRoutes: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1TransitionRouteResponse[]; } /** * Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value. */ interface GoogleCloudDialogflowCxV3beta1QueryInputResponse { /** * The natural language speech audio to be processed. */ audio: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1AudioInputResponse; /** * The DTMF event to be handled. */ dtmf: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1DtmfInputResponse; /** * The event to be triggered. */ event: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1EventInputResponse; /** * The intent to be triggered. */ intent: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1IntentInputResponse; /** * The language of the input. See [Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. */ languageCode: string; /** * The natural language text to be processed. */ text: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1TextInputResponse; } /** * Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates that the conversation succeeded. * In a webhook response when you determine that you handled the customer issue. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccessResponse { /** * Custom metadata. Dialogflow doesn't impose any structure on this. */ metadata: { [key: string]: string; }; } /** * Indicates that interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only and not supposed to be defined by the user. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessageEndInteractionResponse { } /** * Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCardResponse { } /** * Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoffResponse { /** * Custom metadata for your handoff procedure. Dialogflow doesn't impose any structure on this. */ metadata: { [key: string]: string; }; } /** * Represents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs. The external URIs are specified via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioResponse { /** * Segments this audio response is composed of. */ segments: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioSegmentResponse[]; } /** * Represents one segment of audio. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioSegmentResponse { /** * Whether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request. */ allowPlaybackInterruption: boolean; /** * Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request. */ audio: string; /** * Client-specific URI that points to an audio clip accessible to the client. Dialogflow does not impose any validation on it. */ uri: string; } /** * A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessageOutputAudioTextResponse { /** * Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request. */ allowPlaybackInterruption: boolean; /** * The SSML text to be synthesized. For more information, see [SSML](/speech/text-to-speech/docs/ssml). */ ssml: string; /** * The raw text to be synthesized. */ text: string; } /** * Specifies an audio clip to be played by the client as part of the response. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessagePlayAudioResponse { /** * Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request. */ allowPlaybackInterruption: boolean; /** * URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it. */ audioUri: string; } /** * Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessageResponse { /** * The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned. */ channel: string; /** * Indicates that the conversation succeeded. */ conversationSuccess: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccessResponse; /** * A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response. */ endInteraction: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageEndInteractionResponse; /** * Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger. */ knowledgeInfoCard: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCardResponse; /** * Hands off conversation to a human agent. */ liveAgentHandoff: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoffResponse; /** * An audio response message composed of both the synthesized Dialogflow agent responses and responses defined via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user. */ mixedAudio: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioResponse; /** * A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message. */ outputAudioText: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageOutputAudioTextResponse; /** * Returns a response containing a custom, platform-specific payload. */ payload: { [key: string]: string; }; /** * Signal that the client should play an audio clip hosted at a client-specific URI. Dialogflow uses this to construct mixed_audio. However, Dialogflow itself does not try to read or process the URI in any way. */ playAudio: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessagePlayAudioResponse; /** * A signal that the client should transfer the phone call connected to this agent to a third-party endpoint. */ telephonyTransferCall: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageTelephonyTransferCallResponse; /** * Returns a text response. */ text: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ResponseMessageTextResponse; } /** * Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessageTelephonyTransferCallResponse { /** * Transfer the call to a phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164). */ phoneNumber: string; } /** * The text response message. */ interface GoogleCloudDialogflowCxV3beta1ResponseMessageTextResponse { /** * Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request. */ allowPlaybackInterruption: boolean; /** * A collection of text responses. */ text: string[]; } /** * The configuration for auto rollout. */ interface GoogleCloudDialogflowCxV3beta1RolloutConfigResponse { /** * The conditions that are used to evaluate the failure of a rollout step. If not specified, no rollout steps will fail. E.g. "containment_rate < 10% OR average_turn_count < 3". See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). */ failureCondition: string; /** * The conditions that are used to evaluate the success of a rollout step. If not specified, all rollout steps will proceed to the next one unless failure conditions are met. E.g. "containment_rate > 60% AND callback_rate < 20%". See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). */ rolloutCondition: string; /** * Steps to roll out a flow version. Steps should be sorted by percentage in ascending order. */ rolloutSteps: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1RolloutConfigRolloutStepResponse[]; } /** * A single rollout step with specified traffic allocation. */ interface GoogleCloudDialogflowCxV3beta1RolloutConfigRolloutStepResponse { /** * The name of the rollout step; */ displayName: string; /** * The minimum time that this step should last. Should be longer than 1 hour. If not set, the default minimum duration for each step will be 1 hour. */ minDuration: string; /** * The percentage of traffic allocated to the flow version of this rollout step. (0%, 100%]. */ trafficPercent: number; } /** * State of the auto-rollout process. */ interface GoogleCloudDialogflowCxV3beta1RolloutStateResponse { /** * Start time of the current step. */ startTime: string; /** * Display name of the current auto rollout step. */ step: string; /** * Index of the current step in the auto rollout steps list. */ stepIndex: number; } /** * Settings for exporting audio. */ interface GoogleCloudDialogflowCxV3beta1SecuritySettingsAudioExportSettingsResponse { /** * Filename pattern for exported audio. */ audioExportPattern: string; /** * File format for exported audio file. Currently only in telephony recordings. */ audioFormat: string; /** * Enable audio redaction if it is true. */ enableAudioRedaction: boolean; /** * Cloud Storage bucket to export audio record to. Setting this field would grant the Storage Object Creator role to the Dialogflow Service Agent. API caller that tries to modify this field should have the permission of storage.buckets.setIamPolicy. */ gcsBucket: string; } /** * Settings for exporting conversations to [Insights](https://cloud.google.com/contact-center/insights/docs). */ interface GoogleCloudDialogflowCxV3beta1SecuritySettingsInsightsExportSettingsResponse { /** * If enabled, we will automatically exports conversations to Insights and Insights runs its analyzers. */ enableInsightsExport: boolean; } /** * Settings related to speech recognition. */ interface GoogleCloudDialogflowCxV3beta1SpeechToTextSettingsResponse { /** * Whether to use speech adaptation for speech recognition. */ enableSpeechAdaptation: boolean; } /** * Represents a result from running a test case in an agent environment. */ interface GoogleCloudDialogflowCxV3beta1TestCaseResultResponse { /** * The conversation turns uttered during the test case replay in chronological order. */ conversationTurns: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1ConversationTurnResponse[]; /** * Environment where the test was run. If not set, it indicates the draft environment. */ environment: string; /** * The resource name for the test case result. Format: `projects//locations//agents//testCases/ /results/`. */ name: string; /** * Whether the test case passed in the agent environment. */ testResult: string; /** * The time that the test was run. */ testTime: string; } /** * Represents configurations for a test case. */ interface GoogleCloudDialogflowCxV3beta1TestConfigResponse { /** * Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow. */ flow: string; /** * The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow. */ page: string; /** * Session parameters to be compared when calculating differences. */ trackingParameters: string[]; } /** * The description of differences between original and replayed agent output. */ interface GoogleCloudDialogflowCxV3beta1TestRunDifferenceResponse { /** * A human readable description of the diff, showing the actual output vs expected output. */ description: string; /** * The type of diff. */ type: string; } /** * Represents the natural language text to be processed. */ interface GoogleCloudDialogflowCxV3beta1TextInputResponse { /** * The UTF-8 encoded natural language text to be processed. Text length must not exceed 256 characters. */ text: string; } /** * Settings related to speech synthesizing. */ interface GoogleCloudDialogflowCxV3beta1TextToSpeechSettingsResponse { /** * Configuration of how speech should be synthesized, mapping from language (https://cloud.google.com/dialogflow/cx/docs/reference/language) to SynthesizeSpeechConfig. These settings affect: - The [phone gateway](https://cloud.google.com/dialogflow/cx/docs/concept/integration/phone-gateway) synthesize configuration set via Agent.text_to_speech_settings. - How speech is synthesized when invoking session APIs. Agent.text_to_speech_settings only applies if OutputAudioConfig.synthesize_speech_config is not specified. */ synthesizeSpeechConfigs: { [key: string]: string; }; } /** * A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow. */ interface GoogleCloudDialogflowCxV3beta1TransitionRouteResponse { /** * The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled. */ condition: string; /** * Optional. The description of the transition route. The maximum length is 500 characters. */ description: string; /** * The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled. */ intent: string; /** * The unique identifier of this transition route. */ name: string; /** * The target flow to transition to. Format: `projects//locations//agents//flows/`. */ targetFlow: string; /** * The target page to transition to. Format: `projects//locations//agents//flows//pages/`. */ targetPage: string; /** * The fulfillment to call when the condition is satisfied. At least one of `trigger_fulfillment` and `target` must be specified. When both are defined, `trigger_fulfillment` is executed first. */ triggerFulfillment: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1FulfillmentResponse; } /** * The history of variants update. */ interface GoogleCloudDialogflowCxV3beta1VariantsHistoryResponse { /** * Update time of the variants. */ updateTime: string; /** * The flow versions as the variants. */ versionVariants: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1VersionVariantsResponse; } /** * A list of flow version variants. */ interface GoogleCloudDialogflowCxV3beta1VersionVariantsResponse { /** * A list of flow version variants. */ variants: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1VersionVariantsVariantResponse[]; } /** * A single flow version with specified traffic allocation. */ interface GoogleCloudDialogflowCxV3beta1VersionVariantsVariantResponse { /** * Whether the variant is for the control group. */ isControlGroup: boolean; /** * Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0. */ trafficAllocation: number; /** * The name of the flow version. Format: `projects//locations//agents//flows//versions/`. */ version: string; } /** * Represents configuration for a generic web service. */ interface GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceResponse { /** * Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'") ``` */ allowedCaCerts: string[]; /** * Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST. */ httpMethod: string; /** * Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response */ parameterMapping: { [key: string]: string; }; /** * The password for HTTP Basic authentication. */ password: string; /** * Optional. Defines a custom JSON object as request body to send to flexible webhook. */ requestBody: string; /** * The HTTP request headers to send together with webhook requests. */ requestHeaders: { [key: string]: string; }; /** * The webhook URI for receiving POST requests. It must use https protocol. */ uri: string; /** * The user name for HTTP Basic authentication. */ username: string; /** * Optional. Type of the webhook. */ webhookType: string; } /** * Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend. */ interface GoogleCloudDialogflowCxV3beta1WebhookResponse { /** * Indicates whether the webhook is disabled. */ disabled: boolean; /** * The human-readable name of the webhook, unique within the agent. */ displayName: string; /** * Configuration for a generic web service. */ genericWebService: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceResponse; /** * The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`. */ name: string; /** * Configuration for a [Service Directory](https://cloud.google.com/service-directory) service. */ serviceDirectory: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfigResponse; /** * Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds. */ timeout: string; } /** * Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service. */ interface GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfigResponse { /** * Generic Service configuration of this webhook. */ genericWebService: outputs.dialogflow.v3beta1.GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceResponse; /** * The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent. */ service: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface GoogleRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } } export declare namespace discoveryengine { namespace v1alpha { /** * Defines context of the conversation */ interface GoogleCloudDiscoveryengineV1alphaConversationContextResponse { /** * The current active document the user opened. It contains the document resource reference. */ activeDocument: string; /** * The current list of documents the user is seeing. It contains the document resource references. */ contextDocuments: string[]; } /** * Defines a conversation message. */ interface GoogleCloudDiscoveryengineV1alphaConversationMessageResponse { /** * Message creation timestamp. */ createTime: string; /** * Search reply. */ reply: outputs.discoveryengine.v1alpha.GoogleCloudDiscoveryengineV1alphaReplyResponse; /** * User text input. */ userInput: outputs.discoveryengine.v1alpha.GoogleCloudDiscoveryengineV1alphaTextInputResponse; } /** * Unstructured data linked to this document. */ interface GoogleCloudDiscoveryengineV1alphaDocumentContentResponse { /** * The MIME type of the content. Supported types: * `application/pdf` (PDF, only native PDFs are supported for now) * `text/html` (HTML) * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` (DOCX) * `application/vnd.openxmlformats-officedocument.presentationml.presentation` (PPTX) * `text/plain` (TXT) See https://www.iana.org/assignments/media-types/media-types.xhtml. */ mimeType: string; /** * The content represented as a stream of bytes. The maximum length is 1,000,000 bytes (1 MB / ~0.95 MiB). Note: As with all `bytes` fields, this field is represented as pure binary in Protocol Buffers and base64-encoded string in JSON. For example, `abc123!?$*&()'-=@~` should be represented as `YWJjMTIzIT8kKiYoKSctPUB+` in JSON. See https://developers.google.com/protocol-buffers/docs/proto3#json. */ rawBytes: string; /** * The URI of the content. Only Cloud Storage URIs (e.g. `gs://bucket-name/path/to/file`) are supported. The maximum file size is 100 MB. */ uri: string; } /** * Configurations for generating a Dialogflow agent. Note that these configurations are one-time consumed by and passed to Dialogflow service. It means they cannot be retrieved using EngineService.GetEngine or EngineService.ListEngines API after engine creation. */ interface GoogleCloudDiscoveryengineV1alphaEngineChatEngineConfigAgentCreationConfigResponse { /** * Name of the company, organization or other entity that the agent represents. Used for knowledge connector LLM prompt and for knowledge search. */ business: string; /** * The default language of the agent as a language tag. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. */ defaultLanguageCode: string; /** * The time zone of the agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris. */ timeZone: string; } /** * Configurations for a Chat Engine. */ interface GoogleCloudDiscoveryengineV1alphaEngineChatEngineConfigResponse { /** * The configurationt generate the Dialogflow agent that is associated to this Engine. Note that these configurations are one-time consumed by and passed to Dialogflow service. It means they cannot be retrieved using EngineService.GetEngine or EngineService.ListEngines API after engine creation. */ agentCreationConfig: outputs.discoveryengine.v1alpha.GoogleCloudDiscoveryengineV1alphaEngineChatEngineConfigAgentCreationConfigResponse; /** * The resource name of an exist Dialogflow agent to link to this Chat Engine. Customers can either provide `agent_creation_config` to create agent or provide an agent name that links the agent with the Chat engine. Format: `projects//locations//agents/`. Note that the `dialogflow_agent_to_link` are one-time consumed by and passed to Dialogflow service. It means they cannot be retrieved using EngineService.GetEngine or EngineService.ListEngines API after engine creation. Please use chat_engine_metadata.dialogflow_agent for actual agent association after Engine is created. */ dialogflowAgentToLink: string; } /** * Additional information of a Chat Engine. Fields in this message are output only. */ interface GoogleCloudDiscoveryengineV1alphaEngineChatEngineMetadataResponse { /** * The resource name of a Dialogflow agent, that this Chat Engine refers to. Format: `projects//locations//agents/`. */ dialogflowAgent: string; } /** * Common configurations for an Engine. */ interface GoogleCloudDiscoveryengineV1alphaEngineCommonConfigResponse { /** * The name of the company, business or entity that is associated with the engine. Setting this may help improve LLM related features. */ companyName: string; } /** * Custom threshold for `cvr` optimization_objective. */ interface GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigOptimizationObjectiveConfigResponse { /** * The name of the field to target. Currently supported values: `watch-percentage`, `watch-time`. */ targetField: string; /** * The threshold to be applied to the target (e.g., 0.5). */ targetFieldValueFloat: number; } /** * Additional config specs for a Media Recommendation engine. */ interface GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigResponse { /** * The optimization objective e.g. `cvr`. This field together with optimization_objective describe engine metadata to use to control engine training and serving. Currently supported values: `ctr`, `cvr`. If not specified, we choose default based on engine type. Default depends on type of recommendation: `recommended-for-you` => `ctr` `others-you-may-like` => `ctr` */ optimizationObjective: string; /** * Name and value of the custom threshold for cvr optimization_objective. For target_field `watch-time`, target_field_value must be an integer value indicating the media progress time in seconds between (0, 86400] (excludes 0, includes 86400) (e.g., 90). For target_field `watch-percentage`, the target_field_value must be a valid float value between (0, 1.0] (excludes 0, includes 1.0) (e.g., 0.5). */ optimizationObjectiveConfig: outputs.discoveryengine.v1alpha.GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigOptimizationObjectiveConfigResponse; /** * The training state that the engine is in (e.g. `TRAINING` or `PAUSED`). Since part of the cost of running the service is frequency of training - this can be used to determine when to train engine in order to control cost. If not specified: the default value for `CreateEngine` method is `TRAINING`. The default value for `UpdateEngine` method is to keep the state the same as before. */ trainingState: string; /** * The type of engine e.g. `recommended-for-you`. This field together with optimization_objective describe engine metadata to use to control engine training and serving. Currently supported values: `recommended-for-you`, `others-you-may-like`, `more-like-this`, `most-popular-items`. */ type: string; } /** * Additional information of a recommendation engine. */ interface GoogleCloudDiscoveryengineV1alphaEngineRecommendationMetadataResponse { /** * The state of data requirements for this engine: `DATA_OK` and `DATA_ERROR`. Engine cannot be trained if the data is in `DATA_ERROR` state. Engine can have `DATA_ERROR` state even if serving state is `ACTIVE`: engines were trained successfully before, but cannot be refreshed because the underlying engine no longer has sufficient data for training. */ dataState: string; /** * The timestamp when the latest successful tune finished. Only applicable on Media Recommendation engines. */ lastTuneTime: string; /** * The serving state of the engine: `ACTIVE`, `NOT_ACTIVE`. */ servingState: string; /** * The latest tune operation id associated with the engine. Only applicable on Media Recommendation engines. If present, this operation id can be used to determine if there is an ongoing tune for this engine. To check the operation status, send the GetOperation request with this operation id in the engine resource format. If no tuning has happened for this engine, the string is empty. */ tuningOperation: string; } /** * Configurations for a Search Engine. */ interface GoogleCloudDiscoveryengineV1alphaEngineSearchEngineConfigResponse { /** * The add-on that this search engine enables. */ searchAddOns: string[]; /** * The search feature tier of this engine. Different tiers might have different pricing. To learn more, please check the pricing documentation. Defaults to SearchTier.SEARCH_TIER_STANDARD if not specified. */ searchTier: string; } /** * Additional config specs for a `similar-items` engine. */ interface GoogleCloudDiscoveryengineV1alphaEngineSimilarDocumentsEngineConfigResponse { } /** * Configurations for fields of a schema. For example, configuring a field is indexable, or searchable. */ interface GoogleCloudDiscoveryengineV1alphaFieldConfigResponse { /** * If completable_option is COMPLETABLE_ENABLED, field values are directly used and returned as suggestions for Autocomplete in CompletionService.CompleteQuery. If completable_option is unset, the server behavior defaults to COMPLETABLE_DISABLED for fields that support setting completable options, which are just `string` fields. For those fields that do not support setting completable options, the server will skip completable option setting, and setting completable_option for those fields will throw `INVALID_ARGUMENT` error. */ completableOption: string; /** * If dynamic_facetable_option is DYNAMIC_FACETABLE_ENABLED, field values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if FieldConfig.indexable_option is INDEXABLE_DISABLED. Otherwise, an `INVALID_ARGUMENT` error will be returned. If dynamic_facetable_option is unset, the server behavior defaults to DYNAMIC_FACETABLE_DISABLED for fields that support setting dynamic facetable options. For those fields that do not support setting dynamic facetable options, such as `object` and `boolean`, the server will skip dynamic facetable option setting, and setting dynamic_facetable_option for those fields will throw `INVALID_ARGUMENT` error. */ dynamicFacetableOption: string; /** * Field path of the schema field. For example: `title`, `description`, `release_info.release_year`. */ fieldPath: string; /** * Raw type of the field. */ fieldType: string; /** * If indexable_option is INDEXABLE_ENABLED, field values are indexed so that it can be filtered or faceted in SearchService.Search. If indexable_option is unset, the server behavior defaults to INDEXABLE_DISABLED for fields that support setting indexable options. For those fields that do not support setting indexable options, such as `object` and `boolean` and key properties, the server will skip indexable_option setting, and setting indexable_option for those fields will throw `INVALID_ARGUMENT` error. */ indexableOption: string; /** * Type of the key property that this field is mapped to. Empty string if this is not annotated as mapped to a key property. Example types are `title`, `description`. Full list is defined by `keyPropertyMapping` in the schema field annotation. If the schema field has a `KeyPropertyMapping` annotation, `indexable_option` and `searchable_option` of this field cannot be modified. */ keyPropertyType: string; /** * If recs_filterable_option is FILTERABLE_ENABLED, field values are filterable by filter expression in RecommendationService.Recommend. If FILTERABLE_ENABLED but the field type is numerical, field values are not filterable by text queries in RecommendationService.Recommend. Only textual fields are supported. If recs_filterable_option is unset, the default setting is FILTERABLE_DISABLED for fields that support setting filterable options. When a field set to [FILTERABLE_DISABLED] is filtered, a warning is generated and an empty result is returned. */ recsFilterableOption: string; /** * If retrievable_option is RETRIEVABLE_ENABLED, field values are included in the search results. If retrievable_option is unset, the server behavior defaults to RETRIEVABLE_DISABLED for fields that support setting retrievable options. For those fields that do not support setting retrievable options, such as `object` and `boolean`, the server will skip retrievable option setting, and setting retrievable_option for those fields will throw `INVALID_ARGUMENT` error. */ retrievableOption: string; /** * If searchable_option is SEARCHABLE_ENABLED, field values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but field type is numerical, field values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical fields. If searchable_option is unset, the server behavior defaults to SEARCHABLE_DISABLED for fields that support setting searchable options. Only `string` fields that have no key property mapping support setting searchable_option. For those fields that do not support setting searchable options, the server will skip searchable option setting, and setting searchable_option for those fields will throw `INVALID_ARGUMENT` error. */ searchableOption: string; } /** * Defines reference in reply. */ interface GoogleCloudDiscoveryengineV1alphaReplyReferenceResponse { /** * Anchor text. */ anchorText: string; /** * Anchor text end index. */ end: number; /** * Anchor text start index. */ start: number; /** * URI link reference. */ uri: string; } /** * Defines a reply message to user. */ interface GoogleCloudDiscoveryengineV1alphaReplyResponse { /** * References in the reply. */ references: outputs.discoveryengine.v1alpha.GoogleCloudDiscoveryengineV1alphaReplyReferenceResponse[]; /** * DEPRECATED: use `summary` instead. Text reply. * * @deprecated DEPRECATED: use `summary` instead. Text reply. */ reply: string; /** * Summary based on search results. */ summary: outputs.discoveryengine.v1alpha.GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryResponse; } /** * Summary of the top N search result specified by the summary spec. */ interface GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryResponse { /** * A collection of Safety Attribute categories and their associated confidence scores. */ safetyAttributes: outputs.discoveryengine.v1alpha.GoogleCloudDiscoveryengineV1alphaSearchResponseSummarySafetyAttributesResponse; /** * Additional summary-skipped reasons. This provides the reason for ignored cases. If nothing is skipped, this field is not set. */ summarySkippedReasons: string[]; /** * The summary content. */ summaryText: string; } /** * Safety Attribute categories and their associated confidence scores. */ interface GoogleCloudDiscoveryengineV1alphaSearchResponseSummarySafetyAttributesResponse { /** * The display names of Safety Attribute categories associated with the generated content. Order matches the Scores. */ categories: string[]; /** * The confidence scores of the each category, higher value means higher confidence. Order matches the Categories. */ scores: number[]; } /** * Defines text input. */ interface GoogleCloudDiscoveryengineV1alphaTextInputResponse { /** * Conversation context of the input. */ context: outputs.discoveryengine.v1alpha.GoogleCloudDiscoveryengineV1alphaConversationContextResponse; /** * Text input. */ input: string; } } namespace v1beta { /** * Defines context of the conversation */ interface GoogleCloudDiscoveryengineV1betaConversationContextResponse { /** * The current active document the user opened. It contains the document resource reference. */ activeDocument: string; /** * The current list of documents the user is seeing. It contains the document resource references. */ contextDocuments: string[]; } /** * Defines a conversation message. */ interface GoogleCloudDiscoveryengineV1betaConversationMessageResponse { /** * Message creation timestamp. */ createTime: string; /** * Search reply. */ reply: outputs.discoveryengine.v1beta.GoogleCloudDiscoveryengineV1betaReplyResponse; /** * User text input. */ userInput: outputs.discoveryengine.v1beta.GoogleCloudDiscoveryengineV1betaTextInputResponse; } /** * Unstructured data linked to this document. */ interface GoogleCloudDiscoveryengineV1betaDocumentContentResponse { /** * The MIME type of the content. Supported types: * `application/pdf` (PDF, only native PDFs are supported for now) * `text/html` (HTML) * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` (DOCX) * `application/vnd.openxmlformats-officedocument.presentationml.presentation` (PPTX) * `text/plain` (TXT) See https://www.iana.org/assignments/media-types/media-types.xhtml. */ mimeType: string; /** * The content represented as a stream of bytes. The maximum length is 1,000,000 bytes (1 MB / ~0.95 MiB). Note: As with all `bytes` fields, this field is represented as pure binary in Protocol Buffers and base64-encoded string in JSON. For example, `abc123!?$*&()'-=@~` should be represented as `YWJjMTIzIT8kKiYoKSctPUB+` in JSON. See https://developers.google.com/protocol-buffers/docs/proto3#json. */ rawBytes: string; /** * The URI of the content. Only Cloud Storage URIs (e.g. `gs://bucket-name/path/to/file`) are supported. The maximum file size is 100 MB. */ uri: string; } /** * Defines reference in reply. */ interface GoogleCloudDiscoveryengineV1betaReplyReferenceResponse { /** * Anchor text. */ anchorText: string; /** * Anchor text end index. */ end: number; /** * Anchor text start index. */ start: number; /** * URI link reference. */ uri: string; } /** * Defines a reply message to user. */ interface GoogleCloudDiscoveryengineV1betaReplyResponse { /** * References in the reply. */ references: outputs.discoveryengine.v1beta.GoogleCloudDiscoveryengineV1betaReplyReferenceResponse[]; /** * DEPRECATED: use `summary` instead. Text reply. * * @deprecated DEPRECATED: use `summary` instead. Text reply. */ reply: string; /** * Summary based on search results. */ summary: outputs.discoveryengine.v1beta.GoogleCloudDiscoveryengineV1betaSearchResponseSummaryResponse; } /** * Summary of the top N search result specified by the summary spec. */ interface GoogleCloudDiscoveryengineV1betaSearchResponseSummaryResponse { /** * A collection of Safety Attribute categories and their associated confidence scores. */ safetyAttributes: outputs.discoveryengine.v1beta.GoogleCloudDiscoveryengineV1betaSearchResponseSummarySafetyAttributesResponse; /** * Additional summary-skipped reasons. This provides the reason for ignored cases. If nothing is skipped, this field is not set. */ summarySkippedReasons: string[]; /** * The summary content. */ summaryText: string; } /** * Safety Attribute categories and their associated confidence scores. */ interface GoogleCloudDiscoveryengineV1betaSearchResponseSummarySafetyAttributesResponse { /** * The display names of Safety Attribute categories associated with the generated content. Order matches the Scores. */ categories: string[]; /** * The confidence scores of the each category, higher value means higher confidence. Order matches the Categories. */ scores: number[]; } /** * Defines text input. */ interface GoogleCloudDiscoveryengineV1betaTextInputResponse { /** * Conversation context of the input. */ context: outputs.discoveryengine.v1beta.GoogleCloudDiscoveryengineV1betaConversationContextResponse; /** * Text input. */ input: string; } } } export declare namespace dlp { namespace v2 { /** * The results of an Action. */ interface GooglePrivacyDlpV2ActionDetailsResponse { /** * Outcome of a de-identification action. */ deidentifyDetails: outputs.dlp.v2.GooglePrivacyDlpV2DeidentifyDataSourceDetailsResponse; } /** * A task to execute on the completion of a job. See https://cloud.google.com/dlp/docs/concepts-actions to learn more. */ interface GooglePrivacyDlpV2ActionResponse { /** * Create a de-identified copy of the input data. */ deidentify: outputs.dlp.v2.GooglePrivacyDlpV2DeidentifyResponse; /** * Sends an email when the job completes. The email goes to IAM project owners and technical [Essential Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts). */ jobNotificationEmails: outputs.dlp.v2.GooglePrivacyDlpV2JobNotificationEmailsResponse; /** * Publish a notification to a Pub/Sub topic. */ pubSub: outputs.dlp.v2.GooglePrivacyDlpV2PublishToPubSubResponse; /** * Publish findings to Cloud Datahub. */ publishFindingsToCloudDataCatalog: outputs.dlp.v2.GooglePrivacyDlpV2PublishFindingsToCloudDataCatalogResponse; /** * Publish summary to Cloud Security Command Center (Alpha). */ publishSummaryToCscc: outputs.dlp.v2.GooglePrivacyDlpV2PublishSummaryToCsccResponse; /** * Enable Stackdriver metric dlp.googleapis.com/finding_count. */ publishToStackdriver: outputs.dlp.v2.GooglePrivacyDlpV2PublishToStackdriverResponse; /** * Save resulting findings in a provided location. */ saveFindings: outputs.dlp.v2.GooglePrivacyDlpV2SaveFindingsResponse; } /** * Apply transformation to all findings. */ interface GooglePrivacyDlpV2AllInfoTypesResponse { } /** * Catch-all for all other tables not specified by other filters. Should always be last, except for single-table configurations, which will only have a TableReference target. */ interface GooglePrivacyDlpV2AllOtherBigQueryTablesResponse { } /** * Apply to all text. */ interface GooglePrivacyDlpV2AllTextResponse { } /** * Result of a risk analysis operation request. */ interface GooglePrivacyDlpV2AnalyzeDataSourceRiskDetailsResponse { /** * Categorical stats result */ categoricalStatsResult: outputs.dlp.v2.GooglePrivacyDlpV2CategoricalStatsResultResponse; /** * Delta-presence result */ deltaPresenceEstimationResult: outputs.dlp.v2.GooglePrivacyDlpV2DeltaPresenceEstimationResultResponse; /** * K-anonymity result */ kAnonymityResult: outputs.dlp.v2.GooglePrivacyDlpV2KAnonymityResultResponse; /** * K-map result */ kMapEstimationResult: outputs.dlp.v2.GooglePrivacyDlpV2KMapEstimationResultResponse; /** * L-divesity result */ lDiversityResult: outputs.dlp.v2.GooglePrivacyDlpV2LDiversityResultResponse; /** * Numerical stats result */ numericalStatsResult: outputs.dlp.v2.GooglePrivacyDlpV2NumericalStatsResultResponse; /** * The configuration used for this job. */ requestedOptions: outputs.dlp.v2.GooglePrivacyDlpV2RequestedRiskAnalysisOptionsResponse; /** * Privacy metric to compute. */ requestedPrivacyMetric: outputs.dlp.v2.GooglePrivacyDlpV2PrivacyMetricResponse; /** * Input dataset to compute metrics over. */ requestedSourceTable: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableResponse; } /** * An auxiliary table contains statistical information on the relative frequency of different quasi-identifiers values. It has one or several quasi-identifiers columns, and one column that indicates the relative frequency of each quasi-identifier tuple. If a tuple is present in the data but not in the auxiliary table, the corresponding relative frequency is assumed to be zero (and thus, the tuple is highly reidentifiable). */ interface GooglePrivacyDlpV2AuxiliaryTableResponse { /** * Quasi-identifier columns. */ quasiIds: outputs.dlp.v2.GooglePrivacyDlpV2QuasiIdFieldResponse[]; /** * The relative frequency column must contain a floating-point number between 0 and 1 (inclusive). Null values are assumed to be zero. */ relativeFrequency: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; /** * Auxiliary table location. */ table: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableResponse; } /** * Target used to match against for discovery with BigQuery tables */ interface GooglePrivacyDlpV2BigQueryDiscoveryTargetResponse { /** * How often and when to update profiles. New tables that match both the filter and conditions are scanned as quickly as possible depending on system capacity. */ cadence: outputs.dlp.v2.GooglePrivacyDlpV2DiscoveryGenerationCadenceResponse; /** * In addition to matching the filter, these conditions must be true before a profile is generated. */ conditions: outputs.dlp.v2.GooglePrivacyDlpV2DiscoveryBigQueryConditionsResponse; /** * Tables that match this filter will not have profiles created. */ disabled: outputs.dlp.v2.GooglePrivacyDlpV2DisabledResponse; /** * The tables the discovery cadence applies to. The first target with a matching filter will be the one to apply to a table. */ filter: outputs.dlp.v2.GooglePrivacyDlpV2DiscoveryBigQueryFilterResponse; } /** * Message defining a field of a BigQuery table. */ interface GooglePrivacyDlpV2BigQueryFieldResponse { /** * Designated field in the BigQuery table. */ field: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; /** * Source table of the field. */ table: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableResponse; } /** * Options defining BigQuery table and row identifiers. */ interface GooglePrivacyDlpV2BigQueryOptionsResponse { /** * References to fields excluded from scanning. This allows you to skip inspection of entire columns which you know have no findings. When inspecting a table, we recommend that you inspect all columns. Otherwise, findings might be affected because hints from excluded columns will not be used. */ excludedFields: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse[]; /** * Table fields that may uniquely identify a row within the table. When `actions.saveFindings.outputConfig.table` is specified, the values of columns specified here are available in the output table under `location.content_locations.record_location.record_key.id_values`. Nested fields such as `person.birthdate.year` are allowed. */ identifyingFields: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse[]; /** * Limit scanning only to these fields. When inspecting a table, we recommend that you inspect all columns. Otherwise, findings might be affected because hints from excluded columns will not be used. */ includedFields: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse[]; /** * Max number of rows to scan. If the table has more rows than this value, the rest of the rows are omitted. If not set, or if set to 0, all rows will be scanned. Only one of rows_limit and rows_limit_percent can be specified. Cannot be used in conjunction with TimespanConfig. */ rowsLimit: string; /** * Max percentage of rows to scan. The rest are omitted. The number of rows scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one of rows_limit and rows_limit_percent can be specified. Cannot be used in conjunction with TimespanConfig. */ rowsLimitPercent: number; sampleMethod: string; /** * Complete BigQuery table reference. */ tableReference: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableResponse; } /** * A pattern to match against one or more tables, datasets, or projects that contain BigQuery tables. At least one pattern must be specified. Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub. */ interface GooglePrivacyDlpV2BigQueryRegexResponse { /** * If unset, this property matches all datasets. */ datasetIdRegex: string; /** * For organizations, if unset, will match all projects. Has no effect for data profile configurations created within a project. */ projectIdRegex: string; /** * If unset, this property matches all tables. */ tableIdRegex: string; } /** * A collection of regular expressions to determine what tables to match against. */ interface GooglePrivacyDlpV2BigQueryRegexesResponse { /** * A single BigQuery regular expression pattern to match against one or more tables, datasets, or projects that contain BigQuery tables. */ patterns: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryRegexResponse[]; } /** * Specifies a collection of BigQuery tables. Used for Discovery. */ interface GooglePrivacyDlpV2BigQueryTableCollectionResponse { /** * A collection of regular expressions to match a BigQuery table against. */ includeRegexes: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryRegexesResponse; } /** * Message defining the location of a BigQuery table. A table is uniquely identified by its project_id, dataset_id, and table_name. Within a query a table is often referenced with a string in the format of: `:.` or `..`. */ interface GooglePrivacyDlpV2BigQueryTableResponse { /** * Dataset ID of the table. */ datasetId: string; /** * The Google Cloud Platform project ID of the project containing the table. If omitted, project ID is inferred from the API call. */ project: string; /** * Name of the table. */ tableId: string; } /** * The types of BigQuery tables supported by Cloud DLP. */ interface GooglePrivacyDlpV2BigQueryTableTypesResponse { /** * A set of BigQuery table types. */ types: string[]; } /** * Bucket is represented as a range, along with replacement values. */ interface GooglePrivacyDlpV2BucketResponse { /** * Upper bound of the range, exclusive; type must match min. */ max: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse; /** * Lower bound of the range, inclusive. Type should be the same as max if used. */ min: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse; /** * Replacement value for this bucket. */ replacementValue: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse; } /** * Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. */ interface GooglePrivacyDlpV2BucketingConfigResponse { /** * Set of buckets. Ranges must be non-overlapping. */ buckets: outputs.dlp.v2.GooglePrivacyDlpV2BucketResponse[]; } /** * Compute numerical stats over an individual column, including number of distinct values and value count distribution. */ interface GooglePrivacyDlpV2CategoricalStatsConfigResponse { /** * Field to compute categorical stats on. All column types are supported except for arrays and structs. However, it may be more informative to use NumericalStats when the field type is supported, depending on the data. */ field: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; } /** * Histogram of value frequencies in the column. */ interface GooglePrivacyDlpV2CategoricalStatsHistogramBucketResponse { /** * Total number of values in this bucket. */ bucketSize: string; /** * Total number of distinct values in this bucket. */ bucketValueCount: string; /** * Sample of value frequencies in this bucket. The total number of values returned per bucket is capped at 20. */ bucketValues: outputs.dlp.v2.GooglePrivacyDlpV2ValueFrequencyResponse[]; /** * Lower bound on the value frequency of the values in this bucket. */ valueFrequencyLowerBound: string; /** * Upper bound on the value frequency of the values in this bucket. */ valueFrequencyUpperBound: string; } /** * Result of the categorical stats computation. */ interface GooglePrivacyDlpV2CategoricalStatsResultResponse { /** * Histogram of value frequencies in the column. */ valueFrequencyHistogramBuckets: outputs.dlp.v2.GooglePrivacyDlpV2CategoricalStatsHistogramBucketResponse[]; } /** * Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we'll attempt to preserve the original data's type. (This allows you to take a long like 123 and modify it to a string like **3. */ interface GooglePrivacyDlpV2CharacterMaskConfigResponse { /** * When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`. */ charactersToIgnore: outputs.dlp.v2.GooglePrivacyDlpV2CharsToIgnoreResponse[]; /** * Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits. */ maskingCharacter: string; /** * Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally. If `number_to_mask` is negative, this denotes inverse masking. Cloud DLP masks all but a number of characters. For example, suppose you have the following values: - `masking_character` is `*` - `number_to_mask` is `-4` - `reverse_order` is `false` - `CharsToIgnore` includes `-` - Input string is `1234-5678-9012-3456` The resulting de-identified string is `****-****-****-3456`. Cloud DLP masks all but the last four characters. If `reverse_order` is `true`, all but the first four characters are masked as `1234-****-****-****`. */ numberToMask: number; /** * Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`. */ reverseOrder: boolean; } /** * Characters to skip when doing deidentification of a value. These will be left alone and skipped. */ interface GooglePrivacyDlpV2CharsToIgnoreResponse { /** * Characters to not transform when masking. */ charactersToSkip: string; /** * Common characters to not transform when masking. Useful to avoid removing punctuation. */ commonCharactersToIgnore: string; } /** * Message representing a set of files in Cloud Storage. */ interface GooglePrivacyDlpV2CloudStorageFileSetResponse { /** * The url, in the format `gs:///`. Trailing wildcard in the path is allowed. */ url: string; } /** * Options defining a file or a set of files within a Cloud Storage bucket. */ interface GooglePrivacyDlpV2CloudStorageOptionsResponse { /** * Max number of bytes to scan from a file. If a scanned file's size is bigger than this value then the rest of the bytes are omitted. Only one of `bytes_limit_per_file` and `bytes_limit_per_file_percent` can be specified. This field can't be set if de-identification is requested. For certain file types, setting this field has no effect. For more information, see [Limits on bytes scanned per file](https://cloud.google.com/dlp/docs/supported-file-types#max-byte-size-per-file). */ bytesLimitPerFile: string; /** * Max percentage of bytes to scan from a file. The rest are omitted. The number of bytes scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one of bytes_limit_per_file and bytes_limit_per_file_percent can be specified. This field can't be set if de-identification is requested. For certain file types, setting this field has no effect. For more information, see [Limits on bytes scanned per file](https://cloud.google.com/dlp/docs/supported-file-types#max-byte-size-per-file). */ bytesLimitPerFilePercent: number; /** * The set of one or more files to scan. */ fileSet: outputs.dlp.v2.GooglePrivacyDlpV2FileSetResponse; /** * List of file type groups to include in the scan. If empty, all files are scanned and available data format processors are applied. In addition, the binary content of the selected files is always scanned as well. Images are scanned only as binary if the specified region does not support image inspection and no file_types were specified. Image inspection is restricted to 'global', 'us', 'asia', and 'europe'. */ fileTypes: string[]; /** * Limits the number of files to scan to this percentage of the input FileSet. Number of files scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0. */ filesLimitPercent: number; sampleMethod: string; } /** * Message representing a single file or path in Cloud Storage. */ interface GooglePrivacyDlpV2CloudStoragePathResponse { /** * A url representing a file or path (no wildcards) in Cloud Storage. Example: gs://[BUCKET_NAME]/dictionary.txt */ path: string; } /** * Message representing a set of files in a Cloud Storage bucket. Regular expressions are used to allow fine-grained control over which files in the bucket to include. Included files are those that match at least one item in `include_regex` and do not match any items in `exclude_regex`. Note that a file that matches items from both lists will _not_ be included. For a match to occur, the entire file path (i.e., everything in the url after the bucket name) must match the regular expression. For example, given the input `{bucket_name: "mybucket", include_regex: ["directory1/.*"], exclude_regex: ["directory1/excluded.*"]}`: * `gs://mybucket/directory1/myfile` will be included * `gs://mybucket/directory1/directory2/myfile` will be included (`.*` matches across `/`) * `gs://mybucket/directory0/directory1/myfile` will _not_ be included (the full path doesn't match any items in `include_regex`) * `gs://mybucket/directory1/excludedfile` will _not_ be included (the path matches an item in `exclude_regex`) If `include_regex` is left empty, it will match all files by default (this is equivalent to setting `include_regex: [".*"]`). Some other common use cases: * `{bucket_name: "mybucket", exclude_regex: [".*\.pdf"]}` will include all files in `mybucket` except for .pdf files * `{bucket_name: "mybucket", include_regex: ["directory/[^/]+"]}` will include all files directly under `gs://mybucket/directory/`, without matching across `/` */ interface GooglePrivacyDlpV2CloudStorageRegexFileSetResponse { /** * The name of a Cloud Storage bucket. Required. */ bucketName: string; /** * A list of regular expressions matching file paths to exclude. All files in the bucket that match at least one of these regular expressions will be excluded from the scan. Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub. */ excludeRegex: string[]; /** * A list of regular expressions matching file paths to include. All files in the bucket that match at least one of these regular expressions will be included in the set of files, except for those that also match an item in `exclude_regex`. Leaving this field empty will match all files by default (this is equivalent to including `.*` in the list). Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub. */ includeRegex: string[]; } /** * Represents a color in the RGB color space. */ interface GooglePrivacyDlpV2ColorResponse { /** * The amount of blue in the color as a value in the interval [0, 1]. */ blue: number; /** * The amount of green in the color as a value in the interval [0, 1]. */ green: number; /** * The amount of red in the color as a value in the interval [0, 1]. */ red: number; } /** * The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of 'HH:mm:ss'. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false. */ interface GooglePrivacyDlpV2ConditionResponse { /** * Field within the record this condition is evaluated against. */ field: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; /** * Operator used to compare the field or infoType to the value. */ operator: string; /** * Value to compare against. [Mandatory, except for `EXISTS` tests.] */ value: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse; } /** * A collection of conditions. */ interface GooglePrivacyDlpV2ConditionsResponse { /** * A collection of conditions. */ conditions: outputs.dlp.v2.GooglePrivacyDlpV2ConditionResponse[]; } /** * Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. */ interface GooglePrivacyDlpV2CryptoDeterministicConfigResponse { /** * A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and unstructured `ContentItem`s. */ context: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; /** * The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use. */ cryptoKey: outputs.dlp.v2.GooglePrivacyDlpV2CryptoKeyResponse; /** * The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE. */ surrogateInfoType: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse; } /** * Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. */ interface GooglePrivacyDlpV2CryptoHashConfigResponse { /** * The key used by the hash function. */ cryptoKey: outputs.dlp.v2.GooglePrivacyDlpV2CryptoKeyResponse; } /** * This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by Cloud Key Management Service (Cloud KMS). When using Cloud KMS to wrap or unwrap a DEK, be sure to set an appropriate IAM policy on the KEK to ensure an attacker cannot unwrap the DEK. */ interface GooglePrivacyDlpV2CryptoKeyResponse { /** * Key wrapped using Cloud KMS */ kmsWrapped: outputs.dlp.v2.GooglePrivacyDlpV2KmsWrappedCryptoKeyResponse; /** * Transient crypto key */ transient: outputs.dlp.v2.GooglePrivacyDlpV2TransientCryptoKeyResponse; /** * Unwrapped crypto key */ unwrapped: outputs.dlp.v2.GooglePrivacyDlpV2UnwrappedCryptoKeyResponse; } /** * Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. */ interface GooglePrivacyDlpV2CryptoReplaceFfxFpeConfigResponse { /** * Common alphabets. */ commonAlphabet: string; /** * The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and unstructured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2 */ context: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; /** * The key used by the encryption algorithm. */ cryptoKey: outputs.dlp.v2.GooglePrivacyDlpV2CryptoKeyResponse; /** * This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&*()_-+={[}]|\:;"'<,>.?/ */ customAlphabet: string; /** * The native way to select the alphabet. Must be in the range [2, 95]. */ radix: number; /** * The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE */ surrogateInfoType: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse; } /** * Custom information type provided by the user. Used to find domain-specific sensitive information configurable to the data in question. */ interface GooglePrivacyDlpV2CustomInfoTypeResponse { /** * Set of detection rules to apply to all findings of this CustomInfoType. Rules are applied in order that they are specified. Not supported for the `surrogate_type` CustomInfoType. */ detectionRules: outputs.dlp.v2.GooglePrivacyDlpV2DetectionRuleResponse[]; /** * A list of phrases to detect as a CustomInfoType. */ dictionary: outputs.dlp.v2.GooglePrivacyDlpV2DictionaryResponse; /** * If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding to be returned. It still can be used for rules matching. */ exclusionType: string; /** * CustomInfoType can either be a new infoType, or an extension of built-in infoType, when the name matches one of existing infoTypes and that infoType is specified in `InspectContent.info_types` field. Specifying the latter adds findings to the one detected by the system. If built-in info type is not specified in `InspectContent.info_types` list then the name is treated as a custom info type. */ infoType: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse; /** * Likelihood to return for this CustomInfoType. This base value can be altered by a detection rule if the finding meets the criteria specified by the rule. Defaults to `VERY_LIKELY` if not specified. */ likelihood: string; /** * Regular expression based CustomInfoType. */ regex: outputs.dlp.v2.GooglePrivacyDlpV2RegexResponse; /** * Sensitivity for this CustomInfoType. If this CustomInfoType extends an existing InfoType, the sensitivity here will take precedence over that of the original InfoType. If unset for a CustomInfoType, it will default to HIGH. This only applies to data profiling. */ sensitivityScore: outputs.dlp.v2.GooglePrivacyDlpV2SensitivityScoreResponse; /** * Load an existing `StoredInfoType` resource for use in `InspectDataSource`. Not currently supported in `InspectContent`. */ storedType: outputs.dlp.v2.GooglePrivacyDlpV2StoredTypeResponse; /** * Message for detecting output from deidentification transformations that support reversing. */ surrogateType: outputs.dlp.v2.GooglePrivacyDlpV2SurrogateTypeResponse; } /** * A task to execute when a data profile has been generated. */ interface GooglePrivacyDlpV2DataProfileActionResponse { /** * Export data profiles into a provided location. */ exportData: outputs.dlp.v2.GooglePrivacyDlpV2ExportResponse; /** * Publish a message into the Pub/Sub topic. */ pubSubNotification: outputs.dlp.v2.GooglePrivacyDlpV2PubSubNotificationResponse; } /** * A condition for determining whether a Pub/Sub should be triggered. */ interface GooglePrivacyDlpV2DataProfilePubSubConditionResponse { /** * An expression. */ expressions: outputs.dlp.v2.GooglePrivacyDlpV2PubSubExpressionsResponse; } /** * Options defining a data set within Google Cloud Datastore. */ interface GooglePrivacyDlpV2DatastoreOptionsResponse { /** * The kind to process. */ kind: outputs.dlp.v2.GooglePrivacyDlpV2KindExpressionResponse; /** * A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. */ partitionId: outputs.dlp.v2.GooglePrivacyDlpV2PartitionIdResponse; } /** * Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. */ interface GooglePrivacyDlpV2DateShiftConfigResponse { /** * Points to the field that contains the context, for example, an entity id. If set, must also set cryptoKey. If set, shift will be consistent for the given context. */ context: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; /** * Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items. */ cryptoKey: outputs.dlp.v2.GooglePrivacyDlpV2CryptoKeyResponse; /** * For example, -5 means shift date to at most 5 days back in the past. */ lowerBoundDays: number; /** * Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future. */ upperBoundDays: number; } /** * The configuration that controls how the data will change. */ interface GooglePrivacyDlpV2DeidentifyConfigResponse { /** * Treat the dataset as an image and redact. */ imageTransformations: outputs.dlp.v2.GooglePrivacyDlpV2ImageTransformationsResponse; /** * Treat the dataset as free-form text and apply the same free text transformation everywhere. */ infoTypeTransformations: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeTransformationsResponse; /** * Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table. */ recordTransformations: outputs.dlp.v2.GooglePrivacyDlpV2RecordTransformationsResponse; /** * Mode for handling transformation errors. If left unspecified, the default mode is `TransformationErrorHandling.ThrowError`. */ transformationErrorHandling: outputs.dlp.v2.GooglePrivacyDlpV2TransformationErrorHandlingResponse; } /** * The results of a Deidentify action from an inspect job. */ interface GooglePrivacyDlpV2DeidentifyDataSourceDetailsResponse { /** * Stats about the de-identification operation. */ deidentifyStats: outputs.dlp.v2.GooglePrivacyDlpV2DeidentifyDataSourceStatsResponse; /** * De-identification config used for the request. */ requestedOptions: outputs.dlp.v2.GooglePrivacyDlpV2RequestedDeidentifyOptionsResponse; } /** * Summary of what was modified during a transformation. */ interface GooglePrivacyDlpV2DeidentifyDataSourceStatsResponse { /** * Number of successfully applied transformations. */ transformationCount: string; /** * Number of errors encountered while trying to apply transformations. */ transformationErrorCount: string; /** * Total size in bytes that were transformed in some way. */ transformedBytes: string; } /** * Create a de-identified copy of the requested table or files. A TransformationDetail will be created for each transformation. If any rows in BigQuery are skipped during de-identification (transformation errors or row size exceeds BigQuery insert API limits) they are placed in the failure output table. If the original row exceeds the BigQuery insert API limit it will be truncated when written to the failure output table. The failure output table can be set in the action.deidentify.output.big_query_output.deidentified_failure_output_table field, if no table is set, a table will be automatically created in the same project and dataset as the original table. Compatible with: Inspect */ interface GooglePrivacyDlpV2DeidentifyResponse { /** * User settable Cloud Storage bucket and folders to store de-identified files. This field must be set for cloud storage deidentification. The output Cloud Storage bucket must be different from the input bucket. De-identified files will overwrite files in the output path. Form of: gs://bucket/folder/ or gs://bucket */ cloudStorageOutput: string; /** * List of user-specified file type groups to transform. If specified, only the files with these filetypes will be transformed. If empty, all supported files will be transformed. Supported types may be automatically added over time. If a file type is set in this field that isn't supported by the Deidentify action then the job will fail and will not be successfully created/started. Currently the only filetypes supported are: IMAGES, TEXT_FILES, CSV, TSV. */ fileTypesToTransform: string[]; /** * User specified deidentify templates and configs for structured, unstructured, and image files. */ transformationConfig: outputs.dlp.v2.GooglePrivacyDlpV2TransformationConfigResponse; /** * Config for storing transformation details. This is separate from the de-identified content, and contains metadata about the successful transformations and/or failures that occurred while de-identifying. This needs to be set in order for users to access information about the status of each transformation (see TransformationDetails message for more information about what is noted). */ transformationDetailsStorageConfig: outputs.dlp.v2.GooglePrivacyDlpV2TransformationDetailsStorageConfigResponse; } /** * DeidentifyTemplates contains instructions on how to de-identify content. See https://cloud.google.com/dlp/docs/concepts-templates to learn more. */ interface GooglePrivacyDlpV2DeidentifyTemplateResponse { /** * The creation timestamp of an inspectTemplate. */ createTime: string; /** * The core content of the template. */ deidentifyConfig: outputs.dlp.v2.GooglePrivacyDlpV2DeidentifyConfigResponse; /** * Short description (max 256 chars). */ description: string; /** * Display name (max 256 chars). */ displayName: string; /** * The template name. The template will have one of the following formats: `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID` */ name: string; /** * The last update timestamp of an inspectTemplate. */ updateTime: string; } /** * δ-presence metric, used to estimate how likely it is for an attacker to figure out that one given individual appears in a de-identified dataset. Similarly to the k-map metric, we cannot compute δ-presence exactly without knowing the attack dataset, so we use a statistical model instead. */ interface GooglePrivacyDlpV2DeltaPresenceEstimationConfigResponse { /** * Several auxiliary tables can be used in the analysis. Each custom_tag used to tag a quasi-identifiers field must appear in exactly one field of one auxiliary table. */ auxiliaryTables: outputs.dlp.v2.GooglePrivacyDlpV2StatisticalTableResponse[]; /** * Fields considered to be quasi-identifiers. No two fields can have the same tag. */ quasiIds: outputs.dlp.v2.GooglePrivacyDlpV2QuasiIdResponse[]; /** * ISO 3166-1 alpha-2 region code to use in the statistical modeling. Set if no column is tagged with a region-specific InfoType (like US_ZIP_5) or a region code. */ regionCode: string; } /** * A DeltaPresenceEstimationHistogramBucket message with the following values: min_probability: 0.1 max_probability: 0.2 frequency: 42 means that there are 42 records for which δ is in [0.1, 0.2). An important particular case is when min_probability = max_probability = 1: then, every individual who shares this quasi-identifier combination is in the dataset. */ interface GooglePrivacyDlpV2DeltaPresenceEstimationHistogramBucketResponse { /** * Number of records within these probability bounds. */ bucketSize: string; /** * Total number of distinct quasi-identifier tuple values in this bucket. */ bucketValueCount: string; /** * Sample of quasi-identifier tuple values in this bucket. The total number of classes returned per bucket is capped at 20. */ bucketValues: outputs.dlp.v2.GooglePrivacyDlpV2DeltaPresenceEstimationQuasiIdValuesResponse[]; /** * Always greater than or equal to min_probability. */ maxProbability: number; /** * Between 0 and 1. */ minProbability: number; } /** * A tuple of values for the quasi-identifier columns. */ interface GooglePrivacyDlpV2DeltaPresenceEstimationQuasiIdValuesResponse { /** * The estimated probability that a given individual sharing these quasi-identifier values is in the dataset. This value, typically called δ, is the ratio between the number of records in the dataset with these quasi-identifier values, and the total number of individuals (inside *and* outside the dataset) with these quasi-identifier values. For example, if there are 15 individuals in the dataset who share the same quasi-identifier values, and an estimated 100 people in the entire population with these values, then δ is 0.15. */ estimatedProbability: number; /** * The quasi-identifier values. */ quasiIdsValues: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse[]; } /** * Result of the δ-presence computation. Note that these results are an estimation, not exact values. */ interface GooglePrivacyDlpV2DeltaPresenceEstimationResultResponse { /** * The intervals [min_probability, max_probability) do not overlap. If a value doesn't correspond to any such interval, the associated frequency is zero. For example, the following records: {min_probability: 0, max_probability: 0.1, frequency: 17} {min_probability: 0.2, max_probability: 0.3, frequency: 42} {min_probability: 0.3, max_probability: 0.4, frequency: 99} mean that there are no record with an estimated probability in [0.1, 0.2) nor larger or equal to 0.4. */ deltaPresenceEstimationHistogram: outputs.dlp.v2.GooglePrivacyDlpV2DeltaPresenceEstimationHistogramBucketResponse[]; } /** * Deprecated; use `InspectionRuleSet` instead. Rule for modifying a `CustomInfoType` to alter behavior under certain circumstances, depending on the specific details of the rule. Not supported for the `surrogate_type` custom infoType. */ interface GooglePrivacyDlpV2DetectionRuleResponse { /** * Hotword-based detection rule. */ hotwordRule: outputs.dlp.v2.GooglePrivacyDlpV2HotwordRuleResponse; } /** * Custom information type based on a dictionary of words or phrases. This can be used to match sensitive information specific to the data, such as a list of employee IDs or job titles. Dictionary words are case-insensitive and all characters other than letters and digits in the unicode [Basic Multilingual Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane) will be replaced with whitespace when scanning for matches, so the dictionary phrase "Sam Johnson" will match all three phrases "sam johnson", "Sam, Johnson", and "Sam (Johnson)". Additionally, the characters surrounding any match must be of a different type than the adjacent characters within the word, so letters must be next to non-letters and digits next to non-digits. For example, the dictionary word "jen" will match the first three letters of the text "jen123" but will return no matches for "jennifer". Dictionary words containing a large number of characters that are not letters or digits may result in unexpected findings because such characters are treated as whitespace. The [limits](https://cloud.google.com/dlp/limits) page contains details about the size limits of dictionaries. For dictionaries that do not fit within these constraints, consider using `LargeCustomDictionaryConfig` in the `StoredInfoType` API. */ interface GooglePrivacyDlpV2DictionaryResponse { /** * Newline-delimited file of words in Cloud Storage. Only a single file is accepted. */ cloudStoragePath: outputs.dlp.v2.GooglePrivacyDlpV2CloudStoragePathResponse; /** * List of words or phrases to search for. */ wordList: outputs.dlp.v2.GooglePrivacyDlpV2WordListResponse; } /** * Do not profile the tables. */ interface GooglePrivacyDlpV2DisabledResponse { } /** * Requirements that must be true before a table is scanned in discovery for the first time. There is an AND relationship between the top-level attributes. Additionally, minimum conditions with an OR relationship that must be met before Cloud DLP scans a table can be set (like a minimum row count or a minimum table age). */ interface GooglePrivacyDlpV2DiscoveryBigQueryConditionsResponse { /** * BigQuery table must have been created after this date. Used to avoid backfilling. */ createdAfter: string; /** * At least one of the conditions must be true for a table to be scanned. */ orConditions: outputs.dlp.v2.GooglePrivacyDlpV2OrConditionsResponse; /** * Restrict discovery to categories of table types. */ typeCollection: string; /** * Restrict discovery to specific table types. */ types: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableTypesResponse; } /** * Determines what tables will have profiles generated within an organization or project. Includes the ability to filter by regular expression patterns on project ID, dataset ID, and table ID. */ interface GooglePrivacyDlpV2DiscoveryBigQueryFilterResponse { /** * Catch-all. This should always be the last filter in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. */ otherTables: outputs.dlp.v2.GooglePrivacyDlpV2AllOtherBigQueryTablesResponse; /** * A specific set of tables for this filter to apply to. A table collection must be specified in only one filter per config. If a table id or dataset is empty, Cloud DLP assumes all tables in that collection must be profiled. Must specify a project ID. */ tables: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableCollectionResponse; } /** * What must take place for a profile to be updated and how frequently it should occur. New tables are scanned as quickly as possible depending on system capacity. */ interface GooglePrivacyDlpV2DiscoveryGenerationCadenceResponse { /** * Governs when to update data profiles when a schema is modified. */ schemaModifiedCadence: outputs.dlp.v2.GooglePrivacyDlpV2DiscoverySchemaModifiedCadenceResponse; /** * Governs when to update data profiles when a table is modified. */ tableModifiedCadence: outputs.dlp.v2.GooglePrivacyDlpV2DiscoveryTableModifiedCadenceResponse; } /** * The cadence at which to update data profiles when a schema is modified. */ interface GooglePrivacyDlpV2DiscoverySchemaModifiedCadenceResponse { /** * How frequently profiles may be updated when schemas are modified. Defaults to monthly. */ frequency: string; /** * The type of events to consider when deciding if the table's schema has been modified and should have the profile updated. Defaults to NEW_COLUMNS. */ types: string[]; } /** * The location to begin a discovery scan. Denotes an organization ID or folder ID within an organization. */ interface GooglePrivacyDlpV2DiscoveryStartingLocationResponse { /** * The ID of the Folder within an organization to scan. */ folderId: string; /** * The ID of an organization to scan. */ organizationId: string; } /** * The cadence at which to update data profiles when a table is modified. */ interface GooglePrivacyDlpV2DiscoveryTableModifiedCadenceResponse { /** * How frequently data profiles can be updated when tables are modified. Defaults to never. */ frequency: string; /** * The type of events to consider when deciding if the table has been modified and should have the profile updated. Defaults to MODIFIED_TIMESTAMP. */ types: string[]; } /** * Target used to match against for Discovery. */ interface GooglePrivacyDlpV2DiscoveryTargetResponse { /** * BigQuery target for Discovery. The first target to match a table will be the one applied. */ bigQueryTarget: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryDiscoveryTargetResponse; } /** * An entity in a dataset is a field or set of fields that correspond to a single person. For example, in medical records the `EntityId` might be a patient identifier, or for financial records it might be an account identifier. This message is used when generalizations or analysis must take into account that multiple rows correspond to the same entity. */ interface GooglePrivacyDlpV2EntityIdResponse { /** * Composite key indicating which field contains the entity identifier. */ field: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; } /** * Details information about an error encountered during job execution or the results of an unsuccessful activation of the JobTrigger. */ interface GooglePrivacyDlpV2ErrorResponse { /** * Detailed error codes and messages. */ details: outputs.dlp.v2.GoogleRpcStatusResponse; /** * The times the error occurred. List includes the oldest timestamp and the last 9 timestamps. */ timestamps: string[]; } /** * The rule to exclude findings based on a hotword. For record inspection of tables, column names are considered hotwords. An example of this is to exclude a finding if it belongs to a BigQuery column that matches a specific pattern. */ interface GooglePrivacyDlpV2ExcludeByHotwordResponse { /** * Regular expression pattern defining what qualifies as a hotword. */ hotwordRegex: outputs.dlp.v2.GooglePrivacyDlpV2RegexResponse; /** * Range of characters within which the entire hotword must reside. The total length of the window cannot exceed 1000 characters. The windowBefore property in proximity should be set to 1 if the hotword needs to be included in a column header. */ proximity: outputs.dlp.v2.GooglePrivacyDlpV2ProximityResponse; } /** * List of excluded infoTypes. */ interface GooglePrivacyDlpV2ExcludeInfoTypesResponse { /** * InfoType list in ExclusionRule rule drops a finding when it overlaps or contained within with a finding of an infoType from this list. For example, for `InspectionRuleSet.info_types` containing "PHONE_NUMBER"` and `exclusion_rule` containing `exclude_info_types.info_types` with "EMAIL_ADDRESS" the phone number findings are dropped if they overlap with EMAIL_ADDRESS finding. That leads to "555-222-2222@example.org" to generate only a single finding, namely email address. */ infoTypes: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse[]; } /** * The rule that specifies conditions when findings of infoTypes specified in `InspectionRuleSet` are removed from results. */ interface GooglePrivacyDlpV2ExclusionRuleResponse { /** * Dictionary which defines the rule. */ dictionary: outputs.dlp.v2.GooglePrivacyDlpV2DictionaryResponse; /** * Drop if the hotword rule is contained in the proximate context. For tabular data, the context includes the column name. */ excludeByHotword: outputs.dlp.v2.GooglePrivacyDlpV2ExcludeByHotwordResponse; /** * Set of infoTypes for which findings would affect this rule. */ excludeInfoTypes: outputs.dlp.v2.GooglePrivacyDlpV2ExcludeInfoTypesResponse; /** * How the rule is applied, see MatchingType documentation for details. */ matchingType: string; /** * Regular expression which defines the rule. */ regex: outputs.dlp.v2.GooglePrivacyDlpV2RegexResponse; } /** * If set, the detailed data profiles will be persisted to the location of your choice whenever updated. */ interface GooglePrivacyDlpV2ExportResponse { /** * Store all table and column profiles in an existing table or a new table in an existing dataset. Each re-generation will result in a new row in BigQuery. */ profileTable: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableResponse; } /** * An expression, consisting of an operator and conditions. */ interface GooglePrivacyDlpV2ExpressionsResponse { /** * Conditions to apply to the expression. */ conditions: outputs.dlp.v2.GooglePrivacyDlpV2ConditionsResponse; /** * The operator to apply to the result of conditions. Default and currently only supported value is `AND`. */ logicalOperator: string; } /** * General identifier of a data field in a storage service. */ interface GooglePrivacyDlpV2FieldIdResponse { /** * Name describing the field. */ name: string; } /** * The transformation to apply to the field. */ interface GooglePrivacyDlpV2FieldTransformationResponse { /** * Only apply the transformation if the condition evaluates to true for the given `RecordCondition`. The conditions are allowed to reference fields that are not used in the actual transformation. Example Use Cases: - Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range. - Redact a field if the date of birth field is greater than 85. */ condition: outputs.dlp.v2.GooglePrivacyDlpV2RecordConditionResponse; /** * Input field(s) to apply the transformation to. When you have columns that reference their position within a list, omit the index from the FieldId. FieldId name matching ignores the index. For example, instead of "contact.nums[0].type", use "contact.nums.type". */ fields: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse[]; /** * Treat the contents of the field as free text, and selectively transform content that matches an `InfoType`. */ infoTypeTransformations: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeTransformationsResponse; /** * Apply the transformation to the entire field. */ primitiveTransformation: outputs.dlp.v2.GooglePrivacyDlpV2PrimitiveTransformationResponse; } /** * Set of files to scan. */ interface GooglePrivacyDlpV2FileSetResponse { /** * The regex-filtered set of files to scan. Exactly one of `url` or `regex_file_set` must be set. */ regexFileSet: outputs.dlp.v2.GooglePrivacyDlpV2CloudStorageRegexFileSetResponse; /** * The Cloud Storage url of the file(s) to scan, in the format `gs:///`. Trailing wildcard in the path is allowed. If the url ends in a trailing slash, the bucket or directory represented by the url will be scanned non-recursively (content in sub-directories will not be scanned). This means that `gs://mybucket/` is equivalent to `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to `gs://mybucket/directory/*`. Exactly one of `url` or `regex_file_set` must be set. */ url: string; } /** * Configuration to control the number of findings returned for inspection. This is not used for de-identification or data profiling. When redacting sensitive data from images, finding limits don't apply. They can cause unexpected or inconsistent results, where only some data is redacted. Don't include finding limits in RedactImage requests. Otherwise, Cloud DLP returns an error. */ interface GooglePrivacyDlpV2FindingLimitsResponse { /** * Configuration of findings limit given for specified infoTypes. */ maxFindingsPerInfoType: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeLimitResponse[]; /** * Max number of findings that are returned for each item scanned. When set within an InspectContentRequest, this field is ignored. This value isn't a hard limit. If the number of findings for an item reaches this limit, the inspection of that item ends gradually, not abruptly. Therefore, the actual number of findings that Cloud DLP returns for the item can be multiple times higher than this value. */ maxFindingsPerItem: number; /** * Max number of findings that are returned per request or job. If you set this field in an InspectContentRequest, the resulting maximum value is the value that you set or 3,000, whichever is lower. This value isn't a hard limit. If an inspection reaches this limit, the inspection ends gradually, not abruptly. Therefore, the actual number of findings that Cloud DLP returns can be multiple times higher than this value. */ maxFindingsPerRequest: number; } /** * Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}. For example, if lower_bound = 10 and upper_bound = 20, all values that are within this bucket will be replaced with "10-20". This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. */ interface GooglePrivacyDlpV2FixedSizeBucketingConfigResponse { /** * Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works. */ bucketSize: number; /** * Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value "-10". */ lowerBound: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse; /** * Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value "89+". */ upperBound: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse; } /** * The rule that adjusts the likelihood of findings within a certain proximity of hotwords. */ interface GooglePrivacyDlpV2HotwordRuleResponse { /** * Regular expression pattern defining what qualifies as a hotword. */ hotwordRegex: outputs.dlp.v2.GooglePrivacyDlpV2RegexResponse; /** * Likelihood adjustment to apply to all matching findings. */ likelihoodAdjustment: outputs.dlp.v2.GooglePrivacyDlpV2LikelihoodAdjustmentResponse; /** * Range of characters within which the entire hotword must reside. The total length of the window cannot exceed 1000 characters. The finding itself will be included in the window, so that hotwords can be used to match substrings of the finding itself. Suppose you want Cloud DLP to promote the likelihood of the phone number regex "\(\d{3}\) \d{3}-\d{4}" if the area code is known to be the area code of a company's office. In this case, use the hotword regex "\(xxx\)", where "xxx" is the area code in question. For tabular data, if you want to modify the likelihood of an entire column of findngs, see [Hotword example: Set the match likelihood of a table column] (https://cloud.google.com/dlp/docs/creating-custom-infotypes-likelihood#match-column-values). */ proximity: outputs.dlp.v2.GooglePrivacyDlpV2ProximityResponse; } /** * Statistics related to processing hybrid inspect requests. */ interface GooglePrivacyDlpV2HybridInspectStatisticsResponse { /** * The number of hybrid inspection requests aborted because the job ran out of quota or was ended before they could be processed. */ abortedCount: string; /** * The number of hybrid requests currently being processed. Only populated when called via method `getDlpJob`. A burst of traffic may cause hybrid inspect requests to be enqueued. Processing will take place as quickly as possible, but resource limitations may impact how long a request is enqueued for. */ pendingCount: string; /** * The number of hybrid inspection requests processed within this job. */ processedCount: string; } /** * Configuration to control jobs where the content being inspected is outside of Google Cloud Platform. */ interface GooglePrivacyDlpV2HybridOptionsResponse { /** * A short description of where the data is coming from. Will be stored once in the job. 256 max length. */ description: string; /** * To organize findings, these labels will be added to each finding. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. No more than 10 labels can be associated with a given finding. Examples: * `"environment" : "production"` * `"pipeline" : "etl"` */ labels: { [key: string]: string; }; /** * These are labels that each inspection request must include within their 'finding_labels' map. Request may contain others, but any missing one of these will be rejected. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. No more than 10 keys can be required. */ requiredFindingLabelKeys: string[]; /** * If the container is a table, additional information to make findings meaningful such as the columns that are primary keys. */ tableOptions: outputs.dlp.v2.GooglePrivacyDlpV2TableOptionsResponse; } /** * Configuration for determining how redaction of images should occur. */ interface GooglePrivacyDlpV2ImageTransformationResponse { /** * Apply transformation to all findings not specified in other ImageTransformation's selected_info_types. Only one instance is allowed within the ImageTransformations message. */ allInfoTypes: outputs.dlp.v2.GooglePrivacyDlpV2AllInfoTypesResponse; /** * Apply transformation to all text that doesn't match an infoType. Only one instance is allowed within the ImageTransformations message. */ allText: outputs.dlp.v2.GooglePrivacyDlpV2AllTextResponse; /** * The color to use when redacting content from an image. If not specified, the default is black. */ redactionColor: outputs.dlp.v2.GooglePrivacyDlpV2ColorResponse; /** * Apply transformation to the selected info_types. */ selectedInfoTypes: outputs.dlp.v2.GooglePrivacyDlpV2SelectedInfoTypesResponse; } /** * A type of transformation that is applied over images. */ interface GooglePrivacyDlpV2ImageTransformationsResponse { transforms: outputs.dlp.v2.GooglePrivacyDlpV2ImageTransformationResponse[]; } /** * Configuration for setting a minimum likelihood per infotype. Used to customize the minimum likelihood level for specific infotypes in the request. For example, use this if you want to lower the precision for PERSON_NAME without lowering the precision for the other infotypes in the request. */ interface GooglePrivacyDlpV2InfoTypeLikelihoodResponse { /** * Type of information the likelihood threshold applies to. Only one likelihood per info_type should be provided. If InfoTypeLikelihood does not have an info_type, the configuration fails. */ infoType: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse; /** * Only returns findings equal to or above this threshold. This field is required or else the configuration fails. */ minLikelihood: string; } /** * Max findings configuration per infoType, per content item or long running DlpJob. */ interface GooglePrivacyDlpV2InfoTypeLimitResponse { /** * Type of information the findings limit applies to. Only one limit per info_type should be provided. If InfoTypeLimit does not have an info_type, the DLP API applies the limit against all info_types that are found but not specified in another InfoTypeLimit. */ infoType: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse; /** * Max findings limit for the given infoType. */ maxFindings: number; } /** * Type of information detected by the API. */ interface GooglePrivacyDlpV2InfoTypeResponse { /** * Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$_-]{1,64}`. */ name: string; /** * Optional custom sensitivity for this InfoType. This only applies to data profiling. */ sensitivityScore: outputs.dlp.v2.GooglePrivacyDlpV2SensitivityScoreResponse; /** * Optional version name for this InfoType. */ version: string; } /** * Statistics regarding a specific InfoType. */ interface GooglePrivacyDlpV2InfoTypeStatsResponse { /** * Number of findings for this infoType. */ count: string; /** * The type of finding this stat is for. */ infoType: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse; } /** * A transformation to apply to text that is identified as a specific info_type. */ interface GooglePrivacyDlpV2InfoTypeTransformationResponse { /** * InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`. */ infoTypes: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse[]; /** * Primitive transformation to apply to the infoType. */ primitiveTransformation: outputs.dlp.v2.GooglePrivacyDlpV2PrimitiveTransformationResponse; } /** * A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. */ interface GooglePrivacyDlpV2InfoTypeTransformationsResponse { /** * Transformation for each infoType. Cannot specify more than one for a given infoType. */ transformations: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeTransformationResponse[]; } /** * Configuration description of the scanning process. When used with redactContent only info_types and min_likelihood are currently used. */ interface GooglePrivacyDlpV2InspectConfigResponse { /** * Deprecated and unused. * * @deprecated Deprecated and unused. */ contentOptions: string[]; /** * CustomInfoTypes provided by the user. See https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. */ customInfoTypes: outputs.dlp.v2.GooglePrivacyDlpV2CustomInfoTypeResponse[]; /** * When true, excludes type information of the findings. This is not used for data profiling. */ excludeInfoTypes: boolean; /** * When true, a contextual quote from the data that triggered a finding is included in the response; see Finding.quote. This is not used for data profiling. */ includeQuote: boolean; /** * Restricts what info_types to look for. The values must correspond to InfoType values returned by ListInfoTypes or listed at https://cloud.google.com/dlp/docs/infotypes-reference. When no InfoTypes or CustomInfoTypes are specified in a request, the system may automatically choose a default list of detectors to run, which may change over time. If you need precise control and predictability as to what detectors are run you should specify specific InfoTypes listed in the reference, otherwise a default list will be used, which may change over time. */ infoTypes: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse[]; /** * Configuration to control the number of findings returned. This is not used for data profiling. When redacting sensitive data from images, finding limits don't apply. They can cause unexpected or inconsistent results, where only some data is redacted. Don't include finding limits in RedactImage requests. Otherwise, Cloud DLP returns an error. When set within an InspectJobConfig, the specified maximum values aren't hard limits. If an inspection job reaches these limits, the job ends gradually, not abruptly. Therefore, the actual number of findings that Cloud DLP returns can be multiple times higher than these maximum values. */ limits: outputs.dlp.v2.GooglePrivacyDlpV2FindingLimitsResponse; /** * Only returns findings equal to or above this threshold. The default is POSSIBLE. In general, the highest likelihood setting yields the fewest findings in results and the lowest chance of a false positive. For more information, see [Match likelihood](https://cloud.google.com/dlp/docs/likelihood). */ minLikelihood: string; /** * Minimum likelihood per infotype. For each infotype, a user can specify a minimum likelihood. The system only returns a finding if its likelihood is above this threshold. If this field is not set, the system uses the InspectConfig min_likelihood. */ minLikelihoodPerInfoType: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeLikelihoodResponse[]; /** * Set of rules to apply to the findings for this InspectConfig. Exclusion rules, contained in the set are executed in the end, other rules are executed in the order they are specified for each info type. */ ruleSet: outputs.dlp.v2.GooglePrivacyDlpV2InspectionRuleSetResponse[]; } /** * The results of an inspect DataSource job. */ interface GooglePrivacyDlpV2InspectDataSourceDetailsResponse { /** * The configuration used for this job. */ requestedOptions: outputs.dlp.v2.GooglePrivacyDlpV2RequestedOptionsResponse; /** * A summary of the outcome of this inspection job. */ result: outputs.dlp.v2.GooglePrivacyDlpV2ResultResponse; } /** * Controls what and how to inspect for findings. */ interface GooglePrivacyDlpV2InspectJobConfigResponse { /** * Actions to execute at the completion of the job. */ actions: outputs.dlp.v2.GooglePrivacyDlpV2ActionResponse[]; /** * How and what to scan for. */ inspectConfig: outputs.dlp.v2.GooglePrivacyDlpV2InspectConfigResponse; /** * If provided, will be used as the default for all values in InspectConfig. `inspect_config` will be merged into the values persisted as part of the template. */ inspectTemplateName: string; /** * The data to scan. */ storageConfig: outputs.dlp.v2.GooglePrivacyDlpV2StorageConfigResponse; } /** * The inspectTemplate contains a configuration (set of types of sensitive data to be detected) to be used anywhere you otherwise would normally specify InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates to learn more. */ interface GooglePrivacyDlpV2InspectTemplateResponse { /** * The creation timestamp of an inspectTemplate. */ createTime: string; /** * Short description (max 256 chars). */ description: string; /** * Display name (max 256 chars). */ displayName: string; /** * The core content of the template. Configuration of the scanning process. */ inspectConfig: outputs.dlp.v2.GooglePrivacyDlpV2InspectConfigResponse; /** * The template name. The template will have one of the following formats: `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR `organizations/ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID`; */ name: string; /** * The last update timestamp of an inspectTemplate. */ updateTime: string; } /** * A single inspection rule to be applied to infoTypes, specified in `InspectionRuleSet`. */ interface GooglePrivacyDlpV2InspectionRuleResponse { /** * Exclusion rule. */ exclusionRule: outputs.dlp.v2.GooglePrivacyDlpV2ExclusionRuleResponse; /** * Hotword-based detection rule. */ hotwordRule: outputs.dlp.v2.GooglePrivacyDlpV2HotwordRuleResponse; } /** * Rule set for modifying a set of infoTypes to alter behavior under certain circumstances, depending on the specific details of the rules within the set. */ interface GooglePrivacyDlpV2InspectionRuleSetResponse { /** * List of infoTypes this rule set is applied to. */ infoTypes: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse[]; /** * Set of rules to be applied to infoTypes. The rules are applied in order. */ rules: outputs.dlp.v2.GooglePrivacyDlpV2InspectionRuleResponse[]; } /** * Sends an email when the job completes. The email goes to IAM project owners and technical [Essential Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts). */ interface GooglePrivacyDlpV2JobNotificationEmailsResponse { } /** * k-anonymity metric, used for analysis of reidentification risk. */ interface GooglePrivacyDlpV2KAnonymityConfigResponse { /** * Message indicating that multiple rows might be associated to a single individual. If the same entity_id is associated to multiple quasi-identifier tuples over distinct rows, we consider the entire collection of tuples as the composite quasi-identifier. This collection is a multiset: the order in which the different tuples appear in the dataset is ignored, but their frequency is taken into account. Important note: a maximum of 1000 rows can be associated to a single entity ID. If more rows are associated with the same entity ID, some might be ignored. */ entityId: outputs.dlp.v2.GooglePrivacyDlpV2EntityIdResponse; /** * Set of fields to compute k-anonymity over. When multiple fields are specified, they are considered a single composite key. Structs and repeated data types are not supported; however, nested fields are supported so long as they are not structs themselves or nested within a repeated field. */ quasiIds: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse[]; } /** * The set of columns' values that share the same ldiversity value */ interface GooglePrivacyDlpV2KAnonymityEquivalenceClassResponse { /** * Size of the equivalence class, for example number of rows with the above set of values. */ equivalenceClassSize: string; /** * Set of values defining the equivalence class. One value per quasi-identifier column in the original KAnonymity metric message. The order is always the same as the original request. */ quasiIdsValues: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse[]; } /** * Histogram of k-anonymity equivalence classes. */ interface GooglePrivacyDlpV2KAnonymityHistogramBucketResponse { /** * Total number of equivalence classes in this bucket. */ bucketSize: string; /** * Total number of distinct equivalence classes in this bucket. */ bucketValueCount: string; /** * Sample of equivalence classes in this bucket. The total number of classes returned per bucket is capped at 20. */ bucketValues: outputs.dlp.v2.GooglePrivacyDlpV2KAnonymityEquivalenceClassResponse[]; /** * Lower bound on the size of the equivalence classes in this bucket. */ equivalenceClassSizeLowerBound: string; /** * Upper bound on the size of the equivalence classes in this bucket. */ equivalenceClassSizeUpperBound: string; } /** * Result of the k-anonymity computation. */ interface GooglePrivacyDlpV2KAnonymityResultResponse { /** * Histogram of k-anonymity equivalence classes. */ equivalenceClassHistogramBuckets: outputs.dlp.v2.GooglePrivacyDlpV2KAnonymityHistogramBucketResponse[]; } /** * Reidentifiability metric. This corresponds to a risk model similar to what is called "journalist risk" in the literature, except the attack dataset is statistically modeled instead of being perfectly known. This can be done using publicly available data (like the US Census), or using a custom statistical model (indicated as one or several BigQuery tables), or by extrapolating from the distribution of values in the input dataset. */ interface GooglePrivacyDlpV2KMapEstimationConfigResponse { /** * Several auxiliary tables can be used in the analysis. Each custom_tag used to tag a quasi-identifiers column must appear in exactly one column of one auxiliary table. */ auxiliaryTables: outputs.dlp.v2.GooglePrivacyDlpV2AuxiliaryTableResponse[]; /** * Fields considered to be quasi-identifiers. No two columns can have the same tag. */ quasiIds: outputs.dlp.v2.GooglePrivacyDlpV2TaggedFieldResponse[]; /** * ISO 3166-1 alpha-2 region code to use in the statistical modeling. Set if no column is tagged with a region-specific InfoType (like US_ZIP_5) or a region code. */ regionCode: string; } /** * A KMapEstimationHistogramBucket message with the following values: min_anonymity: 3 max_anonymity: 5 frequency: 42 means that there are 42 records whose quasi-identifier values correspond to 3, 4 or 5 people in the overlying population. An important particular case is when min_anonymity = max_anonymity = 1: the frequency field then corresponds to the number of uniquely identifiable records. */ interface GooglePrivacyDlpV2KMapEstimationHistogramBucketResponse { /** * Number of records within these anonymity bounds. */ bucketSize: string; /** * Total number of distinct quasi-identifier tuple values in this bucket. */ bucketValueCount: string; /** * Sample of quasi-identifier tuple values in this bucket. The total number of classes returned per bucket is capped at 20. */ bucketValues: outputs.dlp.v2.GooglePrivacyDlpV2KMapEstimationQuasiIdValuesResponse[]; /** * Always greater than or equal to min_anonymity. */ maxAnonymity: string; /** * Always positive. */ minAnonymity: string; } /** * A tuple of values for the quasi-identifier columns. */ interface GooglePrivacyDlpV2KMapEstimationQuasiIdValuesResponse { /** * The estimated anonymity for these quasi-identifier values. */ estimatedAnonymity: string; /** * The quasi-identifier values. */ quasiIdsValues: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse[]; } /** * Result of the reidentifiability analysis. Note that these results are an estimation, not exact values. */ interface GooglePrivacyDlpV2KMapEstimationResultResponse { /** * The intervals [min_anonymity, max_anonymity] do not overlap. If a value doesn't correspond to any such interval, the associated frequency is zero. For example, the following records: {min_anonymity: 1, max_anonymity: 1, frequency: 17} {min_anonymity: 2, max_anonymity: 3, frequency: 42} {min_anonymity: 5, max_anonymity: 10, frequency: 99} mean that there are no record with an estimated anonymity of 4, 5, or larger than 10. */ kMapEstimationHistogram: outputs.dlp.v2.GooglePrivacyDlpV2KMapEstimationHistogramBucketResponse[]; } /** * A representation of a Datastore kind. */ interface GooglePrivacyDlpV2KindExpressionResponse { /** * The name of the kind. */ name: string; } /** * Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt For more information, see [Creating a wrapped key] (https://cloud.google.com/dlp/docs/create-wrapped-key). Note: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing). */ interface GooglePrivacyDlpV2KmsWrappedCryptoKeyResponse { /** * The resource name of the KMS CryptoKey to use for unwrapping. */ cryptoKeyName: string; /** * The wrapped data crypto key. */ wrappedKey: string; } /** * l-diversity metric, used for analysis of reidentification risk. */ interface GooglePrivacyDlpV2LDiversityConfigResponse { /** * Set of quasi-identifiers indicating how equivalence classes are defined for the l-diversity computation. When multiple fields are specified, they are considered a single composite key. */ quasiIds: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse[]; /** * Sensitive field for computing the l-value. */ sensitiveAttribute: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; } /** * The set of columns' values that share the same ldiversity value. */ interface GooglePrivacyDlpV2LDiversityEquivalenceClassResponse { /** * Size of the k-anonymity equivalence class. */ equivalenceClassSize: string; /** * Number of distinct sensitive values in this equivalence class. */ numDistinctSensitiveValues: string; /** * Quasi-identifier values defining the k-anonymity equivalence class. The order is always the same as the original request. */ quasiIdsValues: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse[]; /** * Estimated frequencies of top sensitive values. */ topSensitiveValues: outputs.dlp.v2.GooglePrivacyDlpV2ValueFrequencyResponse[]; } /** * Histogram of l-diversity equivalence class sensitive value frequencies. */ interface GooglePrivacyDlpV2LDiversityHistogramBucketResponse { /** * Total number of equivalence classes in this bucket. */ bucketSize: string; /** * Total number of distinct equivalence classes in this bucket. */ bucketValueCount: string; /** * Sample of equivalence classes in this bucket. The total number of classes returned per bucket is capped at 20. */ bucketValues: outputs.dlp.v2.GooglePrivacyDlpV2LDiversityEquivalenceClassResponse[]; /** * Lower bound on the sensitive value frequencies of the equivalence classes in this bucket. */ sensitiveValueFrequencyLowerBound: string; /** * Upper bound on the sensitive value frequencies of the equivalence classes in this bucket. */ sensitiveValueFrequencyUpperBound: string; } /** * Result of the l-diversity computation. */ interface GooglePrivacyDlpV2LDiversityResultResponse { /** * Histogram of l-diversity equivalence class sensitive value frequencies. */ sensitiveValueFrequencyHistogramBuckets: outputs.dlp.v2.GooglePrivacyDlpV2LDiversityHistogramBucketResponse[]; } /** * Configuration for a custom dictionary created from a data source of any size up to the maximum size defined in the [limits](https://cloud.google.com/dlp/limits) page. The artifacts of dictionary creation are stored in the specified Cloud Storage location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries that satisfy the size requirements. */ interface GooglePrivacyDlpV2LargeCustomDictionaryConfigResponse { /** * Field in a BigQuery table where each cell represents a dictionary phrase. */ bigQueryField: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryFieldResponse; /** * Set of files containing newline-delimited lists of dictionary phrases. */ cloudStorageFileSet: outputs.dlp.v2.GooglePrivacyDlpV2CloudStorageFileSetResponse; /** * Location to store dictionary artifacts in Cloud Storage. These files will only be accessible by project owners and the DLP API. If any of these artifacts are modified, the dictionary is considered invalid and can no longer be used. */ outputPath: outputs.dlp.v2.GooglePrivacyDlpV2CloudStoragePathResponse; } /** * Summary statistics of a custom dictionary. */ interface GooglePrivacyDlpV2LargeCustomDictionaryStatsResponse { /** * Approximate number of distinct phrases in the dictionary. */ approxNumPhrases: string; } /** * Skips the data without modifying it if the requested transformation would cause an error. For example, if a `DateShift` transformation were applied an an IP address, this mode would leave the IP address unchanged in the response. */ interface GooglePrivacyDlpV2LeaveUntransformedResponse { } /** * Message for specifying an adjustment to the likelihood of a finding as part of a detection rule. */ interface GooglePrivacyDlpV2LikelihoodAdjustmentResponse { /** * Set the likelihood of a finding to a fixed value. */ fixedLikelihood: string; /** * Increase or decrease the likelihood by the specified number of levels. For example, if a finding would be `POSSIBLE` without the detection rule and `relative_likelihood` is 1, then it is upgraded to `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`. Likelihood may never drop below `VERY_UNLIKELY` or exceed `VERY_LIKELY`, so applying an adjustment of 1 followed by an adjustment of -1 when base likelihood is `VERY_LIKELY` will result in a final likelihood of `LIKELY`. */ relativeLikelihood: number; } /** * Job trigger option for hybrid jobs. Jobs must be manually created and finished. */ interface GooglePrivacyDlpV2ManualResponse { } /** * Compute numerical stats over an individual column, including min, max, and quantiles. */ interface GooglePrivacyDlpV2NumericalStatsConfigResponse { /** * Field to compute numerical stats on. Supported types are integer, float, date, datetime, timestamp, time. */ field: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; } /** * Result of the numerical stats computation. */ interface GooglePrivacyDlpV2NumericalStatsResultResponse { /** * Maximum value appearing in the column. */ maxValue: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse; /** * Minimum value appearing in the column. */ minValue: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse; /** * List of 99 values that partition the set of field values into 100 equal sized buckets. */ quantileValues: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse[]; } /** * There is an OR relationship between these attributes. They are used to determine if a table should be scanned or not in Discovery. */ interface GooglePrivacyDlpV2OrConditionsResponse { /** * Minimum age a table must have before Cloud DLP can profile it. Value must be 1 hour or greater. */ minAge: string; /** * Minimum number of rows that should be present before Cloud DLP profiles a table */ minRowCount: number; } /** * Project and scan location information. Only set when the parent is an org. */ interface GooglePrivacyDlpV2OrgConfigResponse { /** * The data to scan: folder, org, or project */ location: outputs.dlp.v2.GooglePrivacyDlpV2DiscoveryStartingLocationResponse; /** * The project that will run the scan. The DLP service account that exists within this project must have access to all resources that are profiled, and the Cloud DLP API must be enabled. */ project: string; } /** * Cloud repository for storing output. */ interface GooglePrivacyDlpV2OutputStorageConfigResponse { /** * Schema used for writing the findings for Inspect jobs. This field is only used for Inspect and must be unspecified for Risk jobs. Columns are derived from the `Finding` object. If appending to an existing table, any columns from the predefined schema that are missing will be added. No columns in the existing table will be deleted. If unspecified, then all available columns will be used for a new table or an (existing) table with no schema, and no changes will be made to an existing table that has a schema. Only for use with external storage. */ outputSchema: string; /** * Store findings in an existing table or a new table in an existing dataset. If table_id is not set a new one will be generated for you with the following format: dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific time zone will be used for generating the date details. For Inspect, each column in an existing output table must have the same name, type, and mode of a field in the `Finding` object. For Risk, an existing output table should be the output of a previous Risk analysis job run on the same source table, with the same privacy metric and quasi-identifiers. Risk jobs that analyze the same table but compute a different privacy metric, or use different sets of quasi-identifiers, cannot store their results in the same table. */ table: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableResponse; } /** * Datastore partition ID. A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. */ interface GooglePrivacyDlpV2PartitionIdResponse { /** * If not empty, the ID of the namespace to which the entities belong. */ namespaceId: string; /** * The ID of the project to which the entities belong. */ project: string; } /** * A rule for transforming a value. */ interface GooglePrivacyDlpV2PrimitiveTransformationResponse { /** * Bucketing */ bucketingConfig: outputs.dlp.v2.GooglePrivacyDlpV2BucketingConfigResponse; /** * Mask */ characterMaskConfig: outputs.dlp.v2.GooglePrivacyDlpV2CharacterMaskConfigResponse; /** * Deterministic Crypto */ cryptoDeterministicConfig: outputs.dlp.v2.GooglePrivacyDlpV2CryptoDeterministicConfigResponse; /** * Crypto */ cryptoHashConfig: outputs.dlp.v2.GooglePrivacyDlpV2CryptoHashConfigResponse; /** * Ffx-Fpe */ cryptoReplaceFfxFpeConfig: outputs.dlp.v2.GooglePrivacyDlpV2CryptoReplaceFfxFpeConfigResponse; /** * Date Shift */ dateShiftConfig: outputs.dlp.v2.GooglePrivacyDlpV2DateShiftConfigResponse; /** * Fixed size bucketing */ fixedSizeBucketingConfig: outputs.dlp.v2.GooglePrivacyDlpV2FixedSizeBucketingConfigResponse; /** * Redact */ redactConfig: outputs.dlp.v2.GooglePrivacyDlpV2RedactConfigResponse; /** * Replace with a specified value. */ replaceConfig: outputs.dlp.v2.GooglePrivacyDlpV2ReplaceValueConfigResponse; /** * Replace with a value randomly drawn (with replacement) from a dictionary. */ replaceDictionaryConfig: outputs.dlp.v2.GooglePrivacyDlpV2ReplaceDictionaryConfigResponse; /** * Replace with infotype */ replaceWithInfoTypeConfig: outputs.dlp.v2.GooglePrivacyDlpV2ReplaceWithInfoTypeConfigResponse; /** * Time extraction */ timePartConfig: outputs.dlp.v2.GooglePrivacyDlpV2TimePartConfigResponse; } /** * Privacy metric to compute for reidentification risk analysis. */ interface GooglePrivacyDlpV2PrivacyMetricResponse { /** * Categorical stats */ categoricalStatsConfig: outputs.dlp.v2.GooglePrivacyDlpV2CategoricalStatsConfigResponse; /** * delta-presence */ deltaPresenceEstimationConfig: outputs.dlp.v2.GooglePrivacyDlpV2DeltaPresenceEstimationConfigResponse; /** * K-anonymity */ kAnonymityConfig: outputs.dlp.v2.GooglePrivacyDlpV2KAnonymityConfigResponse; /** * k-map */ kMapEstimationConfig: outputs.dlp.v2.GooglePrivacyDlpV2KMapEstimationConfigResponse; /** * l-diversity */ lDiversityConfig: outputs.dlp.v2.GooglePrivacyDlpV2LDiversityConfigResponse; /** * Numerical stats */ numericalStatsConfig: outputs.dlp.v2.GooglePrivacyDlpV2NumericalStatsConfigResponse; } /** * Message for specifying a window around a finding to apply a detection rule. */ interface GooglePrivacyDlpV2ProximityResponse { /** * Number of characters after the finding to consider. */ windowAfter: number; /** * Number of characters before the finding to consider. For tabular data, if you want to modify the likelihood of an entire column of findngs, set this to 1. For more information, see [Hotword example: Set the match likelihood of a table column] (https://cloud.google.com/dlp/docs/creating-custom-infotypes-likelihood#match-column-values). */ windowBefore: number; } /** * A condition consisting of a value. */ interface GooglePrivacyDlpV2PubSubConditionResponse { /** * The minimum data risk score that triggers the condition. */ minimumRiskScore: string; /** * The minimum sensitivity level that triggers the condition. */ minimumSensitivityScore: string; } /** * An expression, consisting of an operator and conditions. */ interface GooglePrivacyDlpV2PubSubExpressionsResponse { /** * Conditions to apply to the expression. */ conditions: outputs.dlp.v2.GooglePrivacyDlpV2PubSubConditionResponse[]; /** * The operator to apply to the collection of conditions. */ logicalOperator: string; } /** * Send a Pub/Sub message into the given Pub/Sub topic to connect other systems to data profile generation. The message payload data will be the byte serialization of `DataProfilePubSubMessage`. */ interface GooglePrivacyDlpV2PubSubNotificationResponse { /** * How much data to include in the Pub/Sub message. If the user wishes to limit the size of the message, they can use resource_name and fetch the profile fields they wish to. Per table profile (not per column). */ detailOfMessage: string; /** * The type of event that triggers a Pub/Sub. At most one `PubSubNotification` per EventType is permitted. */ event: string; /** * Conditions (e.g., data risk or sensitivity level) for triggering a Pub/Sub. */ pubsubCondition: outputs.dlp.v2.GooglePrivacyDlpV2DataProfilePubSubConditionResponse; /** * Cloud Pub/Sub topic to send notifications to. Format is projects/{project}/topics/{topic}. */ topic: string; } /** * Publish findings of a DlpJob to Data Catalog. In Data Catalog, tag templates are applied to the resource that Cloud DLP scanned. Data Catalog tag templates are stored in the same project and region where the BigQuery table exists. For Cloud DLP to create and apply the tag template, the Cloud DLP service agent must have the `roles/datacatalog.tagTemplateOwner` permission on the project. The tag template contains fields summarizing the results of the DlpJob. Any field values previously written by another DlpJob are deleted. InfoType naming patterns are strictly enforced when using this feature. Findings are persisted in Data Catalog storage and are governed by service-specific policies for Data Catalog. For more information, see [Service Specific Terms](https://cloud.google.com/terms/service-terms). Only a single instance of this action can be specified. This action is allowed only if all resources being scanned are BigQuery tables. Compatible with: Inspect */ interface GooglePrivacyDlpV2PublishFindingsToCloudDataCatalogResponse { } /** * Publish the result summary of a DlpJob to [Security Command Center](https://cloud.google.com/security-command-center). This action is available for only projects that belong to an organization. This action publishes the count of finding instances and their infoTypes. The summary of findings are persisted in Security Command Center and are governed by [service-specific policies for Security Command Center](https://cloud.google.com/terms/service-terms). Only a single instance of this action can be specified. Compatible with: Inspect */ interface GooglePrivacyDlpV2PublishSummaryToCsccResponse { } /** * Publish a message into a given Pub/Sub topic when DlpJob has completed. The message contains a single field, `DlpJobName`, which is equal to the finished job's [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). Compatible with: Inspect, Risk */ interface GooglePrivacyDlpV2PublishToPubSubResponse { /** * Cloud Pub/Sub topic to send notifications to. The topic must have given publishing access rights to the DLP API service account executing the long running DlpJob sending the notifications. Format is projects/{project}/topics/{topic}. */ topic: string; } /** * Enable Stackdriver metric dlp.googleapis.com/finding_count. This will publish a metric to stack driver on each infotype requested and how many findings were found for it. CustomDetectors will be bucketed as 'Custom' under the Stackdriver label 'info_type'. */ interface GooglePrivacyDlpV2PublishToStackdriverResponse { } /** * A quasi-identifier column has a custom_tag, used to know which column in the data corresponds to which column in the statistical model. */ interface GooglePrivacyDlpV2QuasiIdFieldResponse { /** * A auxiliary field. */ customTag: string; /** * Identifies the column. */ field: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; } /** * A column with a semantic tag attached. */ interface GooglePrivacyDlpV2QuasiIdResponse { /** * A column can be tagged with a custom tag. In this case, the user must indicate an auxiliary table that contains statistical information on the possible values of this column (below). */ customTag: string; /** * Identifies the column. */ field: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; /** * If no semantic tag is indicated, we infer the statistical model from the distribution of values in the input data */ inferred: outputs.dlp.v2.GoogleProtobufEmptyResponse; /** * A column can be tagged with a InfoType to use the relevant public dataset as a statistical model of population, if available. We currently support US ZIP codes, region codes, ages and genders. To programmatically obtain the list of supported InfoTypes, use ListInfoTypes with the supported_by=RISK_ANALYSIS filter. */ infoType: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse; } /** * A quasi-identifier column has a custom_tag, used to know which column in the data corresponds to which column in the statistical model. */ interface GooglePrivacyDlpV2QuasiIdentifierFieldResponse { /** * A column can be tagged with a custom tag. In this case, the user must indicate an auxiliary table that contains statistical information on the possible values of this column (below). */ customTag: string; /** * Identifies the column. */ field: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; } /** * A condition for determining whether a transformation should be applied to a field. */ interface GooglePrivacyDlpV2RecordConditionResponse { /** * An expression. */ expressions: outputs.dlp.v2.GooglePrivacyDlpV2ExpressionsResponse; } /** * Configuration to suppress records whose suppression conditions evaluate to true. */ interface GooglePrivacyDlpV2RecordSuppressionResponse { /** * A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content. */ condition: outputs.dlp.v2.GooglePrivacyDlpV2RecordConditionResponse; } /** * A type of transformation that is applied over structured data such as a table. */ interface GooglePrivacyDlpV2RecordTransformationsResponse { /** * Transform the record by applying various field transformations. */ fieldTransformations: outputs.dlp.v2.GooglePrivacyDlpV2FieldTransformationResponse[]; /** * Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output. */ recordSuppressions: outputs.dlp.v2.GooglePrivacyDlpV2RecordSuppressionResponse[]; } /** * Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the output would be 'My phone number is '. */ interface GooglePrivacyDlpV2RedactConfigResponse { } /** * Message defining a custom regular expression. */ interface GooglePrivacyDlpV2RegexResponse { /** * The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included. */ groupIndexes: number[]; /** * Pattern defining the regular expression. Its syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub. */ pattern: string; } /** * Replace each input value with a value randomly selected from the dictionary. */ interface GooglePrivacyDlpV2ReplaceDictionaryConfigResponse { /** * A list of words to select from for random replacement. The [limits](https://cloud.google.com/dlp/limits) page contains details about the size limits of dictionaries. */ wordList: outputs.dlp.v2.GooglePrivacyDlpV2WordListResponse; } /** * Replace each input value with a given `Value`. */ interface GooglePrivacyDlpV2ReplaceValueConfigResponse { /** * Value to replace it with. */ newValue: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse; } /** * Replace each matching finding with the name of the info_type. */ interface GooglePrivacyDlpV2ReplaceWithInfoTypeConfigResponse { } /** * De-identification options. */ interface GooglePrivacyDlpV2RequestedDeidentifyOptionsResponse { /** * Snapshot of the state of the `DeidentifyTemplate` from the Deidentify action at the time this job was run. */ snapshotDeidentifyTemplate: outputs.dlp.v2.GooglePrivacyDlpV2DeidentifyTemplateResponse; /** * Snapshot of the state of the image transformation `DeidentifyTemplate` from the `Deidentify` action at the time this job was run. */ snapshotImageRedactTemplate: outputs.dlp.v2.GooglePrivacyDlpV2DeidentifyTemplateResponse; /** * Snapshot of the state of the structured `DeidentifyTemplate` from the `Deidentify` action at the time this job was run. */ snapshotStructuredDeidentifyTemplate: outputs.dlp.v2.GooglePrivacyDlpV2DeidentifyTemplateResponse; } /** * Snapshot of the inspection configuration. */ interface GooglePrivacyDlpV2RequestedOptionsResponse { /** * Inspect config. */ jobConfig: outputs.dlp.v2.GooglePrivacyDlpV2InspectJobConfigResponse; /** * If run with an InspectTemplate, a snapshot of its state at the time of this run. */ snapshotInspectTemplate: outputs.dlp.v2.GooglePrivacyDlpV2InspectTemplateResponse; } /** * Risk analysis options. */ interface GooglePrivacyDlpV2RequestedRiskAnalysisOptionsResponse { /** * The job config for the risk job. */ jobConfig: outputs.dlp.v2.GooglePrivacyDlpV2RiskAnalysisJobConfigResponse; } /** * All result fields mentioned below are updated while the job is processing. */ interface GooglePrivacyDlpV2ResultResponse { /** * Statistics related to the processing of hybrid inspect. */ hybridStats: outputs.dlp.v2.GooglePrivacyDlpV2HybridInspectStatisticsResponse; /** * Statistics of how many instances of each info type were found during inspect job. */ infoTypeStats: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeStatsResponse[]; /** * Total size in bytes that were processed. */ processedBytes: string; /** * Estimate of the number of bytes to process. */ totalEstimatedBytes: string; } /** * Configuration for a risk analysis job. See https://cloud.google.com/dlp/docs/concepts-risk-analysis to learn more. */ interface GooglePrivacyDlpV2RiskAnalysisJobConfigResponse { /** * Actions to execute at the completion of the job. Are executed in the order provided. */ actions: outputs.dlp.v2.GooglePrivacyDlpV2ActionResponse[]; /** * Privacy metric to compute. */ privacyMetric: outputs.dlp.v2.GooglePrivacyDlpV2PrivacyMetricResponse; /** * Input dataset to compute metrics over. */ sourceTable: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableResponse; } /** * If set, the detailed findings will be persisted to the specified OutputStorageConfig. Only a single instance of this action can be specified. Compatible with: Inspect, Risk */ interface GooglePrivacyDlpV2SaveFindingsResponse { /** * Location to store findings outside of DLP. */ outputConfig: outputs.dlp.v2.GooglePrivacyDlpV2OutputStorageConfigResponse; } /** * Schedule for inspect job triggers. */ interface GooglePrivacyDlpV2ScheduleResponse { /** * With this option a job is started on a regular periodic basis. For example: every day (86400 seconds). A scheduled start time will be skipped if the previous execution has not ended when its scheduled time occurs. This value must be set to a time duration greater than or equal to 1 day and can be no longer than 60 days. */ recurrencePeriodDuration: string; } /** * Apply transformation to the selected info_types. */ interface GooglePrivacyDlpV2SelectedInfoTypesResponse { /** * InfoTypes to apply the transformation to. Required. Provided InfoType must be unique within the ImageTransformations message. */ infoTypes: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse[]; } /** * Score is calculated from of all elements in the data profile. A higher level means the data is more sensitive. */ interface GooglePrivacyDlpV2SensitivityScoreResponse { /** * The sensitivity score applied to the resource. */ score: string; } /** * An auxiliary table containing statistical information on the relative frequency of different quasi-identifiers values. It has one or several quasi-identifiers columns, and one column that indicates the relative frequency of each quasi-identifier tuple. If a tuple is present in the data but not in the auxiliary table, the corresponding relative frequency is assumed to be zero (and thus, the tuple is highly reidentifiable). */ interface GooglePrivacyDlpV2StatisticalTableResponse { /** * Quasi-identifier columns. */ quasiIds: outputs.dlp.v2.GooglePrivacyDlpV2QuasiIdentifierFieldResponse[]; /** * The relative frequency column must contain a floating-point number between 0 and 1 (inclusive). Null values are assumed to be zero. */ relativeFrequency: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; /** * Auxiliary table location. */ table: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableResponse; } /** * Shared message indicating Cloud storage type. */ interface GooglePrivacyDlpV2StorageConfigResponse { /** * BigQuery options. */ bigQueryOptions: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryOptionsResponse; /** * Cloud Storage options. */ cloudStorageOptions: outputs.dlp.v2.GooglePrivacyDlpV2CloudStorageOptionsResponse; /** * Google Cloud Datastore options. */ datastoreOptions: outputs.dlp.v2.GooglePrivacyDlpV2DatastoreOptionsResponse; /** * Hybrid inspection options. */ hybridOptions: outputs.dlp.v2.GooglePrivacyDlpV2HybridOptionsResponse; timespanConfig: outputs.dlp.v2.GooglePrivacyDlpV2TimespanConfigResponse; } /** * Configuration for stored infoTypes. All fields and subfield are provided by the user. For more information, see https://cloud.google.com/dlp/docs/creating-custom-infotypes. */ interface GooglePrivacyDlpV2StoredInfoTypeConfigResponse { /** * Description of the StoredInfoType (max 256 characters). */ description: string; /** * Store dictionary-based CustomInfoType. */ dictionary: outputs.dlp.v2.GooglePrivacyDlpV2DictionaryResponse; /** * Display name of the StoredInfoType (max 256 characters). */ displayName: string; /** * StoredInfoType where findings are defined by a dictionary of phrases. */ largeCustomDictionary: outputs.dlp.v2.GooglePrivacyDlpV2LargeCustomDictionaryConfigResponse; /** * Store regular expression-based StoredInfoType. */ regex: outputs.dlp.v2.GooglePrivacyDlpV2RegexResponse; } /** * Statistics for a StoredInfoType. */ interface GooglePrivacyDlpV2StoredInfoTypeStatsResponse { /** * StoredInfoType where findings are defined by a dictionary of phrases. */ largeCustomDictionary: outputs.dlp.v2.GooglePrivacyDlpV2LargeCustomDictionaryStatsResponse; } /** * Version of a StoredInfoType, including the configuration used to build it, create timestamp, and current state. */ interface GooglePrivacyDlpV2StoredInfoTypeVersionResponse { /** * StoredInfoType configuration. */ config: outputs.dlp.v2.GooglePrivacyDlpV2StoredInfoTypeConfigResponse; /** * Create timestamp of the version. Read-only, determined by the system when the version is created. */ createTime: string; /** * Errors that occurred when creating this storedInfoType version, or anomalies detected in the storedInfoType data that render it unusable. Only the five most recent errors will be displayed, with the most recent error appearing first. For example, some of the data for stored custom dictionaries is put in the user's Cloud Storage bucket, and if this data is modified or deleted by the user or another system, the dictionary becomes invalid. If any errors occur, fix the problem indicated by the error message and use the UpdateStoredInfoType API method to create another version of the storedInfoType to continue using it, reusing the same `config` if it was not the source of the error. */ errors: outputs.dlp.v2.GooglePrivacyDlpV2ErrorResponse[]; /** * Stored info type version state. Read-only, updated by the system during dictionary creation. */ state: string; /** * Statistics about this storedInfoType version. */ stats: outputs.dlp.v2.GooglePrivacyDlpV2StoredInfoTypeStatsResponse; } /** * A reference to a StoredInfoType to use with scanning. */ interface GooglePrivacyDlpV2StoredTypeResponse { /** * Timestamp indicating when the version of the `StoredInfoType` used for inspection was created. Output-only field, populated by the system. */ createTime: string; /** * Resource name of the requested `StoredInfoType`, for example `organizations/433245324/storedInfoTypes/432452342` or `projects/project-id/storedInfoTypes/432452342`. */ name: string; } /** * Message for detecting output from deidentification transformations such as [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). These types of transformations are those that perform pseudonymization, thereby producing a "surrogate" as output. This should be used in conjunction with a field on the transformation such as `surrogate_info_type`. This CustomInfoType does not support the use of `detection_rules`. */ interface GooglePrivacyDlpV2SurrogateTypeResponse { } /** * Instructions regarding the table content being inspected. */ interface GooglePrivacyDlpV2TableOptionsResponse { /** * The columns that are the primary keys for table objects included in ContentItem. A copy of this cell's value will stored alongside alongside each finding so that the finding can be traced to the specific row it came from. No more than 3 may be provided. */ identifyingFields: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse[]; } /** * A column with a semantic tag attached. */ interface GooglePrivacyDlpV2TaggedFieldResponse { /** * A column can be tagged with a custom tag. In this case, the user must indicate an auxiliary table that contains statistical information on the possible values of this column (below). */ customTag: string; /** * Identifies the column. */ field: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; /** * If no semantic tag is indicated, we infer the statistical model from the distribution of values in the input data */ inferred: outputs.dlp.v2.GoogleProtobufEmptyResponse; /** * A column can be tagged with a InfoType to use the relevant public dataset as a statistical model of population, if available. We currently support US ZIP codes, region codes, ages and genders. To programmatically obtain the list of supported InfoTypes, use ListInfoTypes with the supported_by=RISK_ANALYSIS filter. */ infoType: outputs.dlp.v2.GooglePrivacyDlpV2InfoTypeResponse; } /** * Throw an error and fail the request when a transformation error occurs. */ interface GooglePrivacyDlpV2ThrowErrorResponse { } /** * For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. */ interface GooglePrivacyDlpV2TimePartConfigResponse { /** * The part of the time to keep. */ partToExtract: string; } /** * Configuration of the timespan of the items to include in scanning. Currently only supported when inspecting Cloud Storage and BigQuery. */ interface GooglePrivacyDlpV2TimespanConfigResponse { /** * When the job is started by a JobTrigger we will automatically figure out a valid start_time to avoid scanning files that have not been modified since the last time the JobTrigger executed. This will be based on the time of the execution of the last run of the JobTrigger or the timespan end_time used in the last run of the JobTrigger. */ enableAutoPopulationOfTimespanConfig: boolean; /** * Exclude files, tables, or rows newer than this value. If not set, no upper time limit is applied. */ endTime: string; /** * Exclude files, tables, or rows older than this value. If not set, no lower time limit is applied. */ startTime: string; /** * Specification of the field containing the timestamp of scanned items. Used for data sources like Datastore and BigQuery. *For BigQuery* If this value is not specified and the table was modified between the given start and end times, the entire table will be scanned. If this value is specified, then rows are filtered based on the given start and end times. Rows with a `NULL` value in the provided BigQuery column are skipped. Valid data types of the provided BigQuery column are: `INTEGER`, `DATE`, `TIMESTAMP`, and `DATETIME`. If your BigQuery table is [partitioned at ingestion time](https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time), you can use any of the following pseudo-columns as your timestamp field. When used with Cloud DLP, these pseudo-column names are case sensitive. - _PARTITIONTIME - _PARTITIONDATE - _PARTITION_LOAD_TIME *For Datastore* If this value is specified, then entities are filtered based on the given start and end times. If an entity does not contain the provided timestamp property or contains empty or invalid values, then it is included. Valid data types of the provided timestamp property are: `TIMESTAMP`. See the [known issue](https://cloud.google.com/dlp/docs/known-issues#bq-timespan) related to this operation. */ timestampField: outputs.dlp.v2.GooglePrivacyDlpV2FieldIdResponse; } /** * User specified templates and configs for how to deidentify structured, unstructures, and image files. User must provide either a unstructured deidentify template or at least one redact image config. */ interface GooglePrivacyDlpV2TransformationConfigResponse { /** * De-identify template. If this template is specified, it will serve as the default de-identify template. This template cannot contain `record_transformations` since it can be used for unstructured content such as free-form text files. If this template is not set, a default `ReplaceWithInfoTypeConfig` will be used to de-identify unstructured content. */ deidentifyTemplate: string; /** * Image redact template. If this template is specified, it will serve as the de-identify template for images. If this template is not set, all findings in the image will be redacted with a black box. */ imageRedactTemplate: string; /** * Structured de-identify template. If this template is specified, it will serve as the de-identify template for structured content such as delimited files and tables. If this template is not set but the `deidentify_template` is set, then `deidentify_template` will also apply to the structured content. If neither template is set, a default `ReplaceWithInfoTypeConfig` will be used to de-identify structured content. */ structuredDeidentifyTemplate: string; } /** * Config for storing transformation details. */ interface GooglePrivacyDlpV2TransformationDetailsStorageConfigResponse { /** * The BigQuery table in which to store the output. This may be an existing table or in a new table in an existing dataset. If table_id is not set a new one will be generated for you with the following format: dlp_googleapis_transformation_details_yyyy_mm_dd_[dlp_job_id]. Pacific time zone will be used for generating the date details. */ table: outputs.dlp.v2.GooglePrivacyDlpV2BigQueryTableResponse; } /** * How to handle transformation errors during de-identification. A transformation error occurs when the requested transformation is incompatible with the data. For example, trying to de-identify an IP address using a `DateShift` transformation would result in a transformation error, since date info cannot be extracted from an IP address. Information about any incompatible transformations, and how they were handled, is returned in the response as part of the `TransformationOverviews`. */ interface GooglePrivacyDlpV2TransformationErrorHandlingResponse { /** * Ignore errors */ leaveUntransformed: outputs.dlp.v2.GooglePrivacyDlpV2LeaveUntransformedResponse; /** * Throw an error */ throwError: outputs.dlp.v2.GooglePrivacyDlpV2ThrowErrorResponse; } /** * Use this to have a random data crypto key generated. It will be discarded after the request finishes. */ interface GooglePrivacyDlpV2TransientCryptoKeyResponse { /** * Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated). */ name: string; } /** * What event needs to occur for a new job to be started. */ interface GooglePrivacyDlpV2TriggerResponse { /** * For use with hybrid jobs. Jobs must be manually created and finished. */ manual: outputs.dlp.v2.GooglePrivacyDlpV2ManualResponse; /** * Create a job on a repeating basis based on the elapse of time. */ schedule: outputs.dlp.v2.GooglePrivacyDlpV2ScheduleResponse; } /** * Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. */ interface GooglePrivacyDlpV2UnwrappedCryptoKeyResponse { /** * A 128/192/256 bit key. */ key: string; } /** * A value of a field, including its frequency. */ interface GooglePrivacyDlpV2ValueFrequencyResponse { /** * How many times the value is contained in the field. */ count: string; /** * A value contained in the field in question. */ value: outputs.dlp.v2.GooglePrivacyDlpV2ValueResponse; } /** * Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a 'Value' is based on its representation as a UTF-8 encoded string. For example, if 'integer_value' is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. */ interface GooglePrivacyDlpV2ValueResponse { /** * boolean */ booleanValue: boolean; /** * date */ dateValue: outputs.dlp.v2.GoogleTypeDateResponse; /** * day of week */ dayOfWeekValue: string; /** * float */ floatValue: number; /** * integer */ integerValue: string; /** * string */ stringValue: string; /** * time of day */ timeValue: outputs.dlp.v2.GoogleTypeTimeOfDayResponse; /** * timestamp */ timestampValue: string; } /** * Message defining a list of words or phrases to search for in the data. */ interface GooglePrivacyDlpV2WordListResponse { /** * Words or phrases defining the dictionary. The dictionary must contain at least one phrase and every phrase must contain at least 2 characters that are letters or digits. [required] */ words: string[]; } /** * A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } */ interface GoogleProtobufEmptyResponse { } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface GoogleRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp */ interface GoogleTypeDateResponse { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day: number; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month: number; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year: number; } /** * Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. */ interface GoogleTypeTimeOfDayResponse { /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. */ hours: number; /** * Minutes of hour of day. Must be from 0 to 59. */ minutes: number; /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. */ nanos: number; /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds. */ seconds: number; } } } export declare namespace dns { namespace v1 { /** * Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey. */ interface DnsKeySpecResponse { /** * String mnemonic specifying the DNSSEC algorithm of this key. */ algorithm: string; /** * Length of the keys in bits. */ keyLength: number; /** * Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, are only used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and are used to sign all other types of resource record sets. */ keyType: string; kind: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.dns.v1.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.dns.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Cloud Logging configurations for publicly visible zones. */ interface ManagedZoneCloudLoggingConfigResponse { /** * If set, enable query logging for this ManagedZone. False by default, making logging opt-in. */ enableLogging: boolean; kind: string; } interface ManagedZoneDnsSecConfigResponse { /** * Specifies parameters for generating initial DnsKeys for this ManagedZone. Can only be changed while the state is OFF. */ defaultKeySpecs: outputs.dns.v1.DnsKeySpecResponse[]; kind: string; /** * Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF. */ nonExistence: string; /** * Specifies whether DNSSEC is enabled, and what mode it is in. */ state: string; } interface ManagedZoneForwardingConfigNameServerTargetResponse { /** * Forwarding path for this NameServerTarget. If unset or set to DEFAULT, Cloud DNS makes forwarding decisions based on IP address ranges; that is, RFC1918 addresses go to the VPC network, non-RFC1918 addresses go to the internet. When set to PRIVATE, Cloud DNS always sends queries through the VPC network for this target. */ forwardingPath: string; /** * IPv4 address of a target name server. */ ipv4Address: string; /** * IPv6 address of a target name server. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022. */ ipv6Address: string; kind: string; } interface ManagedZoneForwardingConfigResponse { kind: string; /** * List of target name servers to forward to. Cloud DNS selects the best available name server if more than one target is given. */ targetNameServers: outputs.dns.v1.ManagedZoneForwardingConfigNameServerTargetResponse[]; } interface ManagedZonePeeringConfigResponse { kind: string; /** * The network with which to peer. */ targetNetwork: outputs.dns.v1.ManagedZonePeeringConfigTargetNetworkResponse; } interface ManagedZonePeeringConfigTargetNetworkResponse { /** * The time at which the zone was deactivated, in RFC 3339 date-time format. An empty string indicates that the peering connection is active. The producer network can deactivate a zone. The zone is automatically deactivated if the producer network that the zone targeted is deleted. Output only. */ deactivateTime: string; kind: string; /** * The fully qualified URL of the VPC network to forward queries to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} */ networkUrl: string; } interface ManagedZonePrivateVisibilityConfigGKEClusterResponse { /** * The resource name of the cluster to bind this ManagedZone to. This should be specified in the format like: projects/*/locations/*/clusters/*. This is referenced from GKE projects.locations.clusters.get API: https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/get */ gkeClusterName: string; kind: string; } interface ManagedZonePrivateVisibilityConfigNetworkResponse { kind: string; /** * The fully qualified URL of the VPC network to bind to. Format this URL like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} */ networkUrl: string; } interface ManagedZonePrivateVisibilityConfigResponse { /** * The list of Google Kubernetes Engine clusters that can see this zone. */ gkeClusters: outputs.dns.v1.ManagedZonePrivateVisibilityConfigGKEClusterResponse[]; kind: string; /** * The list of VPC networks that can see this zone. */ networks: outputs.dns.v1.ManagedZonePrivateVisibilityConfigNetworkResponse[]; } interface ManagedZoneReverseLookupConfigResponse { kind: string; } interface ManagedZoneServiceDirectoryConfigNamespaceResponse { /** * The time that the namespace backing this zone was deleted; an empty string if it still exists. This is in RFC3339 text format. Output only. */ deletionTime: string; kind: string; /** * The fully qualified URL of the namespace associated with the zone. Format must be https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace} */ namespaceUrl: string; } /** * Contains information about Service Directory-backed zones. */ interface ManagedZoneServiceDirectoryConfigResponse { kind: string; /** * Contains information about the namespace associated with the zone. */ namespace: outputs.dns.v1.ManagedZoneServiceDirectoryConfigNamespaceResponse; } interface PolicyAlternativeNameServerConfigResponse { kind: string; /** * Sets an alternative name server for the associated networks. When specified, all DNS queries are forwarded to a name server that you choose. Names such as .internal are not available when an alternative name server is specified. */ targetNameServers: outputs.dns.v1.PolicyAlternativeNameServerConfigTargetNameServerResponse[]; } interface PolicyAlternativeNameServerConfigTargetNameServerResponse { /** * Forwarding path for this TargetNameServer. If unset or set to DEFAULT, Cloud DNS makes forwarding decisions based on address ranges; that is, RFC1918 addresses go to the VPC network, non-RFC1918 addresses go to the internet. When set to PRIVATE, Cloud DNS always sends queries through the VPC network for this target. */ forwardingPath: string; /** * IPv4 address to forward queries to. */ ipv4Address: string; /** * IPv6 address to forward to. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022. */ ipv6Address: string; kind: string; } interface PolicyNetworkResponse { kind: string; /** * The fully qualified URL of the VPC network to bind to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} */ networkUrl: string; } /** * ResourceRecordSet data for one geo location. */ interface RRSetRoutingPolicyGeoPolicyGeoPolicyItemResponse { /** * For A and AAAA types only. Endpoints to return in the query result only if they are healthy. These can be specified along with rrdata within this item. */ healthCheckedTargets: outputs.dns.v1.RRSetRoutingPolicyHealthCheckTargetsResponse; kind: string; /** * The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. */ location: string; rrdatas: string[]; /** * DNSSEC generated signatures for all the rrdata within this item. If health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item. */ signatureRrdatas: string[]; } /** * Configures a RRSetRoutingPolicy that routes based on the geo location of the querying user. */ interface RRSetRoutingPolicyGeoPolicyResponse { /** * Without fencing, if health check fails for all configured items in the current geo bucket, we failover to the next nearest geo bucket. With fencing, if health checking is enabled, as long as some targets in the current geo bucket are healthy, we return only the healthy targets. However, if all targets are unhealthy, we don't failover to the next nearest bucket; instead, we return all the items in the current bucket even when all targets are unhealthy. */ enableFencing: boolean; /** * The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. */ items: outputs.dns.v1.RRSetRoutingPolicyGeoPolicyGeoPolicyItemResponse[]; kind: string; } /** * HealthCheckTargets describes endpoints to health-check when responding to Routing Policy queries. Only the healthy endpoints will be included in the response. */ interface RRSetRoutingPolicyHealthCheckTargetsResponse { internalLoadBalancers: outputs.dns.v1.RRSetRoutingPolicyLoadBalancerTargetResponse[]; } /** * The configuration for an individual load balancer to health check. */ interface RRSetRoutingPolicyLoadBalancerTargetResponse { /** * The frontend IP address of the load balancer to health check. */ ipAddress: string; /** * The protocol of the load balancer to health check. */ ipProtocol: string; kind: string; /** * The type of load balancer specified by this target. This value must match the configuration of the load balancer located at the LoadBalancerTarget's IP address, port, and region. Use the following: - *regionalL4ilb*: for a regional internal passthrough Network Load Balancer. - *regionalL7ilb*: for a regional internal Application Load Balancer. - *globalL7ilb*: for a global internal Application Load Balancer. */ loadBalancerType: string; /** * The fully qualified URL of the network that the load balancer is attached to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} . */ networkUrl: string; /** * The configured port of the load balancer. */ port: string; /** * The project ID in which the load balancer is located. */ project: string; /** * The region in which the load balancer is located. */ region: string; } /** * Configures a RRSetRoutingPolicy such that all queries are responded with the primary_targets if they are healthy. And if all of them are unhealthy, then we fallback to a geo localized policy. */ interface RRSetRoutingPolicyPrimaryBackupPolicyResponse { /** * Backup targets provide a regional failover policy for the otherwise global primary targets. If serving state is set to BACKUP, this policy essentially becomes a geo routing policy. */ backupGeoTargets: outputs.dns.v1.RRSetRoutingPolicyGeoPolicyResponse; kind: string; /** * Endpoints that are health checked before making the routing decision. Unhealthy endpoints are omitted from the results. If all endpoints are unhealthy, we serve a response based on the backup_geo_targets. */ primaryTargets: outputs.dns.v1.RRSetRoutingPolicyHealthCheckTargetsResponse; /** * When serving state is PRIMARY, this field provides the option of sending a small percentage of the traffic to the backup targets. */ trickleTraffic: number; } /** * A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. */ interface RRSetRoutingPolicyResponse { geo: outputs.dns.v1.RRSetRoutingPolicyGeoPolicyResponse; kind: string; primaryBackup: outputs.dns.v1.RRSetRoutingPolicyPrimaryBackupPolicyResponse; wrr: outputs.dns.v1.RRSetRoutingPolicyWrrPolicyResponse; } /** * Configures a RRSetRoutingPolicy that routes in a weighted round robin fashion. */ interface RRSetRoutingPolicyWrrPolicyResponse { items: outputs.dns.v1.RRSetRoutingPolicyWrrPolicyWrrPolicyItemResponse[]; kind: string; } /** * A routing block which contains the routing information for one WRR item. */ interface RRSetRoutingPolicyWrrPolicyWrrPolicyItemResponse { /** * Endpoints that are health checked before making the routing decision. The unhealthy endpoints are omitted from the result. If all endpoints within a bucket are unhealthy, we choose a different bucket (sampled with respect to its weight) for responding. If DNSSEC is enabled for this zone, only one of rrdata or health_checked_targets can be set. */ healthCheckedTargets: outputs.dns.v1.RRSetRoutingPolicyHealthCheckTargetsResponse; kind: string; rrdatas: string[]; /** * DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item. */ signatureRrdatas: string[]; /** * The weight corresponding to this WrrPolicyItem object. When multiple WrrPolicyItem objects are configured, the probability of returning an WrrPolicyItem object's data is proportional to its weight relative to the sum of weights configured for all items. This weight must be non-negative. */ weight: number; } /** * A unit of data that is returned by the DNS servers. */ interface ResourceRecordSetResponse { kind: string; /** * For example, www.example.com. */ name: string; /** * Configures dynamic query responses based on either the geo location of the querying user or a weighted round robin based routing policy. A valid ResourceRecordSet contains only rrdata (for static resolution) or a routing_policy (for dynamic resolution). */ routingPolicy: outputs.dns.v1.RRSetRoutingPolicyResponse; /** * As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. */ rrdatas: string[]; /** * As defined in RFC 4034 (section 3.2). */ signatureRrdatas: string[]; /** * Number of seconds that this ResourceRecordSet can be cached by resolvers. */ ttl: number; /** * The identifier of a supported record type. See the list of Supported DNS record types. */ type: string; } interface ResponsePolicyGKEClusterResponse { /** * The resource name of the cluster to bind this response policy to. This should be specified in the format like: projects/*/locations/*/clusters/*. This is referenced from GKE projects.locations.clusters.get API: https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/get */ gkeClusterName: string; kind: string; } interface ResponsePolicyNetworkResponse { kind: string; /** * The fully qualified URL of the VPC network to bind to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} */ networkUrl: string; } interface ResponsePolicyRuleLocalDataResponse { /** * All resource record sets for this selector, one per resource record type. The name must match the dns_name. */ localDatas: outputs.dns.v1.ResourceRecordSetResponse[]; } } namespace v1beta2 { /** * Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey. */ interface DnsKeySpecResponse { /** * String mnemonic specifying the DNSSEC algorithm of this key. */ algorithm: string; /** * Length of the keys in bits. */ keyLength: number; /** * Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, are only used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and are used to sign all other types of resource record sets. */ keyType: string; kind: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.dns.v1beta2.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.dns.v1beta2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Cloud Logging configurations for publicly visible zones. */ interface ManagedZoneCloudLoggingConfigResponse { /** * If set, enable query logging for this ManagedZone. False by default, making logging opt-in. */ enableLogging: boolean; kind: string; } interface ManagedZoneDnsSecConfigResponse { /** * Specifies parameters for generating initial DnsKeys for this ManagedZone. Can only be changed while the state is OFF. */ defaultKeySpecs: outputs.dns.v1beta2.DnsKeySpecResponse[]; kind: string; /** * Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF. */ nonExistence: string; /** * Specifies whether DNSSEC is enabled, and what mode it is in. */ state: string; } interface ManagedZoneForwardingConfigNameServerTargetResponse { /** * Forwarding path for this NameServerTarget. If unset or set to DEFAULT, Cloud DNS makes forwarding decisions based on IP address ranges; that is, RFC1918 addresses go to the VPC network, non-RFC1918 addresses go to the internet. When set to PRIVATE, Cloud DNS always sends queries through the VPC network for this target. */ forwardingPath: string; /** * IPv4 address of a target name server. */ ipv4Address: string; /** * IPv6 address of a target name server. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022. */ ipv6Address: string; kind: string; } interface ManagedZoneForwardingConfigResponse { kind: string; /** * List of target name servers to forward to. Cloud DNS selects the best available name server if more than one target is given. */ targetNameServers: outputs.dns.v1beta2.ManagedZoneForwardingConfigNameServerTargetResponse[]; } interface ManagedZonePeeringConfigResponse { kind: string; /** * The network with which to peer. */ targetNetwork: outputs.dns.v1beta2.ManagedZonePeeringConfigTargetNetworkResponse; } interface ManagedZonePeeringConfigTargetNetworkResponse { /** * The time at which the zone was deactivated, in RFC 3339 date-time format. An empty string indicates that the peering connection is active. The producer network can deactivate a zone. The zone is automatically deactivated if the producer network that the zone targeted is deleted. Output only. */ deactivateTime: string; kind: string; /** * The fully qualified URL of the VPC network to forward queries to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} */ networkUrl: string; } interface ManagedZonePrivateVisibilityConfigGKEClusterResponse { /** * The resource name of the cluster to bind this ManagedZone to. This should be specified in the format like: projects/*/locations/*/clusters/*. This is referenced from GKE projects.locations.clusters.get API: https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/get */ gkeClusterName: string; kind: string; } interface ManagedZonePrivateVisibilityConfigNetworkResponse { kind: string; /** * The fully qualified URL of the VPC network to bind to. Format this URL like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} */ networkUrl: string; } interface ManagedZonePrivateVisibilityConfigResponse { /** * The list of Google Kubernetes Engine clusters that can see this zone. */ gkeClusters: outputs.dns.v1beta2.ManagedZonePrivateVisibilityConfigGKEClusterResponse[]; kind: string; /** * The list of VPC networks that can see this zone. */ networks: outputs.dns.v1beta2.ManagedZonePrivateVisibilityConfigNetworkResponse[]; } interface ManagedZoneReverseLookupConfigResponse { kind: string; } interface ManagedZoneServiceDirectoryConfigNamespaceResponse { /** * The time that the namespace backing this zone was deleted; an empty string if it still exists. This is in RFC3339 text format. Output only. */ deletionTime: string; kind: string; /** * The fully qualified URL of the namespace associated with the zone. Format must be https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace} */ namespaceUrl: string; } /** * Contains information about Service Directory-backed zones. */ interface ManagedZoneServiceDirectoryConfigResponse { kind: string; /** * Contains information about the namespace associated with the zone. */ namespace: outputs.dns.v1beta2.ManagedZoneServiceDirectoryConfigNamespaceResponse; } interface PolicyAlternativeNameServerConfigResponse { kind: string; /** * Sets an alternative name server for the associated networks. When specified, all DNS queries are forwarded to a name server that you choose. Names such as .internal are not available when an alternative name server is specified. */ targetNameServers: outputs.dns.v1beta2.PolicyAlternativeNameServerConfigTargetNameServerResponse[]; } interface PolicyAlternativeNameServerConfigTargetNameServerResponse { /** * Forwarding path for this TargetNameServer. If unset or set to DEFAULT, Cloud DNS makes forwarding decisions based on address ranges; that is, RFC1918 addresses go to the VPC network, non-RFC1918 addresses go to the internet. When set to PRIVATE, Cloud DNS always sends queries through the VPC network for this target. */ forwardingPath: string; /** * IPv4 address to forward queries to. */ ipv4Address: string; /** * IPv6 address to forward to. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022. */ ipv6Address: string; kind: string; } interface PolicyNetworkResponse { kind: string; /** * The fully qualified URL of the VPC network to bind to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} */ networkUrl: string; } /** * ResourceRecordSet data for one geo location. */ interface RRSetRoutingPolicyGeoPolicyGeoPolicyItemResponse { /** * For A and AAAA types only. Endpoints to return in the query result only if they are healthy. These can be specified along with rrdata within this item. */ healthCheckedTargets: outputs.dns.v1beta2.RRSetRoutingPolicyHealthCheckTargetsResponse; kind: string; /** * The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. */ location: string; rrdatas: string[]; /** * DNSSEC generated signatures for all the rrdata within this item. If health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item. */ signatureRrdatas: string[]; } /** * Configures a RRSetRoutingPolicy that routes based on the geo location of the querying user. */ interface RRSetRoutingPolicyGeoPolicyResponse { /** * Without fencing, if health check fails for all configured items in the current geo bucket, we failover to the next nearest geo bucket. With fencing, if health checking is enabled, as long as some targets in the current geo bucket are healthy, we return only the healthy targets. However, if all targets are unhealthy, we don't failover to the next nearest bucket; instead, we return all the items in the current bucket even when all targets are unhealthy. */ enableFencing: boolean; /** * The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. */ items: outputs.dns.v1beta2.RRSetRoutingPolicyGeoPolicyGeoPolicyItemResponse[]; kind: string; } /** * HealthCheckTargets describes endpoints to health-check when responding to Routing Policy queries. Only the healthy endpoints will be included in the response. */ interface RRSetRoutingPolicyHealthCheckTargetsResponse { internalLoadBalancers: outputs.dns.v1beta2.RRSetRoutingPolicyLoadBalancerTargetResponse[]; } /** * The configuration for an individual load balancer to health check. */ interface RRSetRoutingPolicyLoadBalancerTargetResponse { /** * The frontend IP address of the load balancer to health check. */ ipAddress: string; /** * The protocol of the load balancer to health check. */ ipProtocol: string; kind: string; /** * The type of load balancer specified by this target. This value must match the configuration of the load balancer located at the LoadBalancerTarget's IP address, port, and region. Use the following: - *regionalL4ilb*: for a regional internal passthrough Network Load Balancer. - *regionalL7ilb*: for a regional internal Application Load Balancer. - *globalL7ilb*: for a global internal Application Load Balancer. */ loadBalancerType: string; /** * The fully qualified URL of the network that the load balancer is attached to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} . */ networkUrl: string; /** * The configured port of the load balancer. */ port: string; /** * The project ID in which the load balancer is located. */ project: string; /** * The region in which the load balancer is located. */ region: string; } /** * Configures a RRSetRoutingPolicy such that all queries are responded with the primary_targets if they are healthy. And if all of them are unhealthy, then we fallback to a geo localized policy. */ interface RRSetRoutingPolicyPrimaryBackupPolicyResponse { /** * Backup targets provide a regional failover policy for the otherwise global primary targets. If serving state is set to BACKUP, this policy essentially becomes a geo routing policy. */ backupGeoTargets: outputs.dns.v1beta2.RRSetRoutingPolicyGeoPolicyResponse; kind: string; /** * Endpoints that are health checked before making the routing decision. Unhealthy endpoints are omitted from the results. If all endpoints are unhealthy, we serve a response based on the backup_geo_targets. */ primaryTargets: outputs.dns.v1beta2.RRSetRoutingPolicyHealthCheckTargetsResponse; /** * When serving state is PRIMARY, this field provides the option of sending a small percentage of the traffic to the backup targets. */ trickleTraffic: number; } /** * A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. */ interface RRSetRoutingPolicyResponse { geo: outputs.dns.v1beta2.RRSetRoutingPolicyGeoPolicyResponse; geoPolicy: outputs.dns.v1beta2.RRSetRoutingPolicyGeoPolicyResponse; kind: string; primaryBackup: outputs.dns.v1beta2.RRSetRoutingPolicyPrimaryBackupPolicyResponse; wrr: outputs.dns.v1beta2.RRSetRoutingPolicyWrrPolicyResponse; wrrPolicy: outputs.dns.v1beta2.RRSetRoutingPolicyWrrPolicyResponse; } /** * Configures a RRSetRoutingPolicy that routes in a weighted round robin fashion. */ interface RRSetRoutingPolicyWrrPolicyResponse { items: outputs.dns.v1beta2.RRSetRoutingPolicyWrrPolicyWrrPolicyItemResponse[]; kind: string; } /** * A routing block which contains the routing information for one WRR item. */ interface RRSetRoutingPolicyWrrPolicyWrrPolicyItemResponse { /** * Endpoints that are health checked before making the routing decision. The unhealthy endpoints are omitted from the result. If all endpoints within a bucket are unhealthy, we choose a different bucket (sampled with respect to its weight) for responding. If DNSSEC is enabled for this zone, only one of rrdata or health_checked_targets can be set. */ healthCheckedTargets: outputs.dns.v1beta2.RRSetRoutingPolicyHealthCheckTargetsResponse; kind: string; rrdatas: string[]; /** * DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item. */ signatureRrdatas: string[]; /** * The weight corresponding to this WrrPolicyItem object. When multiple WrrPolicyItem objects are configured, the probability of returning an WrrPolicyItem object's data is proportional to its weight relative to the sum of weights configured for all items. This weight must be non-negative. */ weight: number; } /** * A unit of data that is returned by the DNS servers. */ interface ResourceRecordSetResponse { kind: string; /** * For example, www.example.com. */ name: string; /** * Configures dynamic query responses based on either the geo location of the querying user or a weighted round robin based routing policy. A valid ResourceRecordSet contains only rrdata (for static resolution) or a routing_policy (for dynamic resolution). */ routingPolicy: outputs.dns.v1beta2.RRSetRoutingPolicyResponse; /** * As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. */ rrdatas: string[]; /** * As defined in RFC 4034 (section 3.2). */ signatureRrdatas: string[]; /** * Number of seconds that this ResourceRecordSet can be cached by resolvers. */ ttl: number; /** * The identifier of a supported record type. See the list of Supported DNS record types. */ type: string; } interface ResponsePolicyGKEClusterResponse { /** * The resource name of the cluster to bind this response policy to. This should be specified in the format like: projects/*/locations/*/clusters/*. This is referenced from GKE projects.locations.clusters.get API: https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/get */ gkeClusterName: string; kind: string; } interface ResponsePolicyNetworkResponse { kind: string; /** * The fully qualified URL of the VPC network to bind to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network} */ networkUrl: string; } interface ResponsePolicyRuleLocalDataResponse { /** * All resource record sets for this selector, one per resource record type. The name must match the dns_name. */ localDatas: outputs.dns.v1beta2.ResourceRecordSetResponse[]; } } } export declare namespace documentai { namespace v1 { /** * Contains the alias and the aliased resource name of processor version. */ interface GoogleCloudDocumentaiV1ProcessorVersionAliasResponse { /** * The alias in the form of `processor_version` resource name. */ alias: string; /** * The resource name of aliased processor version. */ processorVersion: string; } } namespace v1beta3 { /** * Contains the alias and the aliased resource name of processor version. */ interface GoogleCloudDocumentaiV1beta3ProcessorVersionAliasResponse { /** * The alias in the form of `processor_version` resource name. */ alias: string; /** * The resource name of aliased processor version. */ processorVersion: string; } } } export declare namespace domains { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.domains.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.domains.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Details required for a contact associated with a `Registration`. */ interface ContactResponse { /** * Email address of the contact. */ email: string; /** * Fax number of the contact in international format. For example, `"+1-800-555-0123"`. */ faxNumber: string; /** * Phone number of the contact in international format. For example, `"+1-800-555-0123"`. */ phoneNumber: string; /** * Postal address of the contact. */ postalAddress: outputs.domains.v1.PostalAddressResponse; } /** * Defines the contact information associated with a `Registration`. [ICANN](https://icann.org/) requires all domain names to have associated contact information. The `registrant_contact` is considered the domain's legal owner, and often the other contacts are identical. */ interface ContactSettingsResponse { /** * The administrative contact for the `Registration`. */ adminContact: outputs.domains.v1.ContactResponse; /** * Privacy setting for the contacts associated with the `Registration`. */ privacy: string; /** * The registrant contact for the `Registration`. *Caution: Anyone with access to this email address, phone number, and/or postal address can take control of the domain.* *Warning: For new `Registration`s, the registrant receives an email confirmation that they must complete within 15 days to avoid domain suspension.* */ registrantContact: outputs.domains.v1.ContactResponse; /** * The technical contact for the `Registration`. */ technicalContact: outputs.domains.v1.ContactResponse; } /** * Configuration for an arbitrary DNS provider. */ interface CustomDnsResponse { /** * The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled. */ dsRecords: outputs.domains.v1.DsRecordResponse[]; /** * A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format. */ nameServers: string[]; } /** * Defines the DNS configuration of a `Registration`, including name servers, DNSSEC, and glue records. */ interface DnsSettingsResponse { /** * An arbitrary DNS provider identified by its name servers. */ customDns: outputs.domains.v1.CustomDnsResponse; /** * The list of glue records for this `Registration`. Commonly empty. */ glueRecords: outputs.domains.v1.GlueRecordResponse[]; /** * Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) The free DNS zone provided by [Google Domains](https://domains.google/). * * @deprecated Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) The free DNS zone provided by [Google Domains](https://domains.google/). */ googleDomainsDns: outputs.domains.v1.GoogleDomainsDnsResponse; } /** * Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC for a domain. It contains a digest (hash) of a DNSKEY record that must be present in the domain's DNS zone. */ interface DsRecordResponse { /** * The algorithm used to generate the referenced DNSKEY. */ algorithm: string; /** * The digest generated from the referenced DNSKEY. */ digest: string; /** * The hash function used to generate the digest of the referenced DNSKEY. */ digestType: string; /** * The key tag of the record. Must be set in range 0 -- 65535. */ keyTag: number; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Defines a host on your domain that is a DNS name server for your domain and/or other domains. Glue records are a way of making the IP address of a name server known, even when it serves DNS queries for its parent domain. For example, when `ns.example.com` is a name server for `example.com`, the host `ns.example.com` must have a glue record to break the circular DNS reference. */ interface GlueRecordResponse { /** * Domain name of the host in Punycode format. */ hostName: string; /** * List of IPv4 addresses corresponding to this host in the standard decimal format (e.g. `198.51.100.1`). At least one of `ipv4_address` and `ipv6_address` must be set. */ ipv4Addresses: string[]; /** * List of IPv6 addresses corresponding to this host in the standard hexadecimal format (e.g. `2001:db8::`). At least one of `ipv4_address` and `ipv6_address` must be set. */ ipv6Addresses: string[]; } /** * Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Configuration for using the free DNS zone provided by Google Domains as a `Registration`'s `dns_provider`. You cannot configure the DNS zone itself using the API. To configure the DNS zone, go to [Google Domains](https://domains.google/). */ interface GoogleDomainsDnsResponse { /** * The list of DS records published for this domain. The list is automatically populated when `ds_state` is `DS_RECORDS_PUBLISHED`, otherwise it remains empty. */ dsRecords: outputs.domains.v1.DsRecordResponse[]; /** * The state of DS records for this domain. Used to enable or disable automatic DNSSEC. */ dsState: string; /** * A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format. This field is automatically populated with the name servers assigned to the Google Domains DNS zone. */ nameServers: string[]; } /** * Defines renewal, billing, and transfer settings for a `Registration`. */ interface ManagementSettingsResponse { /** * Optional. The desired renewal method for this `Registration`. The actual `renewal_method` is automatically updated to reflect this choice. If unset or equal to `RENEWAL_METHOD_UNSPECIFIED`, it will be treated as if it were set to `AUTOMATIC_RENEWAL`. Can't be set to `RENEWAL_DISABLED` during resource creation and can only be updated when the `Registration` resource has state `ACTIVE` or `SUSPENDED`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL` the actual `renewal_method` can be set to `RENEWAL_DISABLED` in case of e.g. problems with the Billing Account or reported domain abuse. In such cases check the `issues` field on the `Registration`. After the problem is resolved the `renewal_method` will be automatically updated to `preferred_renewal_method` in a few hours. */ preferredRenewalMethod: string; /** * The actual renewal method for this `Registration`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL` the actual `renewal_method` can be equal to `RENEWAL_DISABLED` in case of e.g. problems with the Billing Account or reported domain abuse. In such cases check the `issues` field on the `Registration`. After the problem is resolved the `renewal_method` will be automatically updated to `preferred_renewal_method` in a few hours. */ renewalMethod: string; /** * Controls whether the domain can be transferred to another registrar. */ transferLockState: string; } /** * Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 */ interface PostalAddressResponse { /** * Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. "Austin, TX"), it is important that the line order is clear. The order of address lines should be "envelope order" for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. "ja" for large-to-small ordering and "ja-Latn" or "en" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas). */ addressLines: string[]; /** * Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated. */ administrativeArea: string; /** * Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: "zh-Hant", "ja", "ja-Latn", "en". */ languageCode: string; /** * Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines. */ locality: string; /** * Optional. The name of the organization at the address. */ organization: string; /** * Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.). */ postalCode: string; /** * Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain "care of" information. */ recipients: string[]; /** * CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for Switzerland. */ regionCode: string; /** * The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions. */ revision: number; /** * Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). */ sortingCode: string; /** * Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts. */ sublocality: string; } } namespace v1alpha2 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.domains.v1alpha2.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.domains.v1alpha2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Details required for a contact associated with a `Registration`. */ interface ContactResponse { /** * Email address of the contact. */ email: string; /** * Fax number of the contact in international format. For example, `"+1-800-555-0123"`. */ faxNumber: string; /** * Phone number of the contact in international format. For example, `"+1-800-555-0123"`. */ phoneNumber: string; /** * Postal address of the contact. */ postalAddress: outputs.domains.v1alpha2.PostalAddressResponse; } /** * Defines the contact information associated with a `Registration`. [ICANN](https://icann.org/) requires all domain names to have associated contact information. The `registrant_contact` is considered the domain's legal owner, and often the other contacts are identical. */ interface ContactSettingsResponse { /** * The administrative contact for the `Registration`. */ adminContact: outputs.domains.v1alpha2.ContactResponse; /** * Privacy setting for the contacts associated with the `Registration`. */ privacy: string; /** * The registrant contact for the `Registration`. *Caution: Anyone with access to this email address, phone number, and/or postal address can take control of the domain.* *Warning: For new `Registration`s, the registrant receives an email confirmation that they must complete within 15 days to avoid domain suspension.* */ registrantContact: outputs.domains.v1alpha2.ContactResponse; /** * The technical contact for the `Registration`. */ technicalContact: outputs.domains.v1alpha2.ContactResponse; } /** * Configuration for an arbitrary DNS provider. */ interface CustomDnsResponse { /** * The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled. */ dsRecords: outputs.domains.v1alpha2.DsRecordResponse[]; /** * A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format. */ nameServers: string[]; } /** * Defines the DNS configuration of a `Registration`, including name servers, DNSSEC, and glue records. */ interface DnsSettingsResponse { /** * An arbitrary DNS provider identified by its name servers. */ customDns: outputs.domains.v1alpha2.CustomDnsResponse; /** * The list of glue records for this `Registration`. Commonly empty. */ glueRecords: outputs.domains.v1alpha2.GlueRecordResponse[]; /** * Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) The free DNS zone provided by [Google Domains](https://domains.google/). * * @deprecated Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) The free DNS zone provided by [Google Domains](https://domains.google/). */ googleDomainsDns: outputs.domains.v1alpha2.GoogleDomainsDnsResponse; } /** * Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC for a domain. It contains a digest (hash) of a DNSKEY record that must be present in the domain's DNS zone. */ interface DsRecordResponse { /** * The algorithm used to generate the referenced DNSKEY. */ algorithm: string; /** * The digest generated from the referenced DNSKEY. */ digest: string; /** * The hash function used to generate the digest of the referenced DNSKEY. */ digestType: string; /** * The key tag of the record. Must be set in range 0 -- 65535. */ keyTag: number; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Defines a host on your domain that is a DNS name server for your domain and/or other domains. Glue records are a way of making the IP address of a name server known, even when it serves DNS queries for its parent domain. For example, when `ns.example.com` is a name server for `example.com`, the host `ns.example.com` must have a glue record to break the circular DNS reference. */ interface GlueRecordResponse { /** * Domain name of the host in Punycode format. */ hostName: string; /** * List of IPv4 addresses corresponding to this host in the standard decimal format (e.g. `198.51.100.1`). At least one of `ipv4_address` and `ipv6_address` must be set. */ ipv4Addresses: string[]; /** * List of IPv6 addresses corresponding to this host in the standard hexadecimal format (e.g. `2001:db8::`). At least one of `ipv4_address` and `ipv6_address` must be set. */ ipv6Addresses: string[]; } /** * Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Configuration for using the free DNS zone provided by Google Domains as a `Registration`'s `dns_provider`. You cannot configure the DNS zone itself using the API. To configure the DNS zone, go to [Google Domains](https://domains.google/). */ interface GoogleDomainsDnsResponse { /** * The list of DS records published for this domain. The list is automatically populated when `ds_state` is `DS_RECORDS_PUBLISHED`, otherwise it remains empty. */ dsRecords: outputs.domains.v1alpha2.DsRecordResponse[]; /** * The state of DS records for this domain. Used to enable or disable automatic DNSSEC. */ dsState: string; /** * A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format. This field is automatically populated with the name servers assigned to the Google Domains DNS zone. */ nameServers: string[]; } /** * Defines renewal, billing, and transfer settings for a `Registration`. */ interface ManagementSettingsResponse { /** * Optional. The desired renewal method for this `Registration`. The actual `renewal_method` is automatically updated to reflect this choice. If unset or equal to `RENEWAL_METHOD_UNSPECIFIED`, it will be treated as if it were set to `AUTOMATIC_RENEWAL`. Can't be set to `RENEWAL_DISABLED` during resource creation and can only be updated when the `Registration` resource has state `ACTIVE` or `SUSPENDED`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL` the actual `renewal_method` can be set to `RENEWAL_DISABLED` in case of e.g. problems with the Billing Account or reported domain abuse. In such cases check the `issues` field on the `Registration`. After the problem is resolved the `renewal_method` will be automatically updated to `preferred_renewal_method` in a few hours. */ preferredRenewalMethod: string; /** * The actual renewal method for this `Registration`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL` the actual `renewal_method` can be equal to `RENEWAL_DISABLED` in case of e.g. problems with the Billing Account or reported domain abuse. In such cases check the `issues` field on the `Registration`. After the problem is resolved the `renewal_method` will be automatically updated to `preferred_renewal_method` in a few hours. */ renewalMethod: string; /** * Controls whether the domain can be transferred to another registrar. */ transferLockState: string; } /** * Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 */ interface PostalAddressResponse { /** * Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. "Austin, TX"), it is important that the line order is clear. The order of address lines should be "envelope order" for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. "ja" for large-to-small ordering and "ja-Latn" or "en" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas). */ addressLines: string[]; /** * Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated. */ administrativeArea: string; /** * Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: "zh-Hant", "ja", "ja-Latn", "en". */ languageCode: string; /** * Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines. */ locality: string; /** * Optional. The name of the organization at the address. */ organization: string; /** * Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.). */ postalCode: string; /** * Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain "care of" information. */ recipients: string[]; /** * CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for Switzerland. */ regionCode: string; /** * The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions. */ revision: number; /** * Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). */ sortingCode: string; /** * Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts. */ sublocality: string; } } namespace v1beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.domains.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.domains.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Details required for a contact associated with a `Registration`. */ interface ContactResponse { /** * Email address of the contact. */ email: string; /** * Fax number of the contact in international format. For example, `"+1-800-555-0123"`. */ faxNumber: string; /** * Phone number of the contact in international format. For example, `"+1-800-555-0123"`. */ phoneNumber: string; /** * Postal address of the contact. */ postalAddress: outputs.domains.v1beta1.PostalAddressResponse; } /** * Defines the contact information associated with a `Registration`. [ICANN](https://icann.org/) requires all domain names to have associated contact information. The `registrant_contact` is considered the domain's legal owner, and often the other contacts are identical. */ interface ContactSettingsResponse { /** * The administrative contact for the `Registration`. */ adminContact: outputs.domains.v1beta1.ContactResponse; /** * Privacy setting for the contacts associated with the `Registration`. */ privacy: string; /** * The registrant contact for the `Registration`. *Caution: Anyone with access to this email address, phone number, and/or postal address can take control of the domain.* *Warning: For new `Registration`s, the registrant receives an email confirmation that they must complete within 15 days to avoid domain suspension.* */ registrantContact: outputs.domains.v1beta1.ContactResponse; /** * The technical contact for the `Registration`. */ technicalContact: outputs.domains.v1beta1.ContactResponse; } /** * Configuration for an arbitrary DNS provider. */ interface CustomDnsResponse { /** * The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled. */ dsRecords: outputs.domains.v1beta1.DsRecordResponse[]; /** * A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format. */ nameServers: string[]; } /** * Defines the DNS configuration of a `Registration`, including name servers, DNSSEC, and glue records. */ interface DnsSettingsResponse { /** * An arbitrary DNS provider identified by its name servers. */ customDns: outputs.domains.v1beta1.CustomDnsResponse; /** * The list of glue records for this `Registration`. Commonly empty. */ glueRecords: outputs.domains.v1beta1.GlueRecordResponse[]; /** * Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) The free DNS zone provided by [Google Domains](https://domains.google/). * * @deprecated Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) The free DNS zone provided by [Google Domains](https://domains.google/). */ googleDomainsDns: outputs.domains.v1beta1.GoogleDomainsDnsResponse; } /** * Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC for a domain. It contains a digest (hash) of a DNSKEY record that must be present in the domain's DNS zone. */ interface DsRecordResponse { /** * The algorithm used to generate the referenced DNSKEY. */ algorithm: string; /** * The digest generated from the referenced DNSKEY. */ digest: string; /** * The hash function used to generate the digest of the referenced DNSKEY. */ digestType: string; /** * The key tag of the record. Must be set in range 0 -- 65535. */ keyTag: number; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Defines a host on your domain that is a DNS name server for your domain and/or other domains. Glue records are a way of making the IP address of a name server known, even when it serves DNS queries for its parent domain. For example, when `ns.example.com` is a name server for `example.com`, the host `ns.example.com` must have a glue record to break the circular DNS reference. */ interface GlueRecordResponse { /** * Domain name of the host in Punycode format. */ hostName: string; /** * List of IPv4 addresses corresponding to this host in the standard decimal format (e.g. `198.51.100.1`). At least one of `ipv4_address` and `ipv6_address` must be set. */ ipv4Addresses: string[]; /** * List of IPv6 addresses corresponding to this host in the standard hexadecimal format (e.g. `2001:db8::`). At least one of `ipv4_address` and `ipv6_address` must be set. */ ipv6Addresses: string[]; } /** * Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Configuration for using the free DNS zone provided by Google Domains as a `Registration`'s `dns_provider`. You cannot configure the DNS zone itself using the API. To configure the DNS zone, go to [Google Domains](https://domains.google/). */ interface GoogleDomainsDnsResponse { /** * The list of DS records published for this domain. The list is automatically populated when `ds_state` is `DS_RECORDS_PUBLISHED`, otherwise it remains empty. */ dsRecords: outputs.domains.v1beta1.DsRecordResponse[]; /** * The state of DS records for this domain. Used to enable or disable automatic DNSSEC. */ dsState: string; /** * A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format. This field is automatically populated with the name servers assigned to the Google Domains DNS zone. */ nameServers: string[]; } /** * Defines renewal, billing, and transfer settings for a `Registration`. */ interface ManagementSettingsResponse { /** * Optional. The desired renewal method for this `Registration`. The actual `renewal_method` is automatically updated to reflect this choice. If unset or equal to `RENEWAL_METHOD_UNSPECIFIED`, it will be treated as if it were set to `AUTOMATIC_RENEWAL`. Can't be set to `RENEWAL_DISABLED` during resource creation and can only be updated when the `Registration` resource has state `ACTIVE` or `SUSPENDED`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL` the actual `renewal_method` can be set to `RENEWAL_DISABLED` in case of e.g. problems with the Billing Account or reported domain abuse. In such cases check the `issues` field on the `Registration`. After the problem is resolved the `renewal_method` will be automatically updated to `preferred_renewal_method` in a few hours. */ preferredRenewalMethod: string; /** * The actual renewal method for this `Registration`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL` the actual `renewal_method` can be equal to `RENEWAL_DISABLED` in case of e.g. problems with the Billing Account or reported domain abuse. In such cases check the `issues` field on the `Registration`. After the problem is resolved the `renewal_method` will be automatically updated to `preferred_renewal_method` in a few hours. */ renewalMethod: string; /** * Controls whether the domain can be transferred to another registrar. */ transferLockState: string; } /** * Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 */ interface PostalAddressResponse { /** * Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. "Austin, TX"), it is important that the line order is clear. The order of address lines should be "envelope order" for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. "ja" for large-to-small ordering and "ja-Latn" or "en" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas). */ addressLines: string[]; /** * Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated. */ administrativeArea: string; /** * Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: "zh-Hant", "ja", "ja-Latn", "en". */ languageCode: string; /** * Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines. */ locality: string; /** * Optional. The name of the organization at the address. */ organization: string; /** * Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.). */ postalCode: string; /** * Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain "care of" information. */ recipients: string[]; /** * CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for Switzerland. */ regionCode: string; /** * The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions. */ revision: number; /** * Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). */ sortingCode: string; /** * Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts. */ sublocality: string; } } } export declare namespace eventarc { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.eventarc.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.eventarc.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a Cloud Run destination. */ interface CloudRunResponse { /** * Optional. The relative path on the Cloud Run service the events should be sent to. The value must conform to the definition of a URI path segment (section 3.3 of RFC2396). Examples: "/route", "route", "route/subroute". */ path: string; /** * The region the Cloud Run service is deployed in. */ region: string; /** * The name of the Cloud Run service being addressed. See https://cloud.google.com/run/docs/reference/rest/v1/namespaces.services. Only services located in the same project as the trigger object can be addressed. */ service: string; } /** * Represents a target of an invocation over HTTP. */ interface DestinationResponse { /** * The Cloud Function resource name. Cloud Functions V1 and V2 are supported. Format: `projects/{project}/locations/{location}/functions/{function}` This is a read-only field. Creating Cloud Functions V1/V2 triggers is only supported via the Cloud Functions product. An error will be returned if the user sets this value. */ cloudFunction: string; /** * Cloud Run fully-managed resource that receives the events. The resource should be in the same project as the trigger. */ cloudRun: outputs.eventarc.v1.CloudRunResponse; /** * A GKE service capable of receiving events. The service should be running in the same project as the trigger. */ gke: outputs.eventarc.v1.GKEResponse; /** * An HTTP endpoint destination described by an URI. */ httpEndpoint: outputs.eventarc.v1.HttpEndpointResponse; /** * Optional. Network config is used to configure how Eventarc resolves and connect to a destination. This should only be used with HttpEndpoint destination type. */ networkConfig: outputs.eventarc.v1.NetworkConfigResponse; /** * The resource name of the Workflow whose Executions are triggered by the events. The Workflow resource should be deployed in the same project as the trigger. Format: `projects/{project}/locations/{location}/workflows/{workflow}` */ workflow: string; } /** * Filters events based on exact matches on the CloudEvents attributes. */ interface EventFilterResponse { /** * The name of a CloudEvents attribute. Currently, only a subset of attributes are supported for filtering. You can [retrieve a specific provider's supported event types](/eventarc/docs/list-providers#describe-provider). All triggers MUST provide a filter for the 'type' attribute. */ attribute: string; /** * Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The allowed values are `path_pattern` and `match-path-pattern`. `path_pattern` is only allowed for GCFv1 triggers. */ operator: string; /** * The value for the attribute. */ value: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Represents a GKE destination. */ interface GKEResponse { /** * The name of the cluster the GKE service is running in. The cluster must be running in the same project as the trigger being created. */ cluster: string; /** * The name of the Google Compute Engine in which the cluster resides, which can either be compute zone (for example, us-central1-a) for the zonal clusters or region (for example, us-central1) for regional clusters. */ location: string; /** * The namespace the GKE service is running in. */ namespace: string; /** * Optional. The relative path on the GKE service the events should be sent to. The value must conform to the definition of a URI path segment (section 3.3 of RFC2396). Examples: "/route", "route", "route/subroute". */ path: string; /** * Name of the GKE service. */ service: string; } /** * Represents a HTTP endpoint destination. */ interface HttpEndpointResponse { /** * The URI of the HTTP enpdoint. The value must be a RFC2396 URI string. Examples: `http://10.10.10.8:80/route`, `http://svc.us-central1.p.local:8080/`. Only HTTP and HTTPS protocols are supported. The host can be either a static IP addressable from the VPC specified by the network config, or an internal DNS hostname of the service resolvable via Cloud DNS. */ uri: string; } /** * Represents a network config to be used for destination resolution and connectivity. */ interface NetworkConfigResponse { /** * Name of the NetworkAttachment that allows access to the destination VPC. Format: `projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}` */ networkAttachment: string; } /** * Represents a Pub/Sub transport. */ interface PubsubResponse { /** * The name of the Pub/Sub subscription created and managed by Eventarc as a transport for the event delivery. Format: `projects/{PROJECT_ID}/subscriptions/{SUBSCRIPTION_NAME}`. */ subscription: string; /** * Optional. The name of the Pub/Sub topic created and managed by Eventarc as a transport for the event delivery. Format: `projects/{PROJECT_ID}/topics/{TOPIC_NAME}`. You can set an existing topic for triggers of the type `google.cloud.pubsub.topic.v1.messagePublished`. The topic you provide here is not deleted by Eventarc at trigger deletion. */ topic: string; } /** * Represents the transport intermediaries created for the trigger to deliver events. */ interface TransportResponse { /** * The Pub/Sub topic and subscription used by Eventarc as a transport intermediary. */ pubsub: outputs.eventarc.v1.PubsubResponse; } } namespace v1beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.eventarc.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.eventarc.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a Cloud Run service destination. */ interface CloudRunServiceResponse { /** * Optional. The relative path on the Cloud Run service the events should be sent to. The value must conform to the definition of URI path segment (section 3.3 of RFC2396). Examples: "/route", "route", "route/subroute". */ path: string; /** * The region the Cloud Run service is deployed in. */ region: string; /** * The name of the Cloud run service being addressed. See https://cloud.google.com/run/docs/reference/rest/v1/namespaces.services. Only services located in the same project of the trigger object can be addressed. */ service: string; } /** * Represents a target of an invocation over HTTP. */ interface DestinationResponse { /** * Cloud Run fully-managed service that receives the events. The service should be running in the same project as the trigger. */ cloudRunService: outputs.eventarc.v1beta1.CloudRunServiceResponse; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Matches events based on exact matches on the CloudEvents attributes. */ interface MatchingCriteriaResponse { /** * The name of a CloudEvents attribute. Currently, only a subset of attributes can be specified. All triggers MUST provide a matching criteria for the 'type' attribute. */ attribute: string; /** * The value for the attribute. */ value: string; } /** * Represents a Pub/Sub transport. */ interface PubsubResponse { /** * The name of the Pub/Sub subscription created and managed by Eventarc system as a transport for the event delivery. Format: `projects/{PROJECT_ID}/subscriptions/{SUBSCRIPTION_NAME}`. */ subscription: string; /** * Optional. The name of the Pub/Sub topic created and managed by Eventarc system as a transport for the event delivery. Format: `projects/{PROJECT_ID}/topics/{TOPIC_NAME}`. You may set an existing topic for triggers of the type `google.cloud.pubsub.topic.v1.messagePublished` only. The topic you provide here will not be deleted by Eventarc at trigger deletion. */ topic: string; } /** * Represents the transport intermediaries created for the trigger in order to deliver events. */ interface TransportResponse { /** * The Pub/Sub topic and subscription used by Eventarc as delivery intermediary. */ pubsub: outputs.eventarc.v1beta1.PubsubResponse; } } } export declare namespace file { namespace v1 { /** * File share configuration for the instance. */ interface FileShareConfigResponse { /** * File share capacity in gigabytes (GB). Filestore defines 1 GB as 1024^3 bytes. */ capacityGb: string; /** * The name of the file share (must be 16 characters or less). */ name: string; /** * Nfs Export Options. There is a limit of 10 export options per file share. */ nfsExportOptions: outputs.file.v1.NfsExportOptionsResponse[]; /** * The resource name of the backup, in the format `projects/{project_number}/locations/{location_id}/backups/{backup_id}`, that this file share has been restored from. */ sourceBackup: string; } /** * Network configuration for the instance. */ interface NetworkConfigResponse { /** * The network connect mode of the Filestore instance. If not provided, the connect mode defaults to DIRECT_PEERING. */ connectMode: string; /** * IPv4 addresses in the format `{octet1}.{octet2}.{octet3}.{octet4}` or IPv6 addresses in the format `{block1}:{block2}:{block3}:{block4}:{block5}:{block6}:{block7}:{block8}`. */ ipAddresses: string[]; /** * Internet protocol versions for which the instance has IP addresses assigned. For this version, only MODE_IPV4 is supported. */ modes: string[]; /** * The name of the Google Compute Engine [VPC network](https://cloud.google.com/vpc/docs/vpc) to which the instance is connected. */ network: string; /** * Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Allocated IP address range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. When the name of an allocated IP address range is specified, it must be one of the ranges associated with the private service access connection. When specified as a direct CIDR value, it must be a /29 CIDR block for Basic tier, a /24 CIDR block for High Scale tier, or a /26 CIDR block for Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/reference/research/statistics/address_filters/) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29, 192.168.0.0/24 or 192.168.0.0/26, respectively. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Filestore instances in the selected VPC network. */ reservedIpRange: string; } /** * NFS export options specifications. */ interface NfsExportOptionsResponse { /** * Either READ_ONLY, for allowing only read requests on the exported directory, or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. */ accessMode: string; /** * An integer representing the anonymous group id with a default value of 65534. Anon_gid may only be set with squash_mode of ROOT_SQUASH. An error will be returned if this field is specified for other squash_mode settings. */ anonGid: string; /** * An integer representing the anonymous user id with a default value of 65534. Anon_uid may only be set with squash_mode of ROOT_SQUASH. An error will be returned if this field is specified for other squash_mode settings. */ anonUid: string; /** * List of either an IPv4 addresses in the format `{octet1}.{octet2}.{octet3}.{octet4}` or CIDR ranges in the format `{octet1}.{octet2}.{octet3}.{octet4}/{mask size}` which may mount the file share. Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. */ ipRanges: string[]; /** * Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, for not allowing root access. The default is NO_ROOT_SQUASH. */ squashMode: string; } } namespace v1beta1 { /** * Directory Services configuration for Kerberos-based authentication. */ interface DirectoryServicesConfigResponse { /** * Configuration for Managed Service for Microsoft Active Directory. */ managedActiveDirectory: outputs.file.v1beta1.ManagedActiveDirectoryConfigResponse; } /** * File share configuration for the instance. */ interface FileShareConfigResponse { /** * File share capacity in gigabytes (GB). Filestore defines 1 GB as 1024^3 bytes. */ capacityGb: string; /** * The name of the file share (must be 32 characters or less for Enterprise and High Scale SSD tiers and 16 characters or less for all other tiers). */ name: string; /** * Nfs Export Options. There is a limit of 10 export options per file share. */ nfsExportOptions: outputs.file.v1beta1.NfsExportOptionsResponse[]; /** * The resource name of the backup, in the format `projects/{project_id}/locations/{location_id}/backups/{backup_id}`, that this file share has been restored from. */ sourceBackup: string; } /** * ManagedActiveDirectoryConfig contains all the parameters for connecting to Managed Active Directory. */ interface ManagedActiveDirectoryConfigResponse { /** * The computer name is used as a prefix to the mount remote target. Example: if the computer_name is `my-computer`, the mount command will look like: `$mount -o vers=4,sec=krb5 my-computer.filestore.:`. */ computer: string; /** * Fully qualified domain name. */ domain: string; } /** * Network configuration for the instance. */ interface NetworkConfigResponse { /** * The network connect mode of the Filestore instance. If not provided, the connect mode defaults to DIRECT_PEERING. */ connectMode: string; /** * IPv4 addresses in the format `{octet1}.{octet2}.{octet3}.{octet4}` or IPv6 addresses in the format `{block1}:{block2}:{block3}:{block4}:{block5}:{block6}:{block7}:{block8}`. */ ipAddresses: string[]; /** * Internet protocol versions for which the instance has IP addresses assigned. For this version, only MODE_IPV4 is supported. */ modes: string[]; /** * The name of the Google Compute Engine [VPC network](https://cloud.google.com/vpc/docs/vpc) to which the instance is connected. */ network: string; /** * Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Allocated IP address range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. When the name of an allocated IP address range is specified, it must be one of the ranges associated with the private service access connection. When specified as a direct CIDR value, it must be a /29 CIDR block for Basic tier, a /24 CIDR block for High Scale tier, or a /26 CIDR block for Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/reference/research/statistics/address_filters/) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29, 192.168.0.0/24, or 192.168.0.0/26, respectively. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Filestore instances in the selected VPC network. */ reservedIpRange: string; } /** * NFS export options specifications. */ interface NfsExportOptionsResponse { /** * Either READ_ONLY, for allowing only read requests on the exported directory, or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. */ accessMode: string; /** * An integer representing the anonymous group id with a default value of 65534. Anon_gid may only be set with squash_mode of ROOT_SQUASH. An error will be returned if this field is specified for other squash_mode settings. */ anonGid: string; /** * An integer representing the anonymous user id with a default value of 65534. Anon_uid may only be set with squash_mode of ROOT_SQUASH. An error will be returned if this field is specified for other squash_mode settings. */ anonUid: string; /** * List of either an IPv4 addresses in the format `{octet1}.{octet2}.{octet3}.{octet4}` or CIDR ranges in the format `{octet1}.{octet2}.{octet3}.{octet4}/{mask size}` which may mount the file share. Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. */ ipRanges: string[]; /** * The security flavors allowed for mount operations. The default is AUTH_SYS. */ securityFlavors: string[]; /** * Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, for not allowing root access. The default is NO_ROOT_SQUASH. */ squashMode: string; } } } export declare namespace firebasehosting { namespace v1beta1 { /** * Contains metadata about the user who performed an action, such as creating a release or finalizing a version. */ interface ActingUserResponse { /** * The email address of the user when the user performed the action. */ email: string; /** * A profile image URL for the user. May not be present if the user has changed their email address or deleted their account. */ imageUrl: string; } /** * Represents a DNS certificate challenge. */ interface CertDnsChallengeResponse { /** * The domain name upon which the DNS challenge must be satisfied. */ domainName: string; /** * The value that must be present as a TXT record on the domain name to satisfy the challenge. */ token: string; } /** * Represents an HTTP certificate challenge. */ interface CertHttpChallengeResponse { /** * The URL path on which to serve the specified token to satisfy the certificate challenge. */ path: string; /** * The token to serve at the specified URL path to satisfy the certificate challenge. */ token: string; } /** * A set of ACME challenges you can use to allow Hosting to create an SSL certificate for your domain name before directing traffic to Hosting servers. Use either the DNS or HTTP challenge; it's not necessary to provide both. */ interface CertVerificationResponse { /** * A `TXT` record to add to your DNS records that confirms your intent to let Hosting create an SSL cert for your domain name. */ dns: outputs.firebasehosting.v1beta1.DnsUpdatesResponse; /** * A file to add to your existing, non-Hosting hosting service that confirms your intent to let Hosting create an SSL cert for your domain name. */ http: outputs.firebasehosting.v1beta1.HttpUpdateResponse; } /** * An SSL certificate used to provide end-to-end encryption for requests against your domain name. A `Certificate` can be an actual SSL certificate or, for newly-created custom domains, Hosting's intent to create one. */ interface CertificateResponse { /** * The certificate's creation time. For `TEMPORARY` certs this is the time Hosting first generated challenges for your domain name. For all other cert types, it's the time the actual cert was created. */ createTime: string; /** * The certificate's expiration time. After this time, the cert can no longer be used to provide secure communication between Hosting and your site's visitors. */ expireTime: string; /** * A set of errors Hosting encountered when attempting to create a cert for your domain name. Resolve these issues to ensure Hosting is able to provide secure communication with your site's visitors. */ issues: outputs.firebasehosting.v1beta1.StatusResponse[]; /** * The state of the certificate. Only the `CERT_ACTIVE` and `CERT_EXPIRING_SOON` states provide SSL coverage for a domain name. If the state is `PROPAGATING` and Hosting had an active cert for the domain name before, that formerly-active cert provides SSL coverage for the domain name until the current cert propagates. */ state: string; /** * The certificate's type. */ type: string; /** * A set of ACME challenges you can add to your DNS records or existing, non-Hosting hosting provider to allow Hosting to create an SSL certificate for your domain name before you point traffic toward hosting. You can use thse challenges as part of a zero downtime transition from your old provider to Hosting. */ verification: outputs.firebasehosting.v1beta1.CertVerificationResponse; } /** * A configured rewrite that directs requests to a Cloud Run service. If the Cloud Run service does not exist when setting or updating your Firebase Hosting configuration, then the request fails. Any errors from the Cloud Run service are passed to the end user (for example, if you delete a service, any requests directed to that service receive a `404` error). */ interface CloudRunRewriteResponse { /** * Optional. User-provided region where the Cloud Run service is hosted. Defaults to `us-central1` if not supplied. */ region: string; /** * User-defined ID of the Cloud Run service. */ serviceId: string; /** * Optional. User-provided TrafficConfig tag to send traffic to. When omitted, traffic is sent to the service-wide URI */ tag: string; } /** * DNS records are resource records that define how systems and services should behave when handling requests for a domain name. For example, when you add `A` records to your domain name's DNS records, you're informing other systems (such as your users' web browsers) to contact those IPv4 addresses to retrieve resources relevant to your domain name (such as your Hosting site files). */ interface DnsRecordResponse { /** * The domain name the record pertains to, e.g. `foo.bar.com.`. */ domainName: string; /** * The data of the record. The meaning of the value depends on record type: - A and AAAA: IP addresses for the domain name. - CNAME: Another domain to check for records. - TXT: Arbitrary text strings associated with the domain name. Hosting uses TXT records to determine which Firebase projects have permission to act on the domain name's behalf. - CAA: The record's flags, tag, and value, e.g. `0 issue "pki.goog"`. */ rdata: string; /** * An enum that indicates the a required action for this record. */ requiredAction: string; /** * The record's type, which determines what data the record contains. */ type: string; } /** * A set of DNS records relevant to the setup and maintenance of a custom domain in Firebase Hosting. */ interface DnsRecordSetResponse { /** * An error Hosting services encountered when querying your domain name's DNS records. Note: Hosting ignores `NXDOMAIN` errors, as those generally just mean that a domain name hasn't been set up yet. */ checkError: outputs.firebasehosting.v1beta1.StatusResponse; /** * The domain name the record set pertains to. */ domainName: string; /** * Records on the domain. */ records: outputs.firebasehosting.v1beta1.DnsRecordResponse[]; } /** * A set of DNS record updates that you should make to allow Hosting to serve secure content in response to requests against your domain name. These updates present the current state of your domain name's DNS records when Hosting last queried them, and the desired set of records that Hosting needs to see before your custom domain can be fully active. */ interface DnsUpdatesResponse { /** * The last time Hosting checked your custom domain's DNS records. */ checkTime: string; /** * The set of DNS records Hosting needs to serve secure content on the domain. */ desired: outputs.firebasehosting.v1beta1.DnsRecordSetResponse[]; /** * The set of DNS records Hosting discovered when inspecting a domain. */ discovered: outputs.firebasehosting.v1beta1.DnsRecordSetResponse[]; } /** * The current certificate provisioning status information for a domain. */ interface DomainProvisioningResponse { /** * The TXT records (for the certificate challenge) that were found at the last DNS fetch. */ certChallengeDiscoveredTxt: string[]; /** * The DNS challenge for generating a certificate. */ certChallengeDns: outputs.firebasehosting.v1beta1.CertDnsChallengeResponse; /** * The HTTP challenge for generating a certificate. */ certChallengeHttp: outputs.firebasehosting.v1beta1.CertHttpChallengeResponse; /** * The certificate provisioning status; updated when Firebase Hosting provisions an SSL certificate for the domain. */ certStatus: string; /** * The IPs found at the last DNS fetch. */ discoveredIps: string[]; /** * The time at which the last DNS fetch occurred. */ dnsFetchTime: string; /** * The DNS record match status as of the last DNS fetch. */ dnsStatus: string; /** * The list of IPs to which the domain is expected to resolve. */ expectedIps: string[]; } /** * Defines the behavior of a domain-level redirect. Domain redirects preserve the path of the redirect but replace the requested domain with the one specified in the redirect configuration. */ interface DomainRedirectResponse { /** * The domain name to redirect to. */ domainName: string; /** * The redirect status code. */ type: string; } /** * A [`Header`](https://firebase.google.com/docs/hosting/full-config#headers) specifies a URL pattern that, if matched to the request URL path, triggers Hosting to apply the specified custom response headers. */ interface HeaderResponse { /** * The user-supplied [glob](https://firebase.google.com/docs/hosting/full-config#glob_pattern_matching) to match against the request URL path. */ glob: string; /** * The additional headers to add to the response. */ headers: { [key: string]: string; }; /** * The user-supplied RE2 regular expression to match against the request URL path. */ regex: string; } /** * A file you can add to your existing, non-Hosting hosting service that confirms your intent to allow Hosting's Certificate Authorities to create an SSL certificate for your domain. */ interface HttpUpdateResponse { /** * An error encountered during the last contents check. If null, the check completed successfully. */ checkError: outputs.firebasehosting.v1beta1.StatusResponse; /** * A text string to serve at the path. */ desired: string; /** * Whether Hosting was able to find the required file contents on the specified path during its last check. */ discovered: string; /** * The last time Hosting systems checked for the file contents. */ lastCheckTime: string; /** * The path to the file. */ path: string; } /** * If provided, i18n rewrites are enabled. */ interface I18nConfigResponse { /** * The user-supplied path where country and language specific content will be looked for within the public directory. */ root: string; } /** * A [`Redirect`](https://firebase.google.com/docs/hosting/full-config#redirects) specifies a URL pattern that, if matched to the request URL path, triggers Hosting to respond with a redirect to the specified destination path. */ interface RedirectResponse { /** * The user-supplied [glob](https://firebase.google.com/docs/hosting/full-config#glob_pattern_matching) to match against the request URL path. */ glob: string; /** * The value to put in the HTTP location header of the response. The location can contain capture group values from the pattern using a `:` prefix to identify the segment and an optional `*` to capture the rest of the URL. For example: "glob": "/:capture*", "statusCode": 301, "location": "https://example.com/foo/:capture" */ location: string; /** * The user-supplied RE2 regular expression to match against the request URL path. */ regex: string; /** * The status HTTP code to return in the response. It must be a valid 3xx status code. */ statusCode: number; } /** * A `Release` is a particular [collection of configurations and files](sites.versions) that is set to be public at a particular time. */ interface ReleaseResponse { /** * The deploy description when the release was created. The value can be up to 512 characters. */ message: string; /** * The unique identifier for the release, in either of the following formats: - sites/SITE_ID/releases/RELEASE_ID - sites/SITE_ID/channels/CHANNEL_ID/releases/RELEASE_ID This name is provided in the response body when you call [`releases.create`](sites.releases/create) or [`channels.releases.create`](sites.channels.releases/create). */ name: string; /** * The time at which the version is set to be public. */ releaseTime: string; /** * Identifies the user who created the release. */ releaseUser: outputs.firebasehosting.v1beta1.ActingUserResponse; /** * Explains the reason for the release. Specify a value for this field only when creating a `SITE_DISABLE` type release. */ type: string; /** * The configuration and content that was released. */ version: outputs.firebasehosting.v1beta1.VersionResponse; } /** * A [`Rewrite`](https://firebase.google.com/docs/hosting/full-config#rewrites) specifies a URL pattern that, if matched to the request URL path, triggers Hosting to respond as if the service were given the specified destination URL. */ interface RewriteResponse { /** * The request will be forwarded to Firebase Dynamic Links. */ dynamicLinks: boolean; /** * The function to proxy requests to. Must match the exported function name exactly. */ function: string; /** * Optional. Specify a Cloud region for rewritten Functions invocations. If not provided, defaults to us-central1. */ functionRegion: string; /** * The user-supplied [glob](https://firebase.google.com/docs/hosting/full-config#glob_pattern_matching) to match against the request URL path. */ glob: string; /** * The URL path to rewrite the request to. */ path: string; /** * The user-supplied RE2 regular expression to match against the request URL path. */ regex: string; /** * The request will be forwarded to Cloud Run. */ run: outputs.firebasehosting.v1beta1.CloudRunRewriteResponse; } /** * The configuration for how incoming requests to a site should be routed and processed before serving content. The URL request paths are matched against the specified URL patterns in the configuration, then Hosting applies the applicable configuration according to a specific [priority order](https://firebase.google.com/docs/hosting/full-config#hosting_priority_order). */ interface ServingConfigResponse { /** * How to handle well known App Association files. */ appAssociation: string; /** * Defines whether to drop the file extension from uploaded files. */ cleanUrls: boolean; /** * An array of objects, where each object specifies a URL pattern that, if matched to the request URL path, triggers Hosting to apply the specified custom response headers. */ headers: outputs.firebasehosting.v1beta1.HeaderResponse[]; /** * Optional. Defines i18n rewrite behavior. */ i18n: outputs.firebasehosting.v1beta1.I18nConfigResponse; /** * An array of objects (called redirect rules), where each rule specifies a URL pattern that, if matched to the request URL path, triggers Hosting to respond with a redirect to the specified destination path. */ redirects: outputs.firebasehosting.v1beta1.RedirectResponse[]; /** * An array of objects (called rewrite rules), where each rule specifies a URL pattern that, if matched to the request URL path, triggers Hosting to respond as if the service were given the specified destination URL. */ rewrites: outputs.firebasehosting.v1beta1.RewriteResponse[]; /** * Defines how to handle a trailing slash in the URL path. */ trailingSlashBehavior: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * A `Version` is a configuration and a collection of static files which determine how a site is displayed. */ interface VersionResponse { /** * The configuration for the behavior of the site. This configuration exists in the [`firebase.json`](https://firebase.google.com/docs/cli/#the_firebasejson_file) file. */ config: outputs.firebasehosting.v1beta1.ServingConfigResponse; /** * The time at which the version was created. */ createTime: string; /** * Identifies the user who created the version. */ createUser: outputs.firebasehosting.v1beta1.ActingUserResponse; /** * The time at which the version was `DELETED`. */ deleteTime: string; /** * Identifies the user who `DELETED` the version. */ deleteUser: outputs.firebasehosting.v1beta1.ActingUserResponse; /** * The total number of files associated with the version. This value is calculated after a version is `FINALIZED`. */ fileCount: string; /** * The time at which the version was `FINALIZED`. */ finalizeTime: string; /** * Identifies the user who `FINALIZED` the version. */ finalizeUser: outputs.firebasehosting.v1beta1.ActingUserResponse; /** * The labels used for extra metadata and/or filtering. */ labels: { [key: string]: string; }; /** * The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create). */ name: string; /** * The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete). */ status: string; /** * The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`. */ versionBytes: string; } } } export declare namespace firebaseml { namespace v1beta2 { /** * State common to all model types. Includes publishing and validation information. */ interface ModelStateResponse { /** * Indicates if this model has been published. */ published: boolean; /** * Indicates the latest validation error on the model if any. A model may have validation errors if there were problems during the model creation/update. e.g. in the case of a TfLiteModel, if a tflite model file was missing or in the wrong format. This field will be empty for valid models. */ validationError: outputs.firebaseml.v1beta2.StatusResponse; } /** * This resource represents a long-running operation that is the result of a network API call. */ interface OperationResponse { /** * If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available. */ done: boolean; /** * The error result of the operation in case of failure or cancellation. */ error: outputs.firebaseml.v1beta2.StatusResponse; /** * Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. */ metadata: { [key: string]: string; }; /** * The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`. */ name: string; /** * The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. */ response: { [key: string]: string; }; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Information that is specific to TfLite models. */ interface TfLiteModelResponse { /** * The AutoML model id referencing a model you created with the AutoML API. The name should have format 'projects//locations//models/' (This is the model resource name returned from the AutoML API) */ automlModel: string; /** * The TfLite file containing the model. (Stored in Google Cloud). The gcs_tflite_uri should have form: gs://some-bucket/some-model.tflite Note: If you update the file in the original location, it is necessary to call UpdateModel for ML to pick up and validate the updated file. */ gcsTfliteUri: string; /** * The size of the TFLite model */ sizeBytes: string; } } } export declare namespace firebaserules { namespace v1 { /** * `File` containing source content. */ interface FileResponse { /** * Textual Content. */ content: string; /** * Fingerprint (e.g. github sha) associated with the `File`. */ fingerprint: string; /** * File name. */ name: string; } /** * Metadata for a Ruleset. */ interface MetadataResponse { /** * Services that this ruleset has declarations for (e.g., "cloud.firestore"). There may be 0+ of these. */ services: string[]; } /** * `Source` is one or more `File` messages comprising a logical set of rules. */ interface SourceResponse { /** * `File` set constituting the `Source` bundle. */ files: outputs.firebaserules.v1.FileResponse[]; } } } export declare namespace firestore { namespace v1 { /** * Represent a recurring schedule that runs at a specific time every day. The time zone is UTC. */ interface GoogleFirestoreAdminV1DailyRecurrenceResponse { } /** * An index that stores vectors in a flat data structure, and supports exhaustive search. */ interface GoogleFirestoreAdminV1FlatIndexResponse { } /** * A field in an index. The field_path describes which field is indexed, the value_mode describes how the field value is indexed. */ interface GoogleFirestoreAdminV1IndexFieldResponse { /** * Indicates that this field supports operations on `array_value`s. */ arrayConfig: string; /** * Can be __name__. For single field indexes, this must match the name of the field or may be omitted. */ fieldPath: string; /** * Indicates that this field supports ordering by the specified order or comparing using =, !=, <, <=, >, >=. */ order: string; /** * Indicates that this field supports nearest neighbors and distance operations on vector. */ vectorConfig: outputs.firestore.v1.GoogleFirestoreAdminV1VectorConfigResponse; } /** * The index configuration to support vector search operations */ interface GoogleFirestoreAdminV1VectorConfigResponse { /** * The vector dimension this configuration applies to. The resulting index will only include vectors of this dimension, and can be used for vector search with the same dimension. */ dimension: number; /** * Indicates the vector index is a flat index. */ flat: outputs.firestore.v1.GoogleFirestoreAdminV1FlatIndexResponse; } /** * Represents a recurring schedule that runs on a specified day of the week. The time zone is UTC. */ interface GoogleFirestoreAdminV1WeeklyRecurrenceResponse { /** * The day of week to run. DAY_OF_WEEK_UNSPECIFIED is not allowed. */ day: string; } } namespace v1beta1 { /** * A field of an index. */ interface GoogleFirestoreAdminV1beta1IndexFieldResponse { /** * The path of the field. Must match the field path specification described by google.firestore.v1beta1.Document.fields. Special field path `__name__` may be used by itself or at the end of a path. `__type__` may be used only at the end of path. */ fieldPath: string; /** * The field's mode. */ mode: string; } } namespace v1beta2 { /** * A field in an index. The field_path describes which field is indexed, the value_mode describes how the field value is indexed. */ interface GoogleFirestoreAdminV1beta2IndexFieldResponse { /** * Indicates that this field supports operations on `array_value`s. */ arrayConfig: string; /** * Can be __name__. For single field indexes, this must match the name of the field or may be omitted. */ fieldPath: string; /** * Indicates that this field supports ordering by the specified order or comparing using =, <, <=, >, >=. */ order: string; } } } export declare namespace gameservices { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.gameservices.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; ignoreChildExemptions: boolean; /** * The log type that this config enables. */ logType: string; } /** * Authorization-related information used by Cloud Audit Logging. */ interface AuthorizationLoggingOptionsResponse { /** * The type of the permission that was checked. */ permissionType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { bindingId: string; /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.gameservices.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Write a Cloud Audit log */ interface CloudAuditOptionsResponse { /** * Information used by the Cloud Audit Logging pipeline. */ authorizationLoggingOptions: outputs.gameservices.v1.AuthorizationLoggingOptionsResponse; /** * The log_name to populate in the Cloud Audit Record. */ logName: string; } /** * A condition to be met. */ interface ConditionResponse { /** * Trusted attributes supplied by the IAM system. */ iam: string; /** * An operator to apply the subject with. */ op: string; /** * Trusted attributes discharged by the service. */ svc: string; /** * Trusted attributes supplied by any service that owns resources and uses the IAM system for access control. */ sys: string; /** * The objects of the condition. */ values: string[]; } /** * Increment a streamz counter with the specified metric and field names. Metric names should start with a '/', generally be lowercase-only, and end in "_count". Field names should not contain an initial slash. The actual exported metric names will have "/iam/policy" prepended. Field names correspond to IAM request parameters and field values are their respective values. Supported field names: - "authority", which is "[token]" if IAMContext.token is present, otherwise the value of IAMContext.authority_selector if present, and otherwise a representation of IAMContext.principal; or - "iam_principal", a representation of IAMContext.principal even if a token or authority selector is present; or - "" (empty string), resulting in a counter with no fields. Examples: counter { metric: "/debug_access_count" field: "iam_principal" } ==> increment counter /iam/policy/debug_access_count {iam_principal=[value of IAMContext.principal]} */ interface CounterOptionsResponse { /** * Custom fields. */ customFields: outputs.gameservices.v1.CustomFieldResponse[]; /** * The field value to attribute. */ field: string; /** * The metric to update. */ metric: string; } /** * Custom fields. These can be used to create a counter with arbitrary field/value pairs. See: go/rpcsp-custom-fields. */ interface CustomFieldResponse { /** * Name is the field name. */ name: string; /** * Value is the field value. It is important that in contrast to the CounterOptions.field, the value here is a constant that is not derived from the IAMContext. */ value: string; } /** * Write a Data Access (Gin) log */ interface DataAccessOptionsResponse { logMode: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Specifies what kind of log the caller must write */ interface LogConfigResponse { /** * Cloud audit options. */ cloudAudit: outputs.gameservices.v1.CloudAuditOptionsResponse; /** * Counter options. */ counter: outputs.gameservices.v1.CounterOptionsResponse; /** * Data access options. */ dataAccess: outputs.gameservices.v1.DataAccessOptionsResponse; } /** * A rule to be applied in a Policy. */ interface RuleResponse { /** * Required */ action: string; /** * Additional restrictions that must be met. All conditions must pass for the rule to match. */ conditions: outputs.gameservices.v1.ConditionResponse[]; /** * Human-readable description of the rule. */ description: string; /** * If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries. */ in: string[]; /** * The config returned to callers of CheckPolicy for any entries that match the LOG action. */ logConfig: outputs.gameservices.v1.LogConfigResponse[]; /** * If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries. The format for in and not_in entries can be found at in the Local IAM documentation (see go/local-iam#features). */ notIn: string[]; /** * A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs. */ permissions: string[]; } } namespace v1beta { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.gameservices.v1beta.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; ignoreChildExemptions: boolean; /** * The log type that this config enables. */ logType: string; } /** * Authorization-related information used by Cloud Audit Logging. */ interface AuthorizationLoggingOptionsResponse { /** * The type of the permission that was checked. */ permissionType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { bindingId: string; /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.gameservices.v1beta.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Write a Cloud Audit log */ interface CloudAuditOptionsResponse { /** * Information used by the Cloud Audit Logging pipeline. */ authorizationLoggingOptions: outputs.gameservices.v1beta.AuthorizationLoggingOptionsResponse; /** * The log_name to populate in the Cloud Audit Record. */ logName: string; } /** * A condition to be met. */ interface ConditionResponse { /** * Trusted attributes supplied by the IAM system. */ iam: string; /** * An operator to apply the subject with. */ op: string; /** * Trusted attributes discharged by the service. */ svc: string; /** * Trusted attributes supplied by any service that owns resources and uses the IAM system for access control. */ sys: string; /** * The objects of the condition. */ values: string[]; } /** * Increment a streamz counter with the specified metric and field names. Metric names should start with a '/', generally be lowercase-only, and end in "_count". Field names should not contain an initial slash. The actual exported metric names will have "/iam/policy" prepended. Field names correspond to IAM request parameters and field values are their respective values. Supported field names: - "authority", which is "[token]" if IAMContext.token is present, otherwise the value of IAMContext.authority_selector if present, and otherwise a representation of IAMContext.principal; or - "iam_principal", a representation of IAMContext.principal even if a token or authority selector is present; or - "" (empty string), resulting in a counter with no fields. Examples: counter { metric: "/debug_access_count" field: "iam_principal" } ==> increment counter /iam/policy/debug_access_count {iam_principal=[value of IAMContext.principal]} */ interface CounterOptionsResponse { /** * Custom fields. */ customFields: outputs.gameservices.v1beta.CustomFieldResponse[]; /** * The field value to attribute. */ field: string; /** * The metric to update. */ metric: string; } /** * Custom fields. These can be used to create a counter with arbitrary field/value pairs. See: go/rpcsp-custom-fields. */ interface CustomFieldResponse { /** * Name is the field name. */ name: string; /** * Value is the field value. It is important that in contrast to the CounterOptions.field, the value here is a constant that is not derived from the IAMContext. */ value: string; } /** * Write a Data Access (Gin) log */ interface DataAccessOptionsResponse { logMode: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Specifies what kind of log the caller must write */ interface LogConfigResponse { /** * Cloud audit options. */ cloudAudit: outputs.gameservices.v1beta.CloudAuditOptionsResponse; /** * Counter options. */ counter: outputs.gameservices.v1beta.CounterOptionsResponse; /** * Data access options. */ dataAccess: outputs.gameservices.v1beta.DataAccessOptionsResponse; } /** * A rule to be applied in a Policy. */ interface RuleResponse { /** * Required */ action: string; /** * Additional restrictions that must be met. All conditions must pass for the rule to match. */ conditions: outputs.gameservices.v1beta.ConditionResponse[]; /** * Human-readable description of the rule. */ description: string; /** * If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries. */ in: string[]; /** * The config returned to callers of CheckPolicy for any entries that match the LOG action. */ logConfig: outputs.gameservices.v1beta.LogConfigResponse[]; /** * If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries. The format for in and not_in entries can be found at in the Local IAM documentation (see go/local-iam#features). */ notIn: string[]; /** * A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs. */ permissions: string[]; } } } export declare namespace genomics { namespace v1alpha2 { /** * A Google Compute Engine disk resource specification. */ interface DiskResponse { /** * Deprecated. Disks created by the Pipelines API will be deleted at the end of the pipeline run, regardless of what this field is set to. * * @deprecated Deprecated. Disks created by the Pipelines API will be deleted at the end of the pipeline run, regardless of what this field is set to. */ autoDelete: boolean; /** * Required at create time and cannot be overridden at run time. Specifies the path in the docker container where files on this disk should be located. For example, if `mountPoint` is `/mnt/disk`, and the parameter has `localPath` `inputs/file.txt`, the docker container can access the data at `/mnt/disk/inputs/file.txt`. */ mountPoint: string; /** * The name of the disk that can be used in the pipeline parameters. Must be 1 - 63 characters. The name "boot" is reserved for system use. */ name: string; /** * Specifies how a sourced-base persistent disk will be mounted. See https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances for more details. Can only be set at create time. */ readOnly: boolean; /** * The size of the disk. Defaults to 500 (GB). This field is not applicable for local SSD. */ sizeGb: number; /** * The full or partial URL of the persistent disk to attach. See https://cloud.google.com/compute/docs/reference/latest/instances#resource and https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots for more details. */ source: string; /** * The type of the disk to create. */ type: string; } /** * The Docker execuctor specification. */ interface DockerExecutorResponse { /** * The command or newline delimited script to run. The command string will be executed within a bash shell. If the command exits with a non-zero exit code, output parameter de-localization will be skipped and the pipeline operation's `error` field will be populated. Maximum command string length is 16384. */ cmd: string; /** * Image name from either Docker Hub or Google Container Registry. Users that run pipelines must have READ access to the image. */ imageName: string; } /** * LocalCopy defines how a remote file should be copied to and from the VM. */ interface LocalCopyResponse { /** * The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`. */ disk: string; /** * The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt, */ path: string; } /** * Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are: Google Cloud storage pathLocal path file file glob directory For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are: Local pathGoogle Cloud Storage path file file file directory - directory must already exist glob directory - directory will be created if it doesn't exist One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file. */ interface PipelineParameterResponse { /** * The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`. */ defaultValue: string; /** * Human-readable description. */ description: string; /** * If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be. */ localCopy: outputs.genomics.v1alpha2.LocalCopyResponse; /** * Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline. */ name: string; } /** * The system resources for the pipeline run. */ interface PipelineResourcesResponse { /** * Optional. The number of accelerators of the specified type to attach. By specifying this parameter, you will download and install the following third-party software onto your managed Compute Engine instances: NVIDIA® Tesla® drivers and NVIDIA® CUDA toolkit. */ acceleratorCount: string; /** * Optional. The Compute Engine defined accelerator type. By specifying this parameter, you will download and install the following third-party software onto your managed Compute Engine instances: NVIDIA® Tesla® drivers and NVIDIA® CUDA toolkit. Please see https://cloud.google.com/compute/docs/gpus/ for a list of available accelerator types. */ acceleratorType: string; /** * The size of the boot disk. Defaults to 10 (GB). */ bootDiskSizeGb: number; /** * Disks to attach. */ disks: outputs.genomics.v1alpha2.DiskResponse[]; /** * The minimum number of cores to use. Defaults to 1. */ minimumCpuCores: number; /** * The minimum amount of RAM to use. Defaults to 3.75 (GB) */ minimumRamGb: number; /** * Whether to assign an external IP to the instance. This is an experimental feature that may go away. Defaults to false. Corresponds to `--no_address` flag for [gcloud compute instances create] (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create). In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time. If you need to ssh into a private IP VM for debugging, you can ssh to a public VM and then ssh into the private VM's Internal IP. If noAddress is set, this pipeline run may only load docker images from Google Container Registry and not Docker Hub. Before using this, you must [configure access to Google services from internal IPs](https://cloud.google.com/compute/docs/configure-private-google-access#configuring_access_to_google_services_from_internal_ips). */ noAddress: boolean; /** * Whether to use preemptible VMs. Defaults to `false`. In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time. */ preemptible: boolean; /** * List of Google Compute Engine availability zones to which resource creation will restricted. If empty, any zone may be chosen. */ zones: string[]; } } } export declare namespace gkebackup { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.gkebackup.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * BackupConfig defines the configuration of Backups created via this BackupPlan. */ interface BackupConfigResponse { /** * If True, include all namespaced resources */ allNamespaces: boolean; /** * Optional. This defines a customer managed encryption key that will be used to encrypt the "config" portion (the Kubernetes resources) of Backups created via this plan. Default (empty): Config backup artifacts will not be encrypted. */ encryptionKey: outputs.gkebackup.v1.EncryptionKeyResponse; /** * Optional. This flag specifies whether Kubernetes Secret resources should be included when they fall into the scope of Backups. Default: False */ includeSecrets: boolean; /** * Optional. This flag specifies whether volume data should be backed up when PVCs are included in the scope of a Backup. Default: False */ includeVolumeData: boolean; /** * If set, include just the resources referenced by the listed ProtectedApplications. */ selectedApplications: outputs.gkebackup.v1.NamespacedNamesResponse; /** * If set, include just the resources in the listed namespaces. */ selectedNamespaces: outputs.gkebackup.v1.NamespacesResponse; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.gkebackup.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Information about the GKE cluster from which this Backup was created. */ interface ClusterMetadataResponse { /** * Anthos version */ anthosVersion: string; /** * A list of the Backup for GKE CRD versions found in the cluster. */ backupCrdVersions: { [key: string]: string; }; /** * The source cluster from which this Backup was created. Valid formats: - `projects/*/locations/*/clusters/*` - `projects/*/zones/*/clusters/*` This is inherited from the parent BackupPlan's cluster field. */ cluster: string; /** * GKE version */ gkeVersion: string; /** * The Kubernetes server version of the source cluster. */ k8sVersion: string; } /** * Defines the scope of cluster-scoped resources to restore. Some group kinds are not reasonable choices for a restore, and will cause an error if selected here. Any scope selection that would restore "all valid" resources automatically excludes these group kinds. - gkebackup.gke.io/BackupJob - gkebackup.gke.io/RestoreJob - metrics.k8s.io/NodeMetrics - migration.k8s.io/StorageState - migration.k8s.io/StorageVersionMigration - Node - snapshot.storage.k8s.io/VolumeSnapshotContent - storage.k8s.io/CSINode Some group kinds are driven by restore configuration elsewhere, and will cause an error if selected here. - Namespace - PersistentVolume */ interface ClusterResourceRestoreScopeResponse { /** * Optional. If True, all valid cluster-scoped resources will be restored. Mutually exclusive to any other field in the message. */ allGroupKinds: boolean; /** * Optional. A list of cluster-scoped resource group kinds to NOT restore from the backup. If specified, all valid cluster-scoped resources will be restored except for those specified in the list. Mutually exclusive to any other field in the message. */ excludedGroupKinds: outputs.gkebackup.v1.GroupKindResponse[]; /** * Optional. If True, no cluster-scoped resources will be restored. This has the same restore scope as if the message is not defined. Mutually exclusive to any other field in the message. */ noGroupKinds: boolean; /** * Optional. A list of cluster-scoped resource group kinds to restore from the backup. If specified, only the selected resources will be restored. Mutually exclusive to any other field in the message. */ selectedGroupKinds: outputs.gkebackup.v1.GroupKindResponse[]; } /** * Defined a customer managed encryption key that will be used to encrypt Backup artifacts. */ interface EncryptionKeyResponse { /** * Optional. Google Cloud KMS encryption key. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*` */ gcpKmsEncryptionKey: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * This is a direct map to the Kubernetes GroupKind type [GroupKind](https://godoc.org/k8s.io/apimachinery/pkg/runtime/schema#GroupKind) and is used for identifying specific "types" of resources to restore. */ interface GroupKindResponse { /** * Optional. API group string of a Kubernetes resource, e.g. "apiextensions.k8s.io", "storage.k8s.io", etc. Note: use empty string for core API group */ resourceGroup: string; /** * Optional. Kind of a Kubernetes resource, must be in UpperCamelCase (PascalCase) and singular form. E.g. "CustomResourceDefinition", "StorageClass", etc. */ resourceKind: string; } /** * A reference to a namespaced resource in Kubernetes. */ interface NamespacedNameResponse { /** * Optional. The name of the Kubernetes resource. */ name: string; /** * Optional. The Namespace of the Kubernetes resource. */ namespace: string; } /** * A list of namespaced Kubernetes resources. */ interface NamespacedNamesResponse { /** * Optional. A list of namespaced Kubernetes resources. */ namespacedNames: outputs.gkebackup.v1.NamespacedNameResponse[]; } /** * A list of Kubernetes Namespaces */ interface NamespacesResponse { /** * Optional. A list of Kubernetes Namespaces */ namespaces: string[]; } /** * ResourceFilter specifies matching criteria to limit the scope of a change to a specific set of kubernetes resources that are selected for restoration from a backup. */ interface ResourceFilterResponse { /** * Optional. (Filtering parameter) Any resource subject to transformation must belong to one of the listed "types". If this field is not provided, no type filtering will be performed (all resources of all types matching previous filtering parameters will be candidates for transformation). */ groupKinds: outputs.gkebackup.v1.GroupKindResponse[]; /** * Optional. This is a [JSONPath] (https://github.com/json-path/JsonPath/blob/master/README.md) expression that matches specific fields of candidate resources and it operates as a filtering parameter (resources that are not matched with this expression will not be candidates for transformation). */ jsonPath: string; /** * Optional. (Filtering parameter) Any resource subject to transformation must be contained within one of the listed Kubernetes Namespace in the Backup. If this field is not provided, no namespace filtering will be performed (all resources in all Namespaces, including all cluster-scoped resources, will be candidates for transformation). */ namespaces: string[]; } /** * Configuration of a restore. Next id: 13 */ interface RestoreConfigResponse { /** * Restore all namespaced resources in the Backup if set to "True". Specifying this field to "False" is an error. */ allNamespaces: boolean; /** * Optional. Defines the behavior for handling the situation where cluster-scoped resources being restored already exist in the target cluster. This MUST be set to a value other than CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED if cluster_resource_restore_scope is not empty. */ clusterResourceConflictPolicy: string; /** * Optional. Identifies the cluster-scoped resources to restore from the Backup. Not specifying it means NO cluster resource will be restored. */ clusterResourceRestoreScope: outputs.gkebackup.v1.ClusterResourceRestoreScopeResponse; /** * A list of selected namespaces excluded from restoration. All namespaces except those in this list will be restored. */ excludedNamespaces: outputs.gkebackup.v1.NamespacesResponse; /** * Optional. Defines the behavior for handling the situation where sets of namespaced resources being restored already exist in the target cluster. This MUST be set to a value other than NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED. */ namespacedResourceRestoreMode: string; /** * Do not restore any namespaced resources if set to "True". Specifying this field to "False" is not allowed. */ noNamespaces: boolean; /** * A list of selected ProtectedApplications to restore. The listed ProtectedApplications and all the resources to which they refer will be restored. */ selectedApplications: outputs.gkebackup.v1.NamespacedNamesResponse; /** * A list of selected Namespaces to restore from the Backup. The listed Namespaces and all resources contained in them will be restored. */ selectedNamespaces: outputs.gkebackup.v1.NamespacesResponse; /** * Optional. A list of transformation rules to be applied against Kubernetes resources as they are selected for restoration from a Backup. Rules are executed in order defined - this order matters, as changes made by a rule may impact the filtering logic of subsequent rules. An empty list means no substitution will occur. */ substitutionRules: outputs.gkebackup.v1.SubstitutionRuleResponse[]; /** * Optional. A list of transformation rules to be applied against Kubernetes resources as they are selected for restoration from a Backup. Rules are executed in order defined - this order matters, as changes made by a rule may impact the filtering logic of subsequent rules. An empty list means no transformation will occur. */ transformationRules: outputs.gkebackup.v1.TransformationRuleResponse[]; /** * Optional. Specifies the mechanism to be used to restore volume data. Default: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED (will be treated as NO_VOLUME_DATA_RESTORATION). */ volumeDataRestorePolicy: string; } /** * RetentionPolicy defines a Backup retention policy for a BackupPlan. */ interface RetentionPolicyResponse { /** * Optional. Minimum age for Backups created via this BackupPlan (in days). This field MUST be an integer value between 0-90 (inclusive). A Backup created under this BackupPlan will NOT be deletable until it reaches Backup's (create_time + backup_delete_lock_days). Updating this field of a BackupPlan does NOT affect existing Backups under it. Backups created AFTER a successful update will inherit the new value. Default: 0 (no delete blocking) */ backupDeleteLockDays: number; /** * Optional. The default maximum age of a Backup created via this BackupPlan. This field MUST be an integer value >= 0 and <= 365. If specified, a Backup created under this BackupPlan will be automatically deleted after its age reaches (create_time + backup_retain_days). If not specified, Backups created under this BackupPlan will NOT be subject to automatic deletion. Updating this field does NOT affect existing Backups under it. Backups created AFTER a successful update will automatically pick up the new value. NOTE: backup_retain_days must be >= backup_delete_lock_days. If cron_schedule is defined, then this must be <= 360 * the creation interval. If rpo_config is defined, then this must be <= 360 * target_rpo_minutes / (1440minutes/day). Default: 0 (no automatic deletion) */ backupRetainDays: number; /** * Optional. This flag denotes whether the retention policy of this BackupPlan is locked. If set to True, no further update is allowed on this policy, including the `locked` field itself. Default: False */ locked: boolean; } /** * Defines scheduling parameters for automatically creating Backups via this BackupPlan. */ interface ScheduleResponse { /** * Optional. A standard [cron](https://wikipedia.com/wiki/cron) string that defines a repeating schedule for creating Backups via this BackupPlan. This is mutually exclusive with the rpo_config field since at most one schedule can be defined for a BackupPlan. If this is defined, then backup_retain_days must also be defined. Default (empty): no automatic backup creation will occur. */ cronSchedule: string; /** * Optional. This flag denotes whether automatic Backup creation is paused for this BackupPlan. Default: False */ paused: boolean; } /** * A transformation rule to be applied against Kubernetes resources as they are selected for restoration from a Backup. A rule contains both filtering logic (which resources are subject to substitution) and substitution logic. */ interface SubstitutionRuleResponse { /** * Optional. This is the new value to set for any fields that pass the filtering and selection criteria. To remove a value from a Kubernetes resource, either leave this field unspecified, or set it to the empty string (""). */ newValue: string; /** * Optional. (Filtering parameter) This is a [regular expression] (https://en.wikipedia.org/wiki/Regular_expression) that is compared against the fields matched by the target_json_path expression (and must also have passed the previous filters). Substitution will not be performed against fields whose value does not match this expression. If this field is NOT specified, then ALL fields matched by the target_json_path expression will undergo substitution. Note that an empty (e.g., "", rather than unspecified) value for this field will only match empty fields. */ originalValuePattern: string; /** * Optional. (Filtering parameter) Any resource subject to substitution must belong to one of the listed "types". If this field is not provided, no type filtering will be performed (all resources of all types matching previous filtering parameters will be candidates for substitution). */ targetGroupKinds: outputs.gkebackup.v1.GroupKindResponse[]; /** * This is a [JSONPath] (https://kubernetes.io/docs/reference/kubectl/jsonpath/) expression that matches specific fields of candidate resources and it operates as both a filtering parameter (resources that are not matched with this expression will not be candidates for substitution) as well as a field identifier (identifies exactly which fields out of the candidate resources will be modified). */ targetJsonPath: string; /** * Optional. (Filtering parameter) Any resource subject to substitution must be contained within one of the listed Kubernetes Namespace in the Backup. If this field is not provided, no namespace filtering will be performed (all resources in all Namespaces, including all cluster-scoped resources, will be candidates for substitution). To mix cluster-scoped and namespaced resources in the same rule, use an empty string ("") as one of the target namespaces. */ targetNamespaces: string[]; } /** * TransformationRuleAction defines a TransformationRule action based on the JSON Patch RFC (https://www.rfc-editor.org/rfc/rfc6902) */ interface TransformationRuleActionResponse { /** * Optional. A string containing a JSON Pointer value that references the location in the target document to move the value from. */ fromPath: string; /** * op specifies the operation to perform. */ op: string; /** * Optional. A string containing a JSON-Pointer value that references a location within the target document where the operation is performed. */ path: string; /** * Optional. A string that specifies the desired value in string format to use for transformation. */ value: string; } /** * A transformation rule to be applied against Kubernetes resources as they are selected for restoration from a Backup. A rule contains both filtering logic (which resources are subject to transform) and transformation logic. */ interface TransformationRuleResponse { /** * Optional. The description is a user specified string description of the transformation rule. */ description: string; /** * A list of transformation rule actions to take against candidate resources. Actions are executed in order defined - this order matters, as they could potentially interfere with each other and the first operation could affect the outcome of the second operation. */ fieldActions: outputs.gkebackup.v1.TransformationRuleActionResponse[]; /** * Optional. This field is used to specify a set of fields that should be used to determine which resources in backup should be acted upon by the supplied transformation rule actions, and this will ensure that only specific resources are affected by transformation rule actions. */ resourceFilter: outputs.gkebackup.v1.ResourceFilterResponse; } } } export declare namespace gkehub { namespace v1 { /** * Spec for App Dev Experience Feature. */ interface AppDevExperienceFeatureSpecResponse { } /** * State for App Dev Exp Feature. */ interface AppDevExperienceFeatureStateResponse { /** * Status of subcomponent that detects configured Service Mesh resources. */ networkingInstallSucceeded: outputs.gkehub.v1.StatusResponse; } /** * ApplianceCluster contains information specific to GDC Edge Appliance Clusters. */ interface ApplianceClusterResponse { /** * Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance */ resourceLink: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.gkehub.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity */ interface AuthorityResponse { /** * An identity provider that reflects the `issuer` in the workload identity pool. */ identityProvider: string; /** * Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters, it must use `location` rather than `zone` for GKE clusters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity). */ issuer: string; /** * Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field. */ oidcJwks: string; /** * The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API. */ workloadIdentityPool: string; } /** * BinaryAuthorizationConfig defines the fleet level configuration of binary authorization feature. */ interface BinaryAuthorizationConfigResponse { /** * Optional. Mode of operation for binauthz policy evaluation. */ evaluationMode: string; /** * Optional. Binauthz policies that apply to this cluster. */ policyBindings: outputs.gkehub.v1.PolicyBindingResponse[]; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.gkehub.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * **ClusterUpgrade**: The configuration for the fleet-level ClusterUpgrade feature. */ interface ClusterUpgradeFleetSpecResponse { /** * Allow users to override some properties of each GKE upgrade. */ gkeUpgradeOverrides: outputs.gkehub.v1.ClusterUpgradeGKEUpgradeOverrideResponse[]; /** * Post conditions to evaluate to mark an upgrade COMPLETE. Required. */ postConditions: outputs.gkehub.v1.ClusterUpgradePostConditionsResponse; /** * This fleet consumes upgrades that have COMPLETE status code in the upstream fleets. See UpgradeStatus.Code for code definitions. The fleet name should be either fleet project number or id. This is defined as repeated for future proof reasons. Initial implementation will enforce at most one upstream fleet. */ upstreamFleets: string[]; } /** * **ClusterUpgrade**: The state for the fleet-level ClusterUpgrade feature. */ interface ClusterUpgradeFleetStateResponse { /** * This fleets whose upstream_fleets contain the current fleet. The fleet name should be either fleet project number or id. */ downstreamFleets: string[]; /** * Feature state for GKE clusters. */ gkeState: outputs.gkehub.v1.ClusterUpgradeGKEUpgradeFeatureStateResponse; /** * A list of memberships ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel. The membership resource is in the format: `projects/{p}/locations/{l}/membership/{m}`. */ ignored: { [key: string]: string; }; } /** * GKEUpgradeFeatureCondition describes the condition of the feature for GKE clusters at a certain point of time. */ interface ClusterUpgradeGKEUpgradeFeatureConditionResponse { /** * Reason why the feature is in this status. */ reason: string; /** * Status of the condition, one of True, False, Unknown. */ status: string; /** * Type of the condition, for example, "ready". */ type: string; /** * Last timestamp the condition was updated. */ updateTime: string; } /** * GKEUpgradeFeatureState contains feature states for GKE clusters in the scope. */ interface ClusterUpgradeGKEUpgradeFeatureStateResponse { /** * Current conditions of the feature. */ conditions: outputs.gkehub.v1.ClusterUpgradeGKEUpgradeFeatureConditionResponse[]; /** * Upgrade state. It will eventually replace `state`. */ upgradeState: outputs.gkehub.v1.ClusterUpgradeGKEUpgradeStateResponse[]; } /** * Properties of a GKE upgrade that can be overridden by the user. For example, a user can skip soaking by overriding the soaking to 0. */ interface ClusterUpgradeGKEUpgradeOverrideResponse { /** * Post conditions to override for the specified upgrade (name + version). Required. */ postConditions: outputs.gkehub.v1.ClusterUpgradePostConditionsResponse; /** * Which upgrade to override. Required. */ upgrade: outputs.gkehub.v1.ClusterUpgradeGKEUpgradeResponse; } /** * GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade. */ interface ClusterUpgradeGKEUpgradeResponse { /** * Name of the upgrade, e.g., "k8s_control_plane". It should be a valid upgrade name. It must not exceet 99 characters. */ name: string; /** * Version of the upgrade, e.g., "1.22.1-gke.100". It should be a valid version. It must not exceet 99 characters. */ version: string; } /** * GKEUpgradeState is a GKEUpgrade and its state at the scope and fleet level. */ interface ClusterUpgradeGKEUpgradeStateResponse { /** * Number of GKE clusters in each status code. */ stats: { [key: string]: string; }; /** * Status of the upgrade. */ status: outputs.gkehub.v1.ClusterUpgradeUpgradeStatusResponse; /** * Which upgrade to track the state. */ upgrade: outputs.gkehub.v1.ClusterUpgradeGKEUpgradeResponse; } /** * Post conditional checks after an upgrade has been applied on all eligible clusters. */ interface ClusterUpgradePostConditionsResponse { /** * Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days. Required. */ soaking: string; } /** * UpgradeStatus provides status information for each upgrade. */ interface ClusterUpgradeUpgradeStatusResponse { /** * Status code of the upgrade. */ code: string; /** * Reason for this status. */ reason: string; /** * Last timestamp the status was updated. */ updateTime: string; } /** * CommonFeatureSpec contains Hub-wide configuration information */ interface CommonFeatureSpecResponse { /** * Appdevexperience specific spec. */ appdevexperience: outputs.gkehub.v1.AppDevExperienceFeatureSpecResponse; /** * ClusterUpgrade (fleet-based) feature spec. */ clusterupgrade: outputs.gkehub.v1.ClusterUpgradeFleetSpecResponse; /** * FleetObservability feature spec. */ fleetobservability: outputs.gkehub.v1.FleetObservabilityFeatureSpecResponse; /** * Multicluster Ingress-specific spec. */ multiclusteringress: outputs.gkehub.v1.MultiClusterIngressFeatureSpecResponse; } /** * CommonFeatureState contains Hub-wide Feature status information. */ interface CommonFeatureStateResponse { /** * Appdevexperience specific state. */ appdevexperience: outputs.gkehub.v1.AppDevExperienceFeatureStateResponse; /** * ClusterUpgrade fleet-level state. */ clusterupgrade: outputs.gkehub.v1.ClusterUpgradeFleetStateResponse; /** * FleetObservability feature state. */ fleetobservability: outputs.gkehub.v1.FleetObservabilityFeatureStateResponse; /** * The "running state" of the Feature in this Hub. */ state: outputs.gkehub.v1.FeatureStateResponse; } /** * CommonFleetDefaultMemberConfigSpec contains default configuration information for memberships of a fleet */ interface CommonFleetDefaultMemberConfigSpecResponse { /** * Config Management-specific spec. */ configmanagement: outputs.gkehub.v1.ConfigManagementMembershipSpecResponse; /** * Identity Service-specific spec. */ identityservice: outputs.gkehub.v1.IdentityServiceMembershipSpecResponse; /** * Anthos Service Mesh-specific spec */ mesh: outputs.gkehub.v1.ServiceMeshMembershipSpecResponse; /** * Policy Controller spec. */ policycontroller: outputs.gkehub.v1.PolicyControllerMembershipSpecResponse; } /** * Configuration for Config Sync */ interface ConfigManagementConfigSyncResponse { /** * Set to true to allow the vertical scaling. Defaults to false which disallows vertical scaling. This field is deprecated. * * @deprecated Set to true to allow the vertical scaling. Defaults to false which disallows vertical scaling. This field is deprecated. */ allowVerticalScale: boolean; /** * Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field. */ enabled: boolean; /** * Git repo configuration for the cluster. */ git: outputs.gkehub.v1.ConfigManagementGitConfigResponse; /** * The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. This field is required when automatic Feature management is enabled. */ metricsGcpServiceAccountEmail: string; /** * OCI repo configuration for the cluster */ oci: outputs.gkehub.v1.ConfigManagementOciConfigResponse; /** * Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts. */ preventDrift: boolean; /** * Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode. */ sourceFormat: string; } /** * Git repo configuration for a single cluster. */ interface ConfigManagementGitConfigResponse { /** * The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount. */ gcpServiceAccountEmail: string; /** * URL for the HTTPS proxy to be used when communicating with the Git repo. */ httpsProxy: string; /** * The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository. */ policyDir: string; /** * Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount or none. The validation of this is case-sensitive. Required. */ secretType: string; /** * The branch of the repository to sync from. Default: master. */ syncBranch: string; /** * The URL of the Git repository to use as the source of truth. */ syncRepo: string; /** * Git revision (tag or hash) to check out. Default HEAD. */ syncRev: string; /** * Period in seconds between consecutive syncs. Default: 15. */ syncWaitSecs: string; } /** * Configuration for Hierarchy Controller */ interface ConfigManagementHierarchyControllerConfigResponse { /** * Whether hierarchical resource quota is enabled in this cluster. */ enableHierarchicalResourceQuota: boolean; /** * Whether pod tree labels are enabled in this cluster. */ enablePodTreeLabels: boolean; /** * Whether Hierarchy Controller is enabled in this cluster. */ enabled: boolean; } /** * **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. */ interface ConfigManagementMembershipSpecResponse { /** * The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. */ cluster: string; /** * Config Sync configuration for the cluster. */ configSync: outputs.gkehub.v1.ConfigManagementConfigSyncResponse; /** * Hierarchy Controller configuration for the cluster. */ hierarchyController: outputs.gkehub.v1.ConfigManagementHierarchyControllerConfigResponse; /** * Policy Controller configuration for the cluster. */ policyController: outputs.gkehub.v1.ConfigManagementPolicyControllerResponse; /** * Version of ACM installed. */ version: string; } /** * OCI repo configuration for a single cluster */ interface ConfigManagementOciConfigResponse { /** * The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount. */ gcpServiceAccountEmail: string; /** * The absolute path of the directory that contains the local resources. Default: the root directory of the image. */ policyDir: string; /** * Type of secret configured for access to the Git repo. */ secretType: string; /** * The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`. */ syncRepo: string; /** * Period in seconds between consecutive syncs. Default: 15. */ syncWaitSecs: string; } /** * PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"] */ interface ConfigManagementPolicyControllerMonitoringResponse { /** * Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export. */ backends: string[]; } /** * Configuration for Policy Controller */ interface ConfigManagementPolicyControllerResponse { /** * Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether. */ auditIntervalSeconds: string; /** * Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect. */ enabled: boolean; /** * The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster. */ exemptableNamespaces: string[]; /** * Logs all denies and dry run failures. */ logDeniesEnabled: boolean; /** * Monitoring specifies the configuration of monitoring. */ monitoring: outputs.gkehub.v1.ConfigManagementPolicyControllerMonitoringResponse; /** * Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster. */ mutationEnabled: boolean; /** * Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated. */ referentialRulesEnabled: boolean; /** * Installs the default template library along with Policy Controller. */ templateLibraryInstalled: boolean; /** * Last time this membership spec was updated. */ updateTime: string; } /** * DefaultClusterConfig describes the default cluster configurations to be applied to all clusters born-in-fleet. */ interface DefaultClusterConfigResponse { /** * Optional. Enable/Disable binary authorization features for the cluster. */ binaryAuthorizationConfig: outputs.gkehub.v1.BinaryAuthorizationConfigResponse; /** * Enable/Disable Security Posture features for the cluster. */ securityPostureConfig: outputs.gkehub.v1.SecurityPostureConfigResponse; } /** * EdgeCluster contains information specific to Google Edge Clusters. */ interface EdgeClusterResponse { /** * Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster */ resourceLink: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the "running state" of the Feature in the Hub and across Memberships. */ interface FeatureResourceStateResponse { /** * The current state of the Feature resource in the Hub API. */ state: string; } /** * FeatureState describes the high-level state of a Feature. It may be used to describe a Feature's state at the environ-level, or per-membershop, depending on the context. */ interface FeatureStateResponse { /** * The high-level, machine-readable status of this Feature. */ code: string; /** * A human-readable description of the current status. */ description: string; /** * The time this status and any related Feature-specific details were updated. */ updateTime: string; } /** * FleetLifecycleState describes the state of a Fleet resource. */ interface FleetLifecycleStateResponse { /** * The current state of the Fleet resource. */ code: string; } /** * All error details of the fleet observability feature. */ interface FleetObservabilityFeatureErrorResponse { /** * The code of the error. */ code: string; /** * A human-readable description of the current status. */ description: string; } /** * **Fleet Observability**: The Hub-wide input for the FleetObservability feature. */ interface FleetObservabilityFeatureSpecResponse { /** * Specified if fleet logging feature is enabled for the entire fleet. If UNSPECIFIED, fleet logging feature is disabled for the entire fleet. */ loggingConfig: outputs.gkehub.v1.FleetObservabilityLoggingConfigResponse; } /** * **FleetObservability**: Hub-wide Feature for FleetObservability feature. state. */ interface FleetObservabilityFeatureStateResponse { /** * The feature state of default logging. */ logging: outputs.gkehub.v1.FleetObservabilityFleetObservabilityLoggingStateResponse; /** * The feature state of fleet monitoring. */ monitoring: outputs.gkehub.v1.FleetObservabilityFleetObservabilityMonitoringStateResponse; } /** * Base state for fleet observability feature. */ interface FleetObservabilityFleetObservabilityBaseFeatureStateResponse { /** * The high-level, machine-readable status of this Feature. */ code: string; /** * Errors after reconciling the monitoring and logging feature if the code is not OK. */ errors: outputs.gkehub.v1.FleetObservabilityFeatureErrorResponse[]; } /** * Feature state for logging feature. */ interface FleetObservabilityFleetObservabilityLoggingStateResponse { /** * The base feature state of fleet default log. */ defaultLog: outputs.gkehub.v1.FleetObservabilityFleetObservabilityBaseFeatureStateResponse; /** * The base feature state of fleet scope log. */ scopeLog: outputs.gkehub.v1.FleetObservabilityFleetObservabilityBaseFeatureStateResponse; } /** * Feature state for monitoring feature. */ interface FleetObservabilityFleetObservabilityMonitoringStateResponse { /** * The base feature state of fleet monitoring feature. */ state: outputs.gkehub.v1.FleetObservabilityFleetObservabilityBaseFeatureStateResponse; } /** * LoggingConfig defines the configuration for different types of logs. */ interface FleetObservabilityLoggingConfigResponse { /** * Specified if applying the default routing config to logs not specified in other configs. */ defaultConfig: outputs.gkehub.v1.FleetObservabilityRoutingConfigResponse; /** * Specified if applying the routing config to all logs for all fleet scopes. */ fleetScopeLogsConfig: outputs.gkehub.v1.FleetObservabilityRoutingConfigResponse; } /** * RoutingConfig configures the behaviour of fleet logging feature. */ interface FleetObservabilityRoutingConfigResponse { /** * mode configures the logs routing mode. */ mode: string; } /** * GkeCluster contains information specific to GKE clusters. */ interface GkeClusterResponse { /** * If cluster_missing is set then it denotes that the GKE cluster no longer exists in the GKE Control Plane. */ clusterMissing: boolean; /** * Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported. */ resourceLink: string; } /** * Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod. */ interface IdentityServiceAuthMethodResponse { /** * AzureAD specific Configuration. */ azureadConfig: outputs.gkehub.v1.IdentityServiceAzureADConfigResponse; /** * GoogleConfig specific configuration. */ googleConfig: outputs.gkehub.v1.IdentityServiceGoogleConfigResponse; /** * Identifier for auth config. */ name: string; /** * OIDC specific configuration. */ oidcConfig: outputs.gkehub.v1.IdentityServiceOidcConfigResponse; /** * Proxy server address to use for auth method. */ proxy: string; } /** * Configuration for the AzureAD Auth flow. */ interface IdentityServiceAzureADConfigResponse { /** * ID for the registered client application that makes authentication requests to the Azure AD identity provider. */ clientId: string; /** * Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH. */ clientSecret: string; /** * Encrypted AzureAD client secret. */ encryptedClientSecret: string; /** * The redirect URL that kubectl uses for authorization. */ kubectlRedirectUri: string; /** * Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant. */ tenant: string; } /** * Configuration for the Google Plugin Auth flow. */ interface IdentityServiceGoogleConfigResponse { /** * Disable automatic configuration of Google Plugin on supported platforms. */ disable: boolean; } /** * **Anthos Identity Service**: Configuration for a single Membership. */ interface IdentityServiceMembershipSpecResponse { /** * A member may support multiple auth methods. */ authMethods: outputs.gkehub.v1.IdentityServiceAuthMethodResponse[]; } /** * Configuration for OIDC Auth flow. */ interface IdentityServiceOidcConfigResponse { /** * PEM-encoded CA for OIDC provider. */ certificateAuthorityData: string; /** * ID for OIDC client application. */ clientId: string; /** * Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH. */ clientSecret: string; /** * Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console. */ deployCloudConsoleProxy: boolean; /** * Enable access token. */ enableAccessToken: boolean; /** * Encrypted OIDC Client secret */ encryptedClientSecret: string; /** * Comma-separated list of key-value pairs. */ extraParams: string; /** * Prefix to prepend to group name. */ groupPrefix: string; /** * Claim in OIDC ID token that holds group information. */ groupsClaim: string; /** * URI for the OIDC provider. This should point to the level below .well-known/openid-configuration. */ issuerUri: string; /** * Registered redirect uri to redirect users going through OAuth flow using kubectl plugin. */ kubectlRedirectUri: string; /** * Comma-separated list of identifiers. */ scopes: string; /** * Claim in OIDC ID token that holds username. */ userClaim: string; /** * Prefix to prepend to user name. */ userPrefix: string; } /** * KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. */ interface KubernetesMetadataResponse { /** * Kubernetes API server version string as reported by `/version`. */ kubernetesApiServerVersion: string; /** * The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB. */ memoryMb: number; /** * Node count as reported by Kubernetes nodes resources. */ nodeCount: number; /** * Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty. */ nodeProviderId: string; /** * The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers. */ updateTime: string; /** * vCPU count as reported by Kubernetes nodes resources. */ vcpuCount: number; } /** * KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. */ interface KubernetesResourceResponse { /** * The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask. */ connectResources: outputs.gkehub.v1.ResourceManifestResponse[]; /** * Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership. */ membershipCrManifest: string; /** * Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask. */ membershipResources: outputs.gkehub.v1.ResourceManifestResponse[]; /** * Optional. Options for Kubernetes resource generation. */ resourceOptions: outputs.gkehub.v1.ResourceOptionsResponse; } /** * MembershipBindingLifecycleState describes the state of a Binding resource. */ interface MembershipBindingLifecycleStateResponse { /** * The current state of the MembershipBinding resource. */ code: string; } /** * MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. */ interface MembershipEndpointResponse { /** * Optional. Specific information for a GDC Edge Appliance cluster. */ applianceCluster: outputs.gkehub.v1.ApplianceClusterResponse; /** * Optional. Specific information for a Google Edge cluster. */ edgeCluster: outputs.gkehub.v1.EdgeClusterResponse; /** * Optional. Specific information for a GKE-on-GCP cluster. */ gkeCluster: outputs.gkehub.v1.GkeClusterResponse; /** * Whether the lifecycle of this membership is managed by a google cluster platform service. */ googleManaged: boolean; /** * Useful Kubernetes-specific metadata. */ kubernetesMetadata: outputs.gkehub.v1.KubernetesMetadataResponse; /** * Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features. */ kubernetesResource: outputs.gkehub.v1.KubernetesResourceResponse; /** * Optional. Specific information for a GKE Multi-Cloud cluster. */ multiCloudCluster: outputs.gkehub.v1.MultiCloudClusterResponse; /** * Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster who has no resourceLink is not allowed to use this field, it should have a nil "type" instead. */ onPremCluster: outputs.gkehub.v1.OnPremClusterResponse; } /** * MembershipState describes the state of a Membership resource. */ interface MembershipStateResponse { /** * The current state of the Membership resource. */ code: string; } /** * MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics. */ interface MonitoringConfigResponse { /** * Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., "awsClusters/cluster_1". */ cluster: string; /** * Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID. */ clusterHash: string; /** * Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos. */ kubernetesMetricsPrefix: string; /** * Optional. Location used to report Metrics */ location: string; /** * Optional. Project used to report Metrics */ project: string; } /** * MultiCloudCluster contains information specific to GKE Multi-Cloud clusters. */ interface MultiCloudClusterResponse { /** * If cluster_missing is set then it denotes that API(gkemulticloud.googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists. */ clusterMissing: boolean; /** * Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster */ resourceLink: string; } /** * **Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature. */ interface MultiClusterIngressFeatureSpecResponse { /** * Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar` */ configMembership: string; } /** * NamespaceLifecycleState describes the state of a Namespace resource. */ interface NamespaceLifecycleStateResponse { /** * The current state of the Namespace resource. */ code: string; } /** * OnPremCluster contains information specific to GKE On-Prem clusters. */ interface OnPremClusterResponse { /** * Immutable. Whether the cluster is an admin cluster. */ adminCluster: boolean; /** * If cluster_missing is set then it denotes that API(gkeonprem.googleapis.com) resource for this GKE On-Prem cluster no longer exists. */ clusterMissing: boolean; /** * Immutable. The on prem cluster's type. */ clusterType: string; /** * Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster */ resourceLink: string; } /** * Binauthz policy that applies to this cluster. */ interface PolicyBindingResponse { /** * The relative resource name of the binauthz platform policy to audit. GKE platform policies have the following format: `projects/{project_number}/platforms/gke/policies/{policy_id}`. */ name: string; } /** * Configuration for Policy Controller */ interface PolicyControllerHubConfigResponse { /** * Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether. */ auditIntervalSeconds: string; /** * The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used. */ constraintViolationLimit: string; /** * Map of deployment configs to deployments ("admission", "audit", "mutation'). */ deploymentConfigs: { [key: string]: string; }; /** * The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster. */ exemptableNamespaces: string[]; /** * The install_spec represents the intended state specified by the latest request that mutated install_spec in the feature spec, not the lifecycle state of the feature observed by the Hub feature controller that is reported in the feature state. */ installSpec: string; /** * Logs all denies and dry run failures. */ logDeniesEnabled: boolean; /** * Monitoring specifies the configuration of monitoring. */ monitoring: outputs.gkehub.v1.PolicyControllerMonitoringConfigResponse; /** * Enables the ability to mutate resources using Policy Controller. */ mutationEnabled: boolean; /** * Specifies the desired policy content on the cluster */ policyContent: outputs.gkehub.v1.PolicyControllerPolicyContentSpecResponse; /** * Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated. */ referentialRulesEnabled: boolean; } /** * **Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR. */ interface PolicyControllerMembershipSpecResponse { /** * Policy Controller configuration for the cluster. */ policyControllerHubConfig: outputs.gkehub.v1.PolicyControllerHubConfigResponse; /** * Version of Policy Controller installed. */ version: string; } /** * MonitoringConfig specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"] */ interface PolicyControllerMonitoringConfigResponse { /** * Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export. */ backends: string[]; } /** * PolicyContentSpec defines the user's desired content configuration on the cluster. */ interface PolicyControllerPolicyContentSpecResponse { /** * map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint. */ bundles: { [key: string]: string; }; /** * Configures the installation of the Template Library. */ templateLibrary: outputs.gkehub.v1.PolicyControllerTemplateLibraryConfigResponse; } /** * The config specifying which default library templates to install. */ interface PolicyControllerTemplateLibraryConfigResponse { /** * Configures the manner in which the template library is installed on the cluster. */ installation: string; } /** * RBACRoleBindingLifecycleState describes the state of a RbacRoleBinding resource. */ interface RBACRoleBindingLifecycleStateResponse { /** * The current state of the rbacrolebinding resource. */ code: string; } /** * ResourceManifest represents a single Kubernetes resource to be applied to the cluster. */ interface ResourceManifestResponse { /** * Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster. */ clusterScoped: boolean; /** * YAML manifest of the resource. */ manifest: string; } /** * ResourceOptions represent options for Kubernetes resource generation. */ interface ResourceOptionsResponse { /** * Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected. */ connectVersion: string; /** * Optional. Major version of the Kubernetes cluster. This is only used to determine which version to use for the CustomResourceDefinition resources, `apiextensions/v1beta1` or`apiextensions/v1`. */ k8sVersion: string; /** * Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions <1.16. */ v1beta1Crd: boolean; } /** * Role is the type for Kubernetes roles */ interface RoleResponse { /** * predefined_role is the Kubernetes default role to use */ predefinedRole: string; } /** * ScopeLifecycleState describes the state of a Scope resource. */ interface ScopeLifecycleStateResponse { /** * The current state of the scope resource. */ code: string; } /** * SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API. */ interface SecurityPostureConfigResponse { /** * Sets which mode to use for Security Posture features. */ mode: string; /** * Sets which mode to use for vulnerability scanning. */ vulnerabilityMode: string; } /** * **Service Mesh**: Spec for a single Membership for the servicemesh feature */ interface ServiceMeshMembershipSpecResponse { /** * Deprecated: use `management` instead Enables automatic control plane management. * * @deprecated Deprecated: use `management` instead Enables automatic control plane management. */ controlPlane: string; /** * Enables automatic Service Mesh management. */ management: string; } /** * Status specifies state for the subcomponent. */ interface StatusResponse { /** * Code specifies AppDevExperienceFeature's subcomponent ready state. */ code: string; /** * Description is populated if Code is Failed, explaining why it has failed. */ description: string; } } namespace v1alpha { /** * **Anthos Observability**: Spec */ interface AnthosObservabilityFeatureSpecResponse { /** * Default membership spec for unconfigured memberships */ defaultMembershipSpec: outputs.gkehub.v1alpha.AnthosObservabilityMembershipSpecResponse; } /** * **Anthosobservability**: Per-Membership Feature spec. */ interface AnthosObservabilityMembershipSpecResponse { /** * Use full of metrics rather than optimized metrics. See https://cloud.google.com/anthos/clusters/docs/on-prem/1.8/concepts/logging-and-monitoring#optimized_metrics_default_metrics */ doNotOptimizeMetrics: boolean; /** * Enable collecting and reporting metrics and logs from user apps. */ enableStackdriverOnApplications: boolean; /** * the version of stackdriver operator used by this feature */ version: string; } /** * Spec for App Dev Experience Feature. */ interface AppDevExperienceFeatureSpecResponse { } /** * State for App Dev Exp Feature. */ interface AppDevExperienceFeatureStateResponse { /** * Status of subcomponent that detects configured Service Mesh resources. */ networkingInstallSucceeded: outputs.gkehub.v1alpha.StatusResponse; } /** * ApplianceCluster contains information specific to GDC Edge Appliance Clusters. */ interface ApplianceClusterResponse { /** * Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance */ resourceLink: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.gkehub.v1alpha.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity */ interface AuthorityResponse { /** * An identity provider that reflects the `issuer` in the workload identity pool. */ identityProvider: string; /** * Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters, it must use `location` rather than `zone` for GKE clusters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity). */ issuer: string; /** * Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field. */ oidcJwks: string; /** * The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API. */ workloadIdentityPool: string; } /** * BinaryAuthorizationConfig defines the fleet level configuration of binary authorization feature. */ interface BinaryAuthorizationConfigResponse { /** * Optional. Mode of operation for binauthz policy evaluation. */ evaluationMode: string; /** * Optional. Binauthz policies that apply to this cluster. */ policyBindings: outputs.gkehub.v1alpha.PolicyBindingResponse[]; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.gkehub.v1alpha.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * **Cloud Audit Logging**: Spec for Audit Logging Allowlisting. */ interface CloudAuditLoggingFeatureSpecResponse { /** * Service account that should be allowlisted to send the audit logs; eg cloudauditlogging@gcp-project.iam.gserviceaccount.com. These accounts must already exist, but do not need to have any permissions granted to them. The customer's entitlements will be checked prior to allowlisting (i.e. the customer must be an Anthos customer.) */ allowlistedServiceAccounts: string[]; } /** * **ClusterUpgrade**: The configuration for the fleet-level ClusterUpgrade feature. */ interface ClusterUpgradeFleetSpecResponse { /** * Allow users to override some properties of each GKE upgrade. */ gkeUpgradeOverrides: outputs.gkehub.v1alpha.ClusterUpgradeGKEUpgradeOverrideResponse[]; /** * Post conditions to evaluate to mark an upgrade COMPLETE. Required. */ postConditions: outputs.gkehub.v1alpha.ClusterUpgradePostConditionsResponse; /** * This fleet consumes upgrades that have COMPLETE status code in the upstream fleets. See UpgradeStatus.Code for code definitions. The fleet name should be either fleet project number or id. This is defined as repeated for future proof reasons. Initial implementation will enforce at most one upstream fleet. */ upstreamFleets: string[]; } /** * **ClusterUpgrade**: The state for the fleet-level ClusterUpgrade feature. */ interface ClusterUpgradeFleetStateResponse { /** * This fleets whose upstream_fleets contain the current fleet. The fleet name should be either fleet project number or id. */ downstreamFleets: string[]; /** * Feature state for GKE clusters. */ gkeState: outputs.gkehub.v1alpha.ClusterUpgradeGKEUpgradeFeatureStateResponse; /** * A list of memberships ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel. The membership resource is in the format: `projects/{p}/locations/{l}/membership/{m}`. */ ignored: { [key: string]: string; }; } /** * GKEUpgradeFeatureCondition describes the condition of the feature for GKE clusters at a certain point of time. */ interface ClusterUpgradeGKEUpgradeFeatureConditionResponse { /** * Reason why the feature is in this status. */ reason: string; /** * Status of the condition, one of True, False, Unknown. */ status: string; /** * Type of the condition, for example, "ready". */ type: string; /** * Last timestamp the condition was updated. */ updateTime: string; } /** * GKEUpgradeFeatureState contains feature states for GKE clusters in the scope. */ interface ClusterUpgradeGKEUpgradeFeatureStateResponse { /** * Current conditions of the feature. */ conditions: outputs.gkehub.v1alpha.ClusterUpgradeGKEUpgradeFeatureConditionResponse[]; /** * Upgrade state. It will eventually replace `state`. */ upgradeState: outputs.gkehub.v1alpha.ClusterUpgradeGKEUpgradeStateResponse[]; } /** * Properties of a GKE upgrade that can be overridden by the user. For example, a user can skip soaking by overriding the soaking to 0. */ interface ClusterUpgradeGKEUpgradeOverrideResponse { /** * Post conditions to override for the specified upgrade (name + version). Required. */ postConditions: outputs.gkehub.v1alpha.ClusterUpgradePostConditionsResponse; /** * Which upgrade to override. Required. */ upgrade: outputs.gkehub.v1alpha.ClusterUpgradeGKEUpgradeResponse; } /** * GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade. */ interface ClusterUpgradeGKEUpgradeResponse { /** * Name of the upgrade, e.g., "k8s_control_plane". It should be a valid upgrade name. It must not exceet 99 characters. */ name: string; /** * Version of the upgrade, e.g., "1.22.1-gke.100". It should be a valid version. It must not exceet 99 characters. */ version: string; } /** * GKEUpgradeState is a GKEUpgrade and its state at the scope and fleet level. */ interface ClusterUpgradeGKEUpgradeStateResponse { /** * Number of GKE clusters in each status code. */ stats: { [key: string]: string; }; /** * Status of the upgrade. */ status: outputs.gkehub.v1alpha.ClusterUpgradeUpgradeStatusResponse; /** * Which upgrade to track the state. */ upgrade: outputs.gkehub.v1alpha.ClusterUpgradeGKEUpgradeResponse; } /** * Post conditional checks after an upgrade has been applied on all eligible clusters. */ interface ClusterUpgradePostConditionsResponse { /** * Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days. Required. */ soaking: string; } /** * UpgradeStatus provides status information for each upgrade. */ interface ClusterUpgradeUpgradeStatusResponse { /** * Status code of the upgrade. */ code: string; /** * Reason for this status. */ reason: string; /** * Last timestamp the status was updated. */ updateTime: string; } /** * CommonFeatureSpec contains Hub-wide configuration information */ interface CommonFeatureSpecResponse { /** * Anthos Observability spec */ anthosobservability: outputs.gkehub.v1alpha.AnthosObservabilityFeatureSpecResponse; /** * Appdevexperience specific spec. */ appdevexperience: outputs.gkehub.v1alpha.AppDevExperienceFeatureSpecResponse; /** * Cloud Audit Logging-specific spec. */ cloudauditlogging: outputs.gkehub.v1alpha.CloudAuditLoggingFeatureSpecResponse; /** * ClusterUpgrade (fleet-based) feature spec. */ clusterupgrade: outputs.gkehub.v1alpha.ClusterUpgradeFleetSpecResponse; /** * FleetObservability feature spec. */ fleetobservability: outputs.gkehub.v1alpha.FleetObservabilityFeatureSpecResponse; /** * Multicluster Ingress-specific spec. */ multiclusteringress: outputs.gkehub.v1alpha.MultiClusterIngressFeatureSpecResponse; /** * Namespace Actuation feature spec */ namespaceactuation: outputs.gkehub.v1alpha.NamespaceActuationFeatureSpecResponse; /** * Workload Certificate spec. */ workloadcertificate: outputs.gkehub.v1alpha.FeatureSpecResponse; } /** * CommonFeatureState contains Hub-wide Feature status information. */ interface CommonFeatureStateResponse { /** * Appdevexperience specific state. */ appdevexperience: outputs.gkehub.v1alpha.AppDevExperienceFeatureStateResponse; /** * ClusterUpgrade fleet-level state. */ clusterupgrade: outputs.gkehub.v1alpha.ClusterUpgradeFleetStateResponse; /** * FleetObservability feature state. */ fleetobservability: outputs.gkehub.v1alpha.FleetObservabilityFeatureStateResponse; /** * Namespace Actuation feature state. */ namespaceactuation: outputs.gkehub.v1alpha.NamespaceActuationFeatureStateResponse; /** * Service Mesh-specific state. */ servicemesh: outputs.gkehub.v1alpha.ServiceMeshFeatureStateResponse; /** * The "running state" of the Feature in this Hub. */ state: outputs.gkehub.v1alpha.FeatureStateResponse; } /** * CommonFleetDefaultMemberConfigSpec contains default configuration information for memberships of a fleet */ interface CommonFleetDefaultMemberConfigSpecResponse { /** * Config Management-specific spec. */ configmanagement: outputs.gkehub.v1alpha.ConfigManagementMembershipSpecResponse; /** * Identity Service-specific spec. */ identityservice: outputs.gkehub.v1alpha.IdentityServiceMembershipSpecResponse; /** * Anthos Service Mesh-specific spec */ mesh: outputs.gkehub.v1alpha.ServiceMeshMembershipSpecResponse; /** * Policy Controller spec. */ policycontroller: outputs.gkehub.v1alpha.PolicyControllerMembershipSpecResponse; } /** * Configuration for Binauthz */ interface ConfigManagementBinauthzConfigResponse { /** * Whether binauthz is enabled in this cluster. */ enabled: boolean; } /** * Configuration for Config Sync */ interface ConfigManagementConfigSyncResponse { /** * Set to true to allow the vertical scaling. Defaults to false which disallows vertical scaling. This field is deprecated. * * @deprecated Set to true to allow the vertical scaling. Defaults to false which disallows vertical scaling. This field is deprecated. */ allowVerticalScale: boolean; /** * Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field. */ enabled: boolean; /** * Git repo configuration for the cluster. */ git: outputs.gkehub.v1alpha.ConfigManagementGitConfigResponse; /** * The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. This field is required when automatic Feature management is enabled. */ metricsGcpServiceAccountEmail: string; /** * OCI repo configuration for the cluster */ oci: outputs.gkehub.v1alpha.ConfigManagementOciConfigResponse; /** * Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts. */ preventDrift: boolean; /** * Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode. */ sourceFormat: string; } /** * Git repo configuration for a single cluster. */ interface ConfigManagementGitConfigResponse { /** * The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount. */ gcpServiceAccountEmail: string; /** * URL for the HTTPS proxy to be used when communicating with the Git repo. */ httpsProxy: string; /** * The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository. */ policyDir: string; /** * Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount or none. The validation of this is case-sensitive. Required. */ secretType: string; /** * The branch of the repository to sync from. Default: master. */ syncBranch: string; /** * The URL of the Git repository to use as the source of truth. */ syncRepo: string; /** * Git revision (tag or hash) to check out. Default HEAD. */ syncRev: string; /** * Period in seconds between consecutive syncs. Default: 15. */ syncWaitSecs: string; } /** * Configuration for Hierarchy Controller */ interface ConfigManagementHierarchyControllerConfigResponse { /** * Whether hierarchical resource quota is enabled in this cluster. */ enableHierarchicalResourceQuota: boolean; /** * Whether pod tree labels are enabled in this cluster. */ enablePodTreeLabels: boolean; /** * Whether Hierarchy Controller is enabled in this cluster. */ enabled: boolean; } /** * **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. */ interface ConfigManagementMembershipSpecResponse { /** * Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set. * * @deprecated Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set. */ binauthz: outputs.gkehub.v1alpha.ConfigManagementBinauthzConfigResponse; /** * The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. */ cluster: string; /** * Config Sync configuration for the cluster. */ configSync: outputs.gkehub.v1alpha.ConfigManagementConfigSyncResponse; /** * Hierarchy Controller configuration for the cluster. */ hierarchyController: outputs.gkehub.v1alpha.ConfigManagementHierarchyControllerConfigResponse; /** * Policy Controller configuration for the cluster. */ policyController: outputs.gkehub.v1alpha.ConfigManagementPolicyControllerResponse; /** * Version of ACM installed. */ version: string; } /** * OCI repo configuration for a single cluster */ interface ConfigManagementOciConfigResponse { /** * The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount. */ gcpServiceAccountEmail: string; /** * The absolute path of the directory that contains the local resources. Default: the root directory of the image. */ policyDir: string; /** * Type of secret configured for access to the Git repo. */ secretType: string; /** * The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`. */ syncRepo: string; /** * Period in seconds between consecutive syncs. Default: 15. */ syncWaitSecs: string; } /** * PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"] */ interface ConfigManagementPolicyControllerMonitoringResponse { /** * Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export. */ backends: string[]; } /** * Configuration for Policy Controller */ interface ConfigManagementPolicyControllerResponse { /** * Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether. */ auditIntervalSeconds: string; /** * Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect. */ enabled: boolean; /** * The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster. */ exemptableNamespaces: string[]; /** * Logs all denies and dry run failures. */ logDeniesEnabled: boolean; /** * Monitoring specifies the configuration of monitoring. */ monitoring: outputs.gkehub.v1alpha.ConfigManagementPolicyControllerMonitoringResponse; /** * Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster. */ mutationEnabled: boolean; /** * Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated. */ referentialRulesEnabled: boolean; /** * Installs the default template library along with Policy Controller. */ templateLibraryInstalled: boolean; /** * Last time this membership spec was updated. */ updateTime: string; } /** * DefaultClusterConfig describes the default cluster configurations to be applied to all clusters born-in-fleet. */ interface DefaultClusterConfigResponse { /** * Optional. Enable/Disable binary authorization features for the cluster. */ binaryAuthorizationConfig: outputs.gkehub.v1alpha.BinaryAuthorizationConfigResponse; /** * Enable/Disable Security Posture features for the cluster. */ securityPostureConfig: outputs.gkehub.v1alpha.SecurityPostureConfigResponse; } /** * EdgeCluster contains information specific to Google Edge Clusters. */ interface EdgeClusterResponse { /** * Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster */ resourceLink: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the "running state" of the Feature in the Hub and across Memberships. */ interface FeatureResourceStateResponse { /** * The current state of the Feature resource in the Hub API. */ state: string; } /** * **Workload Certificate**: The Hub-wide input for the WorkloadCertificate feature. */ interface FeatureSpecResponse { /** * Specifies default membership spec. Users can override the default in the member_configs for each member. */ defaultConfig: outputs.gkehub.v1alpha.MembershipSpecResponse; /** * Immutable. Specifies CA configuration. */ provisionGoogleCa: string; } /** * FeatureState describes the high-level state of a Feature. It may be used to describe a Feature's state at the environ-level, or per-membershop, depending on the context. */ interface FeatureStateResponse { /** * The high-level, machine-readable status of this Feature. */ code: string; /** * A human-readable description of the current status. */ description: string; /** * The time this status and any related Feature-specific details were updated. */ updateTime: string; } /** * FleetLifecycleState describes the state of a Fleet resource. */ interface FleetLifecycleStateResponse { /** * The current state of the Fleet resource. */ code: string; } /** * All error details of the fleet observability feature. */ interface FleetObservabilityFeatureErrorResponse { /** * The code of the error. */ code: string; /** * A human-readable description of the current status. */ description: string; } /** * **Fleet Observability**: The Hub-wide input for the FleetObservability feature. */ interface FleetObservabilityFeatureSpecResponse { /** * Specified if fleet logging feature is enabled for the entire fleet. If UNSPECIFIED, fleet logging feature is disabled for the entire fleet. */ loggingConfig: outputs.gkehub.v1alpha.FleetObservabilityLoggingConfigResponse; } /** * **FleetObservability**: Hub-wide Feature for FleetObservability feature. state. */ interface FleetObservabilityFeatureStateResponse { /** * The feature state of default logging. */ logging: outputs.gkehub.v1alpha.FleetObservabilityFleetObservabilityLoggingStateResponse; /** * The feature state of fleet monitoring. */ monitoring: outputs.gkehub.v1alpha.FleetObservabilityFleetObservabilityMonitoringStateResponse; } /** * Base state for fleet observability feature. */ interface FleetObservabilityFleetObservabilityBaseFeatureStateResponse { /** * The high-level, machine-readable status of this Feature. */ code: string; /** * Errors after reconciling the monitoring and logging feature if the code is not OK. */ errors: outputs.gkehub.v1alpha.FleetObservabilityFeatureErrorResponse[]; } /** * Feature state for logging feature. */ interface FleetObservabilityFleetObservabilityLoggingStateResponse { /** * The base feature state of fleet default log. */ defaultLog: outputs.gkehub.v1alpha.FleetObservabilityFleetObservabilityBaseFeatureStateResponse; /** * The base feature state of fleet scope log. */ scopeLog: outputs.gkehub.v1alpha.FleetObservabilityFleetObservabilityBaseFeatureStateResponse; } /** * Feature state for monitoring feature. */ interface FleetObservabilityFleetObservabilityMonitoringStateResponse { /** * The base feature state of fleet monitoring feature. */ state: outputs.gkehub.v1alpha.FleetObservabilityFleetObservabilityBaseFeatureStateResponse; } /** * LoggingConfig defines the configuration for different types of logs. */ interface FleetObservabilityLoggingConfigResponse { /** * Specified if applying the default routing config to logs not specified in other configs. */ defaultConfig: outputs.gkehub.v1alpha.FleetObservabilityRoutingConfigResponse; /** * Specified if applying the routing config to all logs for all fleet scopes. */ fleetScopeLogsConfig: outputs.gkehub.v1alpha.FleetObservabilityRoutingConfigResponse; } /** * RoutingConfig configures the behaviour of fleet logging feature. */ interface FleetObservabilityRoutingConfigResponse { /** * mode configures the logs routing mode. */ mode: string; } /** * GkeCluster contains information specific to GKE clusters. */ interface GkeClusterResponse { /** * If cluster_missing is set then it denotes that the GKE cluster no longer exists in the GKE Control Plane. */ clusterMissing: boolean; /** * Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported. */ resourceLink: string; } /** * Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod. */ interface IdentityServiceAuthMethodResponse { /** * AzureAD specific Configuration. */ azureadConfig: outputs.gkehub.v1alpha.IdentityServiceAzureADConfigResponse; /** * GoogleConfig specific configuration. */ googleConfig: outputs.gkehub.v1alpha.IdentityServiceGoogleConfigResponse; /** * Identifier for auth config. */ name: string; /** * OIDC specific configuration. */ oidcConfig: outputs.gkehub.v1alpha.IdentityServiceOidcConfigResponse; /** * Proxy server address to use for auth method. */ proxy: string; } /** * Configuration for the AzureAD Auth flow. */ interface IdentityServiceAzureADConfigResponse { /** * ID for the registered client application that makes authentication requests to the Azure AD identity provider. */ clientId: string; /** * Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH. */ clientSecret: string; /** * Encrypted AzureAD client secret. */ encryptedClientSecret: string; /** * The redirect URL that kubectl uses for authorization. */ kubectlRedirectUri: string; /** * Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant. */ tenant: string; } /** * Configuration for the Google Plugin Auth flow. */ interface IdentityServiceGoogleConfigResponse { /** * Disable automatic configuration of Google Plugin on supported platforms. */ disable: boolean; } /** * **Anthos Identity Service**: Configuration for a single Membership. */ interface IdentityServiceMembershipSpecResponse { /** * A member may support multiple auth methods. */ authMethods: outputs.gkehub.v1alpha.IdentityServiceAuthMethodResponse[]; } /** * Configuration for OIDC Auth flow. */ interface IdentityServiceOidcConfigResponse { /** * PEM-encoded CA for OIDC provider. */ certificateAuthorityData: string; /** * ID for OIDC client application. */ clientId: string; /** * Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH. */ clientSecret: string; /** * Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console. */ deployCloudConsoleProxy: boolean; /** * Enable access token. */ enableAccessToken: boolean; /** * Encrypted OIDC Client secret */ encryptedClientSecret: string; /** * Comma-separated list of key-value pairs. */ extraParams: string; /** * Prefix to prepend to group name. */ groupPrefix: string; /** * Claim in OIDC ID token that holds group information. */ groupsClaim: string; /** * URI for the OIDC provider. This should point to the level below .well-known/openid-configuration. */ issuerUri: string; /** * Registered redirect uri to redirect users going through OAuth flow using kubectl plugin. */ kubectlRedirectUri: string; /** * Comma-separated list of identifiers. */ scopes: string; /** * Claim in OIDC ID token that holds username. */ userClaim: string; /** * Prefix to prepend to user name. */ userPrefix: string; } /** * KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. */ interface KubernetesMetadataResponse { /** * Kubernetes API server version string as reported by `/version`. */ kubernetesApiServerVersion: string; /** * The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB. */ memoryMb: number; /** * Node count as reported by Kubernetes nodes resources. */ nodeCount: number; /** * Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty. */ nodeProviderId: string; /** * The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers. */ updateTime: string; /** * vCPU count as reported by Kubernetes nodes resources. */ vcpuCount: number; } /** * KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. */ interface KubernetesResourceResponse { /** * The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask. */ connectResources: outputs.gkehub.v1alpha.ResourceManifestResponse[]; /** * Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership. */ membershipCrManifest: string; /** * Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask. */ membershipResources: outputs.gkehub.v1alpha.ResourceManifestResponse[]; /** * Optional. Options for Kubernetes resource generation. */ resourceOptions: outputs.gkehub.v1alpha.ResourceOptionsResponse; } /** * MembershipBindingLifecycleState describes the state of a Binding resource. */ interface MembershipBindingLifecycleStateResponse { /** * The current state of the MembershipBinding resource. */ code: string; } /** * MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. */ interface MembershipEndpointResponse { /** * Optional. Specific information for a GDC Edge Appliance cluster. */ applianceCluster: outputs.gkehub.v1alpha.ApplianceClusterResponse; /** * Optional. Specific information for a Google Edge cluster. */ edgeCluster: outputs.gkehub.v1alpha.EdgeClusterResponse; /** * Optional. Specific information for a GKE-on-GCP cluster. */ gkeCluster: outputs.gkehub.v1alpha.GkeClusterResponse; /** * Whether the lifecycle of this membership is managed by a google cluster platform service. */ googleManaged: boolean; /** * Useful Kubernetes-specific metadata. */ kubernetesMetadata: outputs.gkehub.v1alpha.KubernetesMetadataResponse; /** * Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features. */ kubernetesResource: outputs.gkehub.v1alpha.KubernetesResourceResponse; /** * Optional. Specific information for a GKE Multi-Cloud cluster. */ multiCloudCluster: outputs.gkehub.v1alpha.MultiCloudClusterResponse; /** * Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster who has no resourceLink is not allowed to use this field, it should have a nil "type" instead. */ onPremCluster: outputs.gkehub.v1alpha.OnPremClusterResponse; } /** * **Workload Certificate**: The membership-specific input for WorkloadCertificate feature. */ interface MembershipSpecResponse { /** * Specifies workload certificate management. */ certificateManagement: string; } /** * MembershipState describes the state of a Membership resource. */ interface MembershipStateResponse { /** * The current state of the Membership resource. */ code: string; } /** * MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics. */ interface MonitoringConfigResponse { /** * Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., "awsClusters/cluster_1". */ cluster: string; /** * Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID. */ clusterHash: string; /** * Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos. */ kubernetesMetricsPrefix: string; /** * Optional. Location used to report Metrics */ location: string; /** * Optional. Project used to report Metrics */ project: string; } /** * MultiCloudCluster contains information specific to GKE Multi-Cloud clusters. */ interface MultiCloudClusterResponse { /** * If cluster_missing is set then it denotes that API(gkemulticloud.googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists. */ clusterMissing: boolean; /** * Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster */ resourceLink: string; } /** * **Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature. */ interface MultiClusterIngressFeatureSpecResponse { /** * Deprecated: This field will be ignored and should not be set. Customer's billing structure. * * @deprecated Deprecated: This field will be ignored and should not be set. Customer's billing structure. */ billing: string; /** * Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar` */ configMembership: string; } /** * An empty spec for actuation feature. This is required since Feature proto requires a spec. */ interface NamespaceActuationFeatureSpecResponse { /** * actuation_mode controls the behavior of the controller */ actuationMode: string; } /** * NamespaceActuation Feature State. */ interface NamespaceActuationFeatureStateResponse { } /** * NamespaceLifecycleState describes the state of a Namespace resource. */ interface NamespaceLifecycleStateResponse { /** * The current state of the Namespace resource. */ code: string; } /** * OnPremCluster contains information specific to GKE On-Prem clusters. */ interface OnPremClusterResponse { /** * Immutable. Whether the cluster is an admin cluster. */ adminCluster: boolean; /** * If cluster_missing is set then it denotes that API(gkeonprem.googleapis.com) resource for this GKE On-Prem cluster no longer exists. */ clusterMissing: boolean; /** * Immutable. The on prem cluster's type. */ clusterType: string; /** * Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster */ resourceLink: string; } /** * Binauthz policy that applies to this cluster. */ interface PolicyBindingResponse { /** * The relative resource name of the binauthz platform policy to audit. GKE platform policies have the following format: `projects/{project_number}/platforms/gke/policies/{policy_id}`. */ name: string; } /** * Configuration for Policy Controller */ interface PolicyControllerHubConfigResponse { /** * Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether. */ auditIntervalSeconds: string; /** * The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used. */ constraintViolationLimit: string; /** * Map of deployment configs to deployments ("admission", "audit", "mutation'). */ deploymentConfigs: { [key: string]: string; }; /** * The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster. */ exemptableNamespaces: string[]; /** * The install_spec represents the intended state specified by the latest request that mutated install_spec in the feature spec, not the lifecycle state of the feature observed by the Hub feature controller that is reported in the feature state. */ installSpec: string; /** * Logs all denies and dry run failures. */ logDeniesEnabled: boolean; /** * Monitoring specifies the configuration of monitoring. */ monitoring: outputs.gkehub.v1alpha.PolicyControllerMonitoringConfigResponse; /** * Enables the ability to mutate resources using Policy Controller. */ mutationEnabled: boolean; /** * Specifies the desired policy content on the cluster */ policyContent: outputs.gkehub.v1alpha.PolicyControllerPolicyContentSpecResponse; /** * Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated. */ referentialRulesEnabled: boolean; } /** * **Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR. */ interface PolicyControllerMembershipSpecResponse { /** * Policy Controller configuration for the cluster. */ policyControllerHubConfig: outputs.gkehub.v1alpha.PolicyControllerHubConfigResponse; /** * Version of Policy Controller installed. */ version: string; } /** * MonitoringConfig specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"] */ interface PolicyControllerMonitoringConfigResponse { /** * Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export. */ backends: string[]; } /** * PolicyContentSpec defines the user's desired content configuration on the cluster. */ interface PolicyControllerPolicyContentSpecResponse { /** * map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint. */ bundles: { [key: string]: string; }; /** * Configures the installation of the Template Library. */ templateLibrary: outputs.gkehub.v1alpha.PolicyControllerTemplateLibraryConfigResponse; } /** * The config specifying which default library templates to install. */ interface PolicyControllerTemplateLibraryConfigResponse { /** * Configures the manner in which the template library is installed on the cluster. */ installation: string; } /** * RBACRoleBindingLifecycleState describes the state of a RbacRoleBinding resource. */ interface RBACRoleBindingLifecycleStateResponse { /** * The current state of the rbacrolebinding resource. */ code: string; } /** * ResourceManifest represents a single Kubernetes resource to be applied to the cluster. */ interface ResourceManifestResponse { /** * Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster. */ clusterScoped: boolean; /** * YAML manifest of the resource. */ manifest: string; } /** * ResourceOptions represent options for Kubernetes resource generation. */ interface ResourceOptionsResponse { /** * Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected. */ connectVersion: string; /** * Optional. Major version of the Kubernetes cluster. This is only used to determine which version to use for the CustomResourceDefinition resources, `apiextensions/v1beta1` or`apiextensions/v1`. */ k8sVersion: string; /** * Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions <1.16. */ v1beta1Crd: boolean; } /** * Role is the type for Kubernetes roles */ interface RoleResponse { /** * predefined_role is the Kubernetes default role to use */ predefinedRole: string; } /** * ScopeLifecycleState describes the state of a Scope resource. */ interface ScopeLifecycleStateResponse { /** * The current state of the scope resource. */ code: string; } /** * SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API. */ interface SecurityPostureConfigResponse { /** * Sets which mode to use for Security Posture features. */ mode: string; /** * Sets which mode to use for vulnerability scanning. */ vulnerabilityMode: string; } /** * AnalysisMessageBase describes some common information that is needed for all messages. */ interface ServiceMeshAnalysisMessageBaseResponse { /** * A url pointing to the Service Mesh or Istio documentation for this specific error type. */ documentationUrl: string; /** * Represents how severe a message is. */ level: string; /** * Represents the specific type of a message. */ type: outputs.gkehub.v1alpha.ServiceMeshTypeResponse; } /** * AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration. */ interface ServiceMeshAnalysisMessageResponse { /** * A UI can combine these args with a template (based on message_base.type) to produce an internationalized message. */ args: { [key: string]: string; }; /** * A human readable description of what the error means. It is suitable for non-internationalize display purposes. */ description: string; /** * Details common to all types of Istio and ServiceMesh analysis messages. */ messageBase: outputs.gkehub.v1alpha.ServiceMeshAnalysisMessageBaseResponse; /** * A list of strings specifying the resource identifiers that were the cause of message generation. A "path" here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster */ resourcePaths: string[]; } /** * **Service Mesh**: State for the whole Hub, as analyzed by the Service Mesh Hub Controller. */ interface ServiceMeshFeatureStateResponse { /** * Results of running Service Mesh analyzers. */ analysisMessages: outputs.gkehub.v1alpha.ServiceMeshAnalysisMessageResponse[]; } /** * **Service Mesh**: Spec for a single Membership for the servicemesh feature */ interface ServiceMeshMembershipSpecResponse { /** * Deprecated: use `management` instead Enables automatic control plane management. * * @deprecated Deprecated: use `management` instead Enables automatic control plane management. */ controlPlane: string; /** * Determines which release channel to use for default injection and service mesh APIs. */ defaultChannel: string; /** * Enables automatic Service Mesh management. */ management: string; } /** * A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type */ interface ServiceMeshTypeResponse { /** * A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. "IST0001" is mapped to the "InternalError" message type.) */ code: string; /** * A human-readable name for the message type. e.g. "InternalError", "PodMissingProxy". This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.) */ displayName: string; } /** * Status specifies state for the subcomponent. */ interface StatusResponse { /** * Code specifies AppDevExperienceFeature's subcomponent ready state. */ code: string; /** * Description is populated if Code is Failed, explaining why it has failed. */ description: string; } } namespace v1alpha2 { /** * ApplianceCluster contains information specific to GDC Edge Appliance Clusters. */ interface ApplianceClusterResponse { /** * Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance */ resourceLink: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.gkehub.v1alpha2.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity */ interface AuthorityResponse { /** * An identity provider that reflects the `issuer` in the workload identity pool. */ identityProvider: string; /** * Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer, unless `oidc_jwks` is set. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity). */ issuer: string; /** * Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field. */ oidcJwks: string; /** * The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API. */ workloadIdentityPool: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.gkehub.v1alpha2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * EdgeCluster contains information specific to Google Edge Clusters. */ interface EdgeClusterResponse { /** * Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster */ resourceLink: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * GkeCluster contains information specific to GKE clusters. */ interface GkeClusterResponse { /** * If cluster_missing is set then it denotes that the GKE cluster no longer exists in the GKE Control Plane. */ clusterMissing: boolean; /** * Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported. */ resourceLink: string; } /** * KubernetesMetadata provides informational metadata for Memberships that are created from Kubernetes Endpoints (currently, these are equivalent to Kubernetes clusters). */ interface KubernetesMetadataResponse { /** * Kubernetes API server version string as reported by '/version'. */ kubernetesApiServerVersion: string; /** * The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB. */ memoryMb: number; /** * Node count as reported by Kubernetes nodes resources. */ nodeCount: number; /** * Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty. */ nodeProviderId: string; /** * The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers. */ updateTime: string; /** * vCPU count as reported by Kubernetes nodes resources. */ vcpuCount: number; } /** * KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. */ interface KubernetesResourceResponse { /** * The Kubernetes resources for installing the GKE Connect agent. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask. */ connectResources: outputs.gkehub.v1alpha2.ResourceManifestResponse[]; /** * Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during Create or Update, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership. */ membershipCrManifest: string; /** * Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask. */ membershipResources: outputs.gkehub.v1alpha2.ResourceManifestResponse[]; /** * Optional. Options for Kubernetes resource generation. */ resourceOptions: outputs.gkehub.v1alpha2.ResourceOptionsResponse; } /** * MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. */ interface MembershipEndpointResponse { /** * Optional. Specific information for a GDC Edge Appliance cluster. */ applianceCluster: outputs.gkehub.v1alpha2.ApplianceClusterResponse; /** * Optional. Specific information for a Google Edge cluster. */ edgeCluster: outputs.gkehub.v1alpha2.EdgeClusterResponse; /** * Optional. Specific information for a GKE-on-GCP cluster. */ gkeCluster: outputs.gkehub.v1alpha2.GkeClusterResponse; /** * Useful Kubernetes-specific metadata. */ kubernetesMetadata: outputs.gkehub.v1alpha2.KubernetesMetadataResponse; /** * Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features. */ kubernetesResource: outputs.gkehub.v1alpha2.KubernetesResourceResponse; /** * Optional. Specific information for a GKE Multi-Cloud cluster. */ multiCloudCluster: outputs.gkehub.v1alpha2.MultiCloudClusterResponse; /** * Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster who has no resourceLink is not allowed to use this field, it should have a nil "type" instead. */ onPremCluster: outputs.gkehub.v1alpha2.OnPremClusterResponse; } /** * MembershipState describes the state of a Membership resource. */ interface MembershipStateResponse { /** * The current state of the Membership resource. */ code: string; } /** * MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics. */ interface MonitoringConfigResponse { /** * Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., "awsClusters/cluster_1". */ cluster: string; /** * Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID. */ clusterHash: string; /** * Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos. */ kubernetesMetricsPrefix: string; /** * Optional. Location used to report Metrics */ location: string; /** * Optional. Project used to report Metrics */ project: string; } /** * MultiCloudCluster contains information specific to GKE Multi-Cloud clusters. */ interface MultiCloudClusterResponse { /** * If cluster_missing is set then it denotes that API(gkemulticloud.googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists. */ clusterMissing: boolean; /** * Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster */ resourceLink: string; } /** * OnPremCluster contains information specific to GKE On-Prem clusters. */ interface OnPremClusterResponse { /** * Immutable. Whether the cluster is an admin cluster. */ adminCluster: boolean; /** * If cluster_missing is set then it denotes that API(gkeonprem.googleapis.com) resource for this GKE On-Prem cluster no longer exists. */ clusterMissing: boolean; /** * Immutable. The on prem cluster's type. */ clusterType: string; /** * Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster */ resourceLink: string; } /** * ResourceManifest represents a single Kubernetes resource to be applied to the cluster. */ interface ResourceManifestResponse { /** * Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster. */ clusterScoped: boolean; /** * YAML manifest of the resource. */ manifest: string; } /** * ResourceOptions represent options for Kubernetes resource generation. */ interface ResourceOptionsResponse { /** * Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected. */ connectVersion: string; /** * Optional. Major version of the Kubernetes cluster. This is only used to determine which version to use for the CustomResourceDefinition resources, `apiextensions/v1beta1` or`apiextensions/v1`. */ k8sVersion: string; /** * Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions <1.16. */ v1beta1Crd: boolean; } } namespace v1beta { /** * **Anthos Observability**: Spec */ interface AnthosObservabilityFeatureSpecResponse { /** * Default membership spec for unconfigured memberships */ defaultMembershipSpec: outputs.gkehub.v1beta.AnthosObservabilityMembershipSpecResponse; } /** * **Anthosobservability**: Per-Membership Feature spec. */ interface AnthosObservabilityMembershipSpecResponse { /** * Use full of metrics rather than optimized metrics. See https://cloud.google.com/anthos/clusters/docs/on-prem/1.8/concepts/logging-and-monitoring#optimized_metrics_default_metrics */ doNotOptimizeMetrics: boolean; /** * Enable collecting and reporting metrics and logs from user apps. */ enableStackdriverOnApplications: boolean; /** * the version of stackdriver operator used by this feature */ version: string; } /** * Spec for App Dev Experience Feature. */ interface AppDevExperienceFeatureSpecResponse { } /** * State for App Dev Exp Feature. */ interface AppDevExperienceFeatureStateResponse { /** * Status of subcomponent that detects configured Service Mesh resources. */ networkingInstallSucceeded: outputs.gkehub.v1beta.StatusResponse; } /** * ApplianceCluster contains information specific to GDC Edge Appliance Clusters. */ interface ApplianceClusterResponse { /** * Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance */ resourceLink: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.gkehub.v1beta.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity */ interface AuthorityResponse { /** * An identity provider that reflects the `issuer` in the workload identity pool. */ identityProvider: string; /** * Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters, it must use `location` rather than `zone` for GKE clusters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity). */ issuer: string; /** * Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field. */ oidcJwks: string; /** * The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API. */ workloadIdentityPool: string; } /** * BinaryAuthorizationConfig defines the fleet level configuration of binary authorization feature. */ interface BinaryAuthorizationConfigResponse { /** * Optional. Mode of operation for binauthz policy evaluation. */ evaluationMode: string; /** * Optional. Binauthz policies that apply to this cluster. */ policyBindings: outputs.gkehub.v1beta.PolicyBindingResponse[]; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.gkehub.v1beta.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * **ClusterUpgrade**: The configuration for the fleet-level ClusterUpgrade feature. */ interface ClusterUpgradeFleetSpecResponse { /** * Allow users to override some properties of each GKE upgrade. */ gkeUpgradeOverrides: outputs.gkehub.v1beta.ClusterUpgradeGKEUpgradeOverrideResponse[]; /** * Post conditions to evaluate to mark an upgrade COMPLETE. Required. */ postConditions: outputs.gkehub.v1beta.ClusterUpgradePostConditionsResponse; /** * This fleet consumes upgrades that have COMPLETE status code in the upstream fleets. See UpgradeStatus.Code for code definitions. The fleet name should be either fleet project number or id. This is defined as repeated for future proof reasons. Initial implementation will enforce at most one upstream fleet. */ upstreamFleets: string[]; } /** * **ClusterUpgrade**: The state for the fleet-level ClusterUpgrade feature. */ interface ClusterUpgradeFleetStateResponse { /** * This fleets whose upstream_fleets contain the current fleet. The fleet name should be either fleet project number or id. */ downstreamFleets: string[]; /** * Feature state for GKE clusters. */ gkeState: outputs.gkehub.v1beta.ClusterUpgradeGKEUpgradeFeatureStateResponse; /** * A list of memberships ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel. The membership resource is in the format: `projects/{p}/locations/{l}/membership/{m}`. */ ignored: { [key: string]: string; }; } /** * GKEUpgradeFeatureCondition describes the condition of the feature for GKE clusters at a certain point of time. */ interface ClusterUpgradeGKEUpgradeFeatureConditionResponse { /** * Reason why the feature is in this status. */ reason: string; /** * Status of the condition, one of True, False, Unknown. */ status: string; /** * Type of the condition, for example, "ready". */ type: string; /** * Last timestamp the condition was updated. */ updateTime: string; } /** * GKEUpgradeFeatureState contains feature states for GKE clusters in the scope. */ interface ClusterUpgradeGKEUpgradeFeatureStateResponse { /** * Current conditions of the feature. */ conditions: outputs.gkehub.v1beta.ClusterUpgradeGKEUpgradeFeatureConditionResponse[]; /** * Upgrade state. It will eventually replace `state`. */ upgradeState: outputs.gkehub.v1beta.ClusterUpgradeGKEUpgradeStateResponse[]; } /** * Properties of a GKE upgrade that can be overridden by the user. For example, a user can skip soaking by overriding the soaking to 0. */ interface ClusterUpgradeGKEUpgradeOverrideResponse { /** * Post conditions to override for the specified upgrade (name + version). Required. */ postConditions: outputs.gkehub.v1beta.ClusterUpgradePostConditionsResponse; /** * Which upgrade to override. Required. */ upgrade: outputs.gkehub.v1beta.ClusterUpgradeGKEUpgradeResponse; } /** * GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade. */ interface ClusterUpgradeGKEUpgradeResponse { /** * Name of the upgrade, e.g., "k8s_control_plane". It should be a valid upgrade name. It must not exceet 99 characters. */ name: string; /** * Version of the upgrade, e.g., "1.22.1-gke.100". It should be a valid version. It must not exceet 99 characters. */ version: string; } /** * GKEUpgradeState is a GKEUpgrade and its state at the scope and fleet level. */ interface ClusterUpgradeGKEUpgradeStateResponse { /** * Number of GKE clusters in each status code. */ stats: { [key: string]: string; }; /** * Status of the upgrade. */ status: outputs.gkehub.v1beta.ClusterUpgradeUpgradeStatusResponse; /** * Which upgrade to track the state. */ upgrade: outputs.gkehub.v1beta.ClusterUpgradeGKEUpgradeResponse; } /** * Post conditional checks after an upgrade has been applied on all eligible clusters. */ interface ClusterUpgradePostConditionsResponse { /** * Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days. Required. */ soaking: string; } /** * UpgradeStatus provides status information for each upgrade. */ interface ClusterUpgradeUpgradeStatusResponse { /** * Status code of the upgrade. */ code: string; /** * Reason for this status. */ reason: string; /** * Last timestamp the status was updated. */ updateTime: string; } /** * CommonFeatureSpec contains Hub-wide configuration information */ interface CommonFeatureSpecResponse { /** * Anthos Observability spec */ anthosobservability: outputs.gkehub.v1beta.AnthosObservabilityFeatureSpecResponse; /** * Appdevexperience specific spec. */ appdevexperience: outputs.gkehub.v1beta.AppDevExperienceFeatureSpecResponse; /** * ClusterUpgrade (fleet-based) feature spec. */ clusterupgrade: outputs.gkehub.v1beta.ClusterUpgradeFleetSpecResponse; /** * FleetObservability feature spec. */ fleetobservability: outputs.gkehub.v1beta.FleetObservabilityFeatureSpecResponse; /** * Multicluster Ingress-specific spec. */ multiclusteringress: outputs.gkehub.v1beta.MultiClusterIngressFeatureSpecResponse; } /** * CommonFeatureState contains Hub-wide Feature status information. */ interface CommonFeatureStateResponse { /** * Appdevexperience specific state. */ appdevexperience: outputs.gkehub.v1beta.AppDevExperienceFeatureStateResponse; /** * ClusterUpgrade fleet-level state. */ clusterupgrade: outputs.gkehub.v1beta.ClusterUpgradeFleetStateResponse; /** * FleetObservability feature state. */ fleetobservability: outputs.gkehub.v1beta.FleetObservabilityFeatureStateResponse; /** * The "running state" of the Feature in this Hub. */ state: outputs.gkehub.v1beta.FeatureStateResponse; } /** * CommonFleetDefaultMemberConfigSpec contains default configuration information for memberships of a fleet */ interface CommonFleetDefaultMemberConfigSpecResponse { /** * Config Management-specific spec. */ configmanagement: outputs.gkehub.v1beta.ConfigManagementMembershipSpecResponse; /** * Identity Service-specific spec. */ identityservice: outputs.gkehub.v1beta.IdentityServiceMembershipSpecResponse; /** * Anthos Service Mesh-specific spec */ mesh: outputs.gkehub.v1beta.ServiceMeshMembershipSpecResponse; /** * Policy Controller spec. */ policycontroller: outputs.gkehub.v1beta.PolicyControllerMembershipSpecResponse; } /** * Configuration for Binauthz */ interface ConfigManagementBinauthzConfigResponse { /** * Whether binauthz is enabled in this cluster. */ enabled: boolean; } /** * Configuration for Config Sync */ interface ConfigManagementConfigSyncResponse { /** * Set to true to allow the vertical scaling. Defaults to false which disallows vertical scaling. This field is deprecated. * * @deprecated Set to true to allow the vertical scaling. Defaults to false which disallows vertical scaling. This field is deprecated. */ allowVerticalScale: boolean; /** * Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field. */ enabled: boolean; /** * Git repo configuration for the cluster. */ git: outputs.gkehub.v1beta.ConfigManagementGitConfigResponse; /** * The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. This field is required when automatic Feature management is enabled. */ metricsGcpServiceAccountEmail: string; /** * OCI repo configuration for the cluster */ oci: outputs.gkehub.v1beta.ConfigManagementOciConfigResponse; /** * Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts. */ preventDrift: boolean; /** * Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode. */ sourceFormat: string; } /** * Git repo configuration for a single cluster. */ interface ConfigManagementGitConfigResponse { /** * The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount. */ gcpServiceAccountEmail: string; /** * URL for the HTTPS proxy to be used when communicating with the Git repo. */ httpsProxy: string; /** * The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository. */ policyDir: string; /** * Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount or none. The validation of this is case-sensitive. Required. */ secretType: string; /** * The branch of the repository to sync from. Default: master. */ syncBranch: string; /** * The URL of the Git repository to use as the source of truth. */ syncRepo: string; /** * Git revision (tag or hash) to check out. Default HEAD. */ syncRev: string; /** * Period in seconds between consecutive syncs. Default: 15. */ syncWaitSecs: string; } /** * Configuration for Hierarchy Controller */ interface ConfigManagementHierarchyControllerConfigResponse { /** * Whether hierarchical resource quota is enabled in this cluster. */ enableHierarchicalResourceQuota: boolean; /** * Whether pod tree labels are enabled in this cluster. */ enablePodTreeLabels: boolean; /** * Whether Hierarchy Controller is enabled in this cluster. */ enabled: boolean; } /** * **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. */ interface ConfigManagementMembershipSpecResponse { /** * Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set. * * @deprecated Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set. */ binauthz: outputs.gkehub.v1beta.ConfigManagementBinauthzConfigResponse; /** * The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. */ cluster: string; /** * Config Sync configuration for the cluster. */ configSync: outputs.gkehub.v1beta.ConfigManagementConfigSyncResponse; /** * Hierarchy Controller configuration for the cluster. */ hierarchyController: outputs.gkehub.v1beta.ConfigManagementHierarchyControllerConfigResponse; /** * Policy Controller configuration for the cluster. */ policyController: outputs.gkehub.v1beta.ConfigManagementPolicyControllerResponse; /** * Version of ACM installed. */ version: string; } /** * OCI repo configuration for a single cluster */ interface ConfigManagementOciConfigResponse { /** * The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount. */ gcpServiceAccountEmail: string; /** * The absolute path of the directory that contains the local resources. Default: the root directory of the image. */ policyDir: string; /** * Type of secret configured for access to the Git repo. */ secretType: string; /** * The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`. */ syncRepo: string; /** * Period in seconds between consecutive syncs. Default: 15. */ syncWaitSecs: string; } /** * PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"] */ interface ConfigManagementPolicyControllerMonitoringResponse { /** * Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export. */ backends: string[]; } /** * Configuration for Policy Controller */ interface ConfigManagementPolicyControllerResponse { /** * Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether. */ auditIntervalSeconds: string; /** * Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect. */ enabled: boolean; /** * The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster. */ exemptableNamespaces: string[]; /** * Logs all denies and dry run failures. */ logDeniesEnabled: boolean; /** * Monitoring specifies the configuration of monitoring. */ monitoring: outputs.gkehub.v1beta.ConfigManagementPolicyControllerMonitoringResponse; /** * Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster. */ mutationEnabled: boolean; /** * Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated. */ referentialRulesEnabled: boolean; /** * Installs the default template library along with Policy Controller. */ templateLibraryInstalled: boolean; /** * Last time this membership spec was updated. */ updateTime: string; } /** * DefaultClusterConfig describes the default cluster configurations to be applied to all clusters born-in-fleet. */ interface DefaultClusterConfigResponse { /** * Optional. Enable/Disable binary authorization features for the cluster. */ binaryAuthorizationConfig: outputs.gkehub.v1beta.BinaryAuthorizationConfigResponse; /** * Enable/Disable Security Posture features for the cluster. */ securityPostureConfig: outputs.gkehub.v1beta.SecurityPostureConfigResponse; } /** * EdgeCluster contains information specific to Google Edge Clusters. */ interface EdgeClusterResponse { /** * Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster */ resourceLink: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the "running state" of the Feature in the Hub and across Memberships. */ interface FeatureResourceStateResponse { /** * The current state of the Feature resource in the Hub API. */ state: string; } /** * FeatureState describes the high-level state of a Feature. It may be used to describe a Feature's state at the environ-level, or per-membershop, depending on the context. */ interface FeatureStateResponse { /** * The high-level, machine-readable status of this Feature. */ code: string; /** * A human-readable description of the current status. */ description: string; /** * The time this status and any related Feature-specific details were updated. */ updateTime: string; } /** * FleetLifecycleState describes the state of a Fleet resource. */ interface FleetLifecycleStateResponse { /** * The current state of the Fleet resource. */ code: string; } /** * All error details of the fleet observability feature. */ interface FleetObservabilityFeatureErrorResponse { /** * The code of the error. */ code: string; /** * A human-readable description of the current status. */ description: string; } /** * **Fleet Observability**: The Hub-wide input for the FleetObservability feature. */ interface FleetObservabilityFeatureSpecResponse { /** * Specified if fleet logging feature is enabled for the entire fleet. If UNSPECIFIED, fleet logging feature is disabled for the entire fleet. */ loggingConfig: outputs.gkehub.v1beta.FleetObservabilityLoggingConfigResponse; } /** * **FleetObservability**: Hub-wide Feature for FleetObservability feature. state. */ interface FleetObservabilityFeatureStateResponse { /** * The feature state of default logging. */ logging: outputs.gkehub.v1beta.FleetObservabilityFleetObservabilityLoggingStateResponse; /** * The feature state of fleet monitoring. */ monitoring: outputs.gkehub.v1beta.FleetObservabilityFleetObservabilityMonitoringStateResponse; } /** * Base state for fleet observability feature. */ interface FleetObservabilityFleetObservabilityBaseFeatureStateResponse { /** * The high-level, machine-readable status of this Feature. */ code: string; /** * Errors after reconciling the monitoring and logging feature if the code is not OK. */ errors: outputs.gkehub.v1beta.FleetObservabilityFeatureErrorResponse[]; } /** * Feature state for logging feature. */ interface FleetObservabilityFleetObservabilityLoggingStateResponse { /** * The base feature state of fleet default log. */ defaultLog: outputs.gkehub.v1beta.FleetObservabilityFleetObservabilityBaseFeatureStateResponse; /** * The base feature state of fleet scope log. */ scopeLog: outputs.gkehub.v1beta.FleetObservabilityFleetObservabilityBaseFeatureStateResponse; } /** * Feature state for monitoring feature. */ interface FleetObservabilityFleetObservabilityMonitoringStateResponse { /** * The base feature state of fleet monitoring feature. */ state: outputs.gkehub.v1beta.FleetObservabilityFleetObservabilityBaseFeatureStateResponse; } /** * LoggingConfig defines the configuration for different types of logs. */ interface FleetObservabilityLoggingConfigResponse { /** * Specified if applying the default routing config to logs not specified in other configs. */ defaultConfig: outputs.gkehub.v1beta.FleetObservabilityRoutingConfigResponse; /** * Specified if applying the routing config to all logs for all fleet scopes. */ fleetScopeLogsConfig: outputs.gkehub.v1beta.FleetObservabilityRoutingConfigResponse; } /** * RoutingConfig configures the behaviour of fleet logging feature. */ interface FleetObservabilityRoutingConfigResponse { /** * mode configures the logs routing mode. */ mode: string; } /** * GkeCluster contains information specific to GKE clusters. */ interface GkeClusterResponse { /** * If cluster_missing is set then it denotes that the GKE cluster no longer exists in the GKE Control Plane. */ clusterMissing: boolean; /** * Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported. */ resourceLink: string; } /** * Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod. */ interface IdentityServiceAuthMethodResponse { /** * AzureAD specific Configuration. */ azureadConfig: outputs.gkehub.v1beta.IdentityServiceAzureADConfigResponse; /** * GoogleConfig specific configuration. */ googleConfig: outputs.gkehub.v1beta.IdentityServiceGoogleConfigResponse; /** * Identifier for auth config. */ name: string; /** * OIDC specific configuration. */ oidcConfig: outputs.gkehub.v1beta.IdentityServiceOidcConfigResponse; /** * Proxy server address to use for auth method. */ proxy: string; } /** * Configuration for the AzureAD Auth flow. */ interface IdentityServiceAzureADConfigResponse { /** * ID for the registered client application that makes authentication requests to the Azure AD identity provider. */ clientId: string; /** * Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH. */ clientSecret: string; /** * Encrypted AzureAD client secret. */ encryptedClientSecret: string; /** * The redirect URL that kubectl uses for authorization. */ kubectlRedirectUri: string; /** * Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant. */ tenant: string; } /** * Configuration for the Google Plugin Auth flow. */ interface IdentityServiceGoogleConfigResponse { /** * Disable automatic configuration of Google Plugin on supported platforms. */ disable: boolean; } /** * **Anthos Identity Service**: Configuration for a single Membership. */ interface IdentityServiceMembershipSpecResponse { /** * A member may support multiple auth methods. */ authMethods: outputs.gkehub.v1beta.IdentityServiceAuthMethodResponse[]; } /** * Configuration for OIDC Auth flow. */ interface IdentityServiceOidcConfigResponse { /** * PEM-encoded CA for OIDC provider. */ certificateAuthorityData: string; /** * ID for OIDC client application. */ clientId: string; /** * Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH. */ clientSecret: string; /** * Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console. */ deployCloudConsoleProxy: boolean; /** * Enable access token. */ enableAccessToken: boolean; /** * Encrypted OIDC Client secret */ encryptedClientSecret: string; /** * Comma-separated list of key-value pairs. */ extraParams: string; /** * Prefix to prepend to group name. */ groupPrefix: string; /** * Claim in OIDC ID token that holds group information. */ groupsClaim: string; /** * URI for the OIDC provider. This should point to the level below .well-known/openid-configuration. */ issuerUri: string; /** * Registered redirect uri to redirect users going through OAuth flow using kubectl plugin. */ kubectlRedirectUri: string; /** * Comma-separated list of identifiers. */ scopes: string; /** * Claim in OIDC ID token that holds username. */ userClaim: string; /** * Prefix to prepend to user name. */ userPrefix: string; } /** * KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. */ interface KubernetesMetadataResponse { /** * Kubernetes API server version string as reported by `/version`. */ kubernetesApiServerVersion: string; /** * The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB. */ memoryMb: number; /** * Node count as reported by Kubernetes nodes resources. */ nodeCount: number; /** * Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty. */ nodeProviderId: string; /** * The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers. */ updateTime: string; /** * vCPU count as reported by Kubernetes nodes resources. */ vcpuCount: number; } /** * KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. */ interface KubernetesResourceResponse { /** * The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask. */ connectResources: outputs.gkehub.v1beta.ResourceManifestResponse[]; /** * Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership. */ membershipCrManifest: string; /** * Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask. */ membershipResources: outputs.gkehub.v1beta.ResourceManifestResponse[]; /** * Optional. Options for Kubernetes resource generation. */ resourceOptions: outputs.gkehub.v1beta.ResourceOptionsResponse; } /** * MembershipBindingLifecycleState describes the state of a Binding resource. */ interface MembershipBindingLifecycleStateResponse { /** * The current state of the MembershipBinding resource. */ code: string; } /** * MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. */ interface MembershipEndpointResponse { /** * Optional. Specific information for a GDC Edge Appliance cluster. */ applianceCluster: outputs.gkehub.v1beta.ApplianceClusterResponse; /** * Optional. Specific information for a Google Edge cluster. */ edgeCluster: outputs.gkehub.v1beta.EdgeClusterResponse; /** * Optional. Specific information for a GKE-on-GCP cluster. */ gkeCluster: outputs.gkehub.v1beta.GkeClusterResponse; /** * Whether the lifecycle of this membership is managed by a google cluster platform service. */ googleManaged: boolean; /** * Useful Kubernetes-specific metadata. */ kubernetesMetadata: outputs.gkehub.v1beta.KubernetesMetadataResponse; /** * Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features. */ kubernetesResource: outputs.gkehub.v1beta.KubernetesResourceResponse; /** * Optional. Specific information for a GKE Multi-Cloud cluster. */ multiCloudCluster: outputs.gkehub.v1beta.MultiCloudClusterResponse; /** * Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster who has no resourceLink is not allowed to use this field, it should have a nil "type" instead. */ onPremCluster: outputs.gkehub.v1beta.OnPremClusterResponse; } /** * MembershipState describes the state of a Membership resource. */ interface MembershipStateResponse { /** * The current state of the Membership resource. */ code: string; } /** * MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics. */ interface MonitoringConfigResponse { /** * Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., "awsClusters/cluster_1". */ cluster: string; /** * Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID. */ clusterHash: string; /** * Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos. */ kubernetesMetricsPrefix: string; /** * Optional. Location used to report Metrics */ location: string; /** * Optional. Project used to report Metrics */ project: string; } /** * MultiCloudCluster contains information specific to GKE Multi-Cloud clusters. */ interface MultiCloudClusterResponse { /** * If cluster_missing is set then it denotes that API(gkemulticloud.googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists. */ clusterMissing: boolean; /** * Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster */ resourceLink: string; } /** * **Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature. */ interface MultiClusterIngressFeatureSpecResponse { /** * Deprecated: This field will be ignored and should not be set. Customer's billing structure. * * @deprecated Deprecated: This field will be ignored and should not be set. Customer's billing structure. */ billing: string; /** * Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar` */ configMembership: string; } /** * NamespaceLifecycleState describes the state of a Namespace resource. */ interface NamespaceLifecycleStateResponse { /** * The current state of the Namespace resource. */ code: string; } /** * OnPremCluster contains information specific to GKE On-Prem clusters. */ interface OnPremClusterResponse { /** * Immutable. Whether the cluster is an admin cluster. */ adminCluster: boolean; /** * If cluster_missing is set then it denotes that API(gkeonprem.googleapis.com) resource for this GKE On-Prem cluster no longer exists. */ clusterMissing: boolean; /** * Immutable. The on prem cluster's type. */ clusterType: string; /** * Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster */ resourceLink: string; } /** * Binauthz policy that applies to this cluster. */ interface PolicyBindingResponse { /** * The relative resource name of the binauthz platform policy to audit. GKE platform policies have the following format: `projects/{project_number}/platforms/gke/policies/{policy_id}`. */ name: string; } /** * Configuration for Policy Controller */ interface PolicyControllerHubConfigResponse { /** * Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether. */ auditIntervalSeconds: string; /** * The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used. */ constraintViolationLimit: string; /** * Map of deployment configs to deployments ("admission", "audit", "mutation'). */ deploymentConfigs: { [key: string]: string; }; /** * The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster. */ exemptableNamespaces: string[]; /** * The install_spec represents the intended state specified by the latest request that mutated install_spec in the feature spec, not the lifecycle state of the feature observed by the Hub feature controller that is reported in the feature state. */ installSpec: string; /** * Logs all denies and dry run failures. */ logDeniesEnabled: boolean; /** * Monitoring specifies the configuration of monitoring. */ monitoring: outputs.gkehub.v1beta.PolicyControllerMonitoringConfigResponse; /** * Enables the ability to mutate resources using Policy Controller. */ mutationEnabled: boolean; /** * Specifies the desired policy content on the cluster */ policyContent: outputs.gkehub.v1beta.PolicyControllerPolicyContentSpecResponse; /** * Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated. */ referentialRulesEnabled: boolean; } /** * **Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR. */ interface PolicyControllerMembershipSpecResponse { /** * Policy Controller configuration for the cluster. */ policyControllerHubConfig: outputs.gkehub.v1beta.PolicyControllerHubConfigResponse; /** * Version of Policy Controller installed. */ version: string; } /** * MonitoringConfig specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"] */ interface PolicyControllerMonitoringConfigResponse { /** * Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export. */ backends: string[]; } /** * PolicyContentSpec defines the user's desired content configuration on the cluster. */ interface PolicyControllerPolicyContentSpecResponse { /** * map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint. */ bundles: { [key: string]: string; }; /** * Configures the installation of the Template Library. */ templateLibrary: outputs.gkehub.v1beta.PolicyControllerTemplateLibraryConfigResponse; } /** * The config specifying which default library templates to install. */ interface PolicyControllerTemplateLibraryConfigResponse { /** * Configures the manner in which the template library is installed on the cluster. */ installation: string; } /** * RBACRoleBindingLifecycleState describes the state of a RbacRoleBinding resource. */ interface RBACRoleBindingLifecycleStateResponse { /** * The current state of the rbacrolebinding resource. */ code: string; } /** * ResourceManifest represents a single Kubernetes resource to be applied to the cluster. */ interface ResourceManifestResponse { /** * Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster. */ clusterScoped: boolean; /** * YAML manifest of the resource. */ manifest: string; } /** * ResourceOptions represent options for Kubernetes resource generation. */ interface ResourceOptionsResponse { /** * Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected. */ connectVersion: string; /** * Optional. Major version of the Kubernetes cluster. This is only used to determine which version to use for the CustomResourceDefinition resources, `apiextensions/v1beta1` or`apiextensions/v1`. */ k8sVersion: string; /** * Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions <1.16. */ v1beta1Crd: boolean; } /** * Role is the type for Kubernetes roles */ interface RoleResponse { /** * predefined_role is the Kubernetes default role to use */ predefinedRole: string; } /** * ScopeLifecycleState describes the state of a Scope resource. */ interface ScopeLifecycleStateResponse { /** * The current state of the scope resource. */ code: string; } /** * SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API. */ interface SecurityPostureConfigResponse { /** * Sets which mode to use for Security Posture features. */ mode: string; /** * Sets which mode to use for vulnerability scanning. */ vulnerabilityMode: string; } /** * **Service Mesh**: Spec for a single Membership for the servicemesh feature */ interface ServiceMeshMembershipSpecResponse { /** * Deprecated: use `management` instead Enables automatic control plane management. * * @deprecated Deprecated: use `management` instead Enables automatic control plane management. */ controlPlane: string; /** * Enables automatic Service Mesh management. */ management: string; } /** * Status specifies state for the subcomponent. */ interface StatusResponse { /** * Code specifies AppDevExperienceFeature's subcomponent ready state. */ code: string; /** * Description is populated if Code is Failed, explaining why it has failed. */ description: string; } } namespace v1beta1 { /** * ApplianceCluster contains information specific to GDC Edge Appliance Clusters. */ interface ApplianceClusterResponse { /** * Immutable. Self-link of the GCP resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance */ resourceLink: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.gkehub.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity */ interface AuthorityResponse { /** * An identity provider that reflects the `issuer` in the workload identity pool. */ identityProvider: string; /** * Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity). */ issuer: string; /** * Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field. */ oidcJwks: string; /** * The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API. */ workloadIdentityPool: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.gkehub.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * EdgeCluster contains information specific to Google Edge Clusters. */ interface EdgeClusterResponse { /** * Immutable. Self-link of the GCP resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster */ resourceLink: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * GkeCluster contains information specific to GKE clusters. */ interface GkeClusterResponse { /** * If cluster_missing is set then it denotes that the GKE cluster no longer exists in the GKE Control Plane. */ clusterMissing: boolean; /** * Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported. */ resourceLink: string; } /** * KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. */ interface KubernetesMetadataResponse { /** * Kubernetes API server version string as reported by '/version'. */ kubernetesApiServerVersion: string; /** * The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB. */ memoryMb: number; /** * Node count as reported by Kubernetes nodes resources. */ nodeCount: number; /** * Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty. */ nodeProviderId: string; /** * The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers. */ updateTime: string; /** * vCPU count as reported by Kubernetes nodes resources. */ vcpuCount: number; } /** * KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. */ interface KubernetesResourceResponse { /** * The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask. */ connectResources: outputs.gkehub.v1beta1.ResourceManifestResponse[]; /** * Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership. */ membershipCrManifest: string; /** * Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask. */ membershipResources: outputs.gkehub.v1beta1.ResourceManifestResponse[]; /** * Optional. Options for Kubernetes resource generation. */ resourceOptions: outputs.gkehub.v1beta1.ResourceOptionsResponse; } /** * MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. */ interface MembershipEndpointResponse { /** * Optional. Specific information for a GDC Edge Appliance cluster. */ applianceCluster: outputs.gkehub.v1beta1.ApplianceClusterResponse; /** * Optional. Specific information for a Google Edge cluster. */ edgeCluster: outputs.gkehub.v1beta1.EdgeClusterResponse; /** * Optional. Specific information for a GKE-on-GCP cluster. */ gkeCluster: outputs.gkehub.v1beta1.GkeClusterResponse; /** * Useful Kubernetes-specific metadata. */ kubernetesMetadata: outputs.gkehub.v1beta1.KubernetesMetadataResponse; /** * Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features. */ kubernetesResource: outputs.gkehub.v1beta1.KubernetesResourceResponse; /** * Optional. Specific information for a GKE Multi-Cloud cluster. */ multiCloudCluster: outputs.gkehub.v1beta1.MultiCloudClusterResponse; /** * Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster who has no resourceLink is not allowed to use this field, it should have a nil "type" instead. */ onPremCluster: outputs.gkehub.v1beta1.OnPremClusterResponse; } /** * State of the Membership resource. */ interface MembershipStateResponse { /** * The current state of the Membership resource. */ code: string; /** * This field is never set by the Hub Service. */ description: string; /** * This field is never set by the Hub Service. */ updateTime: string; } /** * MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics. */ interface MonitoringConfigResponse { /** * Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., "awsClusters/cluster_1". */ cluster: string; /** * Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID. */ clusterHash: string; /** * Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos. */ kubernetesMetricsPrefix: string; /** * Optional. Location used to report Metrics */ location: string; /** * Optional. Project used to report Metrics */ project: string; } /** * MultiCloudCluster contains information specific to GKE Multi-Cloud clusters. */ interface MultiCloudClusterResponse { /** * If cluster_missing is set then it denotes that API(gkemulticloud.googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists. */ clusterMissing: boolean; /** * Immutable. Self-link of the GCP resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster */ resourceLink: string; } /** * OnPremCluster contains information specific to GKE On-Prem clusters. */ interface OnPremClusterResponse { /** * Immutable. Whether the cluster is an admin cluster. */ adminCluster: boolean; /** * If cluster_missing is set then it denotes that API(gkeonprem.googleapis.com) resource for this GKE On-Prem cluster no longer exists. */ clusterMissing: boolean; /** * Immutable. The on prem cluster's type. */ clusterType: string; /** * Immutable. Self-link of the GCP resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster */ resourceLink: string; } /** * ResourceManifest represents a single Kubernetes resource to be applied to the cluster. */ interface ResourceManifestResponse { /** * Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster. */ clusterScoped: boolean; /** * YAML manifest of the resource. */ manifest: string; } /** * ResourceOptions represent options for Kubernetes resource generation. */ interface ResourceOptionsResponse { /** * Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected. */ connectVersion: string; /** * Optional. Major version of the Kubernetes cluster. This is only used to determine which version to use for the CustomResourceDefinition resources, `apiextensions/v1beta1` or`apiextensions/v1`. */ k8sVersion: string; /** * Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions <1.16. */ v1beta1Crd: boolean; } } } export declare namespace gkeonprem { namespace v1 { /** * Authorization defines the On-Prem cluster authorization configuration to bootstrap onto the admin cluster. */ interface AuthorizationResponse { /** * For VMware and bare metal user clusters, users will be granted the cluster-admin role on the cluster, which provides full administrative access to the cluster. For bare metal admin clusters, users will be granted the cluster-view role, which limits users to read-only access. */ adminUsers: outputs.gkeonprem.v1.ClusterUserResponse[]; } /** * BareMetalAdminApiServerArgument represents an arg name->value pair. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ */ interface BareMetalAdminApiServerArgumentResponse { /** * The argument name as it appears on the API Server command line please make sure to remove the leading dashes. */ argument: string; /** * The value of the arg as it will be passed to the API Server command line. */ value: string; } /** * BareMetalAdminClusterOperationsConfig specifies the admin cluster's observability infrastructure. */ interface BareMetalAdminClusterOperationsConfigResponse { /** * Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics). */ enableApplicationLogs: boolean; } /** * BareMetalAdminControlPlaneConfig specifies the control plane configuration. */ interface BareMetalAdminControlPlaneConfigResponse { /** * Customizes the default API server args. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ */ apiServerArgs: outputs.gkeonprem.v1.BareMetalAdminApiServerArgumentResponse[]; /** * Configures the node pool running the control plane. If specified the corresponding NodePool will be created for the cluster's control plane. The NodePool will have the same name and namespace as the cluster. */ controlPlaneNodePoolConfig: outputs.gkeonprem.v1.BareMetalAdminControlPlaneNodePoolConfigResponse; } /** * BareMetalAdminControlPlaneNodePoolConfig specifies the control plane node pool configuration. We have a control plane specific node pool config so that we can flexible about supporting control plane specific fields in the future. */ interface BareMetalAdminControlPlaneNodePoolConfigResponse { /** * The generic configuration for a node pool running the control plane. */ nodePoolConfig: outputs.gkeonprem.v1.BareMetalNodePoolConfigResponse; } /** * BareMetalAdminDrainedMachine represents the machines that are drained. */ interface BareMetalAdminDrainedMachineResponse { /** * Drained machine IP address. */ nodeIp: string; } /** * BareMetalAdminDrainingMachine represents the machines that are currently draining. */ interface BareMetalAdminDrainingMachineResponse { /** * Draining machine IP address. */ nodeIp: string; /** * The count of pods yet to drain. */ podCount: number; } /** * BareMetalAdminIslandModeCidrConfig specifies the cluster CIDR configuration while running in island mode. */ interface BareMetalAdminIslandModeCidrConfigResponse { /** * All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation. */ podAddressCidrBlocks: string[]; /** * All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation. */ serviceAddressCidrBlocks: string[]; } /** * BareMetalAdminLoadBalancerConfig specifies the load balancer configuration. */ interface BareMetalAdminLoadBalancerConfigResponse { /** * Manually configured load balancers. */ manualLbConfig: outputs.gkeonprem.v1.BareMetalAdminManualLbConfigResponse; /** * Configures the ports that the load balancer will listen on. */ portConfig: outputs.gkeonprem.v1.BareMetalAdminPortConfigResponse; /** * The VIPs used by the load balancer. */ vipConfig: outputs.gkeonprem.v1.BareMetalAdminVipConfigResponse; } /** * BareMetalAdminMachineDrainStatus represents the status of bare metal node machines that are undergoing drain operations. */ interface BareMetalAdminMachineDrainStatusResponse { /** * The list of drained machines. */ drainedMachines: outputs.gkeonprem.v1.BareMetalAdminDrainedMachineResponse[]; /** * The list of draning machines. */ drainingMachines: outputs.gkeonprem.v1.BareMetalAdminDrainingMachineResponse[]; } /** * BareMetalAdminMaintenanceConfig specifies configurations to put bare metal Admin cluster CRs nodes in and out of maintenance. */ interface BareMetalAdminMaintenanceConfigResponse { /** * All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set on the node resource. */ maintenanceAddressCidrBlocks: string[]; } /** * BareMetalAdminMaintenanceStatus represents the maintenance status for bare metal Admin cluster CR's nodes. */ interface BareMetalAdminMaintenanceStatusResponse { /** * Represents the status of draining and drained machine nodes. This is used to show the progress of cluster upgrade. */ machineDrainStatus: outputs.gkeonprem.v1.BareMetalAdminMachineDrainStatusResponse; } /** * BareMetalAdminManualLbConfig represents configuration parameters for a manual load balancer. */ interface BareMetalAdminManualLbConfigResponse { /** * Whether manual load balancing is enabled. */ enabled: boolean; } /** * BareMetalAdminNetworkConfig specifies the cluster network configuration. */ interface BareMetalAdminNetworkConfigResponse { /** * Configuration for Island mode CIDR. */ islandModeCidr: outputs.gkeonprem.v1.BareMetalAdminIslandModeCidrConfigResponse; } /** * Specifies the node access related settings for the bare metal admin cluster. */ interface BareMetalAdminNodeAccessConfigResponse { /** * LoginUser is the user name used to access node machines. It defaults to "root" if not set. */ loginUser: string; } /** * Specifies operating system operation settings for cluster provisioning. */ interface BareMetalAdminOsEnvironmentConfigResponse { /** * Whether the package repo should be added when initializing bare metal machines. */ packageRepoExcluded: boolean; } /** * BareMetalAdminPortConfig is the specification of load balancer ports. */ interface BareMetalAdminPortConfigResponse { /** * The port that control plane hosted load balancers will listen on. */ controlPlaneLoadBalancerPort: number; } /** * BareMetalAdminProxyConfig specifies the cluster proxy configuration. */ interface BareMetalAdminProxyConfigResponse { /** * A list of IPs, hostnames, and domains that should skip the proxy. Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. */ noProxy: string[]; /** * Specifies the address of your proxy server. Examples: `http://domain` WARNING: Do not provide credentials in the format `http://(username:password@)domain` these will be rejected by the server. */ uri: string; } /** * Specifies the security related settings for the bare metal admin cluster. */ interface BareMetalAdminSecurityConfigResponse { /** * Configures user access to the admin cluster. */ authorization: outputs.gkeonprem.v1.AuthorizationResponse; } /** * BareMetalAdminStorageConfig specifies the cluster storage configuration. */ interface BareMetalAdminStorageConfigResponse { /** * Specifies the config for local PersistentVolumes backed by mounted node disks. These disks need to be formatted and mounted by the user, which can be done before or after cluster creation. */ lvpNodeMountsConfig: outputs.gkeonprem.v1.BareMetalLvpConfigResponse; /** * Specifies the config for local PersistentVolumes backed by subdirectories in a shared filesystem. These subdirectores are automatically created during cluster creation. */ lvpShareConfig: outputs.gkeonprem.v1.BareMetalLvpShareConfigResponse; } /** * BareMetalAdminVipConfig for bare metal load balancer configurations. */ interface BareMetalAdminVipConfigResponse { /** * The VIP which you previously set aside for the Kubernetes API of this bare metal admin cluster. */ controlPlaneVip: string; } /** * BareMetalAdminWorkloadNodeConfig specifies the workload node configurations. */ interface BareMetalAdminWorkloadNodeConfigResponse { /** * The maximum number of pods a node can run. The size of the CIDR range assigned to the node will be derived from this parameter. By default 110 Pods are created per Node. Upper bound is 250 for both HA and non-HA admin cluster. Lower bound is 64 for non-HA admin cluster and 32 for HA admin cluster. */ maxPodsPerNode: string; } /** * Represents an arg name->value pair. Only a subset of customized flags are supported. For the exact format, refer to the [API server documentation](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/). */ interface BareMetalApiServerArgumentResponse { /** * The argument name as it appears on the API Server command line, make sure to remove the leading dashes. */ argument: string; /** * The value of the arg as it will be passed to the API Server command line. */ value: string; } /** * BareMetalBgpLbConfig represents configuration parameters for a Border Gateway Protocol (BGP) load balancer. */ interface BareMetalBgpLbConfigResponse { /** * AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. */ addressPools: outputs.gkeonprem.v1.BareMetalLoadBalancerAddressPoolResponse[]; /** * BGP autonomous system number (ASN) of the cluster. This field can be updated after cluster creation. */ asn: string; /** * The list of BGP peers that the cluster will connect to. At least one peer must be configured for each control plane node. Control plane nodes will connect to these peers to advertise the control plane VIP. The Services load balancer also uses these peers by default. This field can be updated after cluster creation. */ bgpPeerConfigs: outputs.gkeonprem.v1.BareMetalBgpPeerConfigResponse[]; /** * Specifies the node pool running data plane load balancing. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used for data plane load balancing. */ loadBalancerNodePoolConfig: outputs.gkeonprem.v1.BareMetalLoadBalancerNodePoolConfigResponse; } /** * BareMetalBgpPeerConfig represents configuration parameters for a Border Gateway Protocol (BGP) peer. */ interface BareMetalBgpPeerConfigResponse { /** * BGP autonomous system number (ASN) for the network that contains the external peer device. */ asn: string; /** * The IP address of the control plane node that connects to the external peer. If you don't specify any control plane nodes, all control plane nodes can connect to the external peer. If you specify one or more IP addresses, only the nodes specified participate in peering sessions. */ controlPlaneNodes: string[]; /** * The IP address of the external peer device. */ ipAddress: string; } /** * Specifies the bare metal user cluster's observability infrastructure. */ interface BareMetalClusterOperationsConfigResponse { /** * Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics). */ enableApplicationLogs: boolean; } /** * BareMetalClusterUpgradePolicy defines the cluster upgrade policy. */ interface BareMetalClusterUpgradePolicyResponse { /** * Specifies which upgrade policy to use. */ policy: string; } /** * Specifies the control plane configuration. */ interface BareMetalControlPlaneConfigResponse { /** * Customizes the default API server args. Only a subset of customized flags are supported. For the exact format, refer to the [API server documentation](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/). */ apiServerArgs: outputs.gkeonprem.v1.BareMetalApiServerArgumentResponse[]; /** * Configures the node pool running the control plane. */ controlPlaneNodePoolConfig: outputs.gkeonprem.v1.BareMetalControlPlaneNodePoolConfigResponse; } /** * Specifies the control plane node pool configuration. */ interface BareMetalControlPlaneNodePoolConfigResponse { /** * The generic configuration for a node pool running the control plane. */ nodePoolConfig: outputs.gkeonprem.v1.BareMetalNodePoolConfigResponse; } /** * Represents a machine that is currently drained. */ interface BareMetalDrainedMachineResponse { /** * Drained machine IP address. */ nodeIp: string; } /** * Represents a machine that is currently draining. */ interface BareMetalDrainingMachineResponse { /** * Draining machine IP address. */ nodeIp: string; /** * The count of pods yet to drain. */ podCount: number; } /** * Specifies the cluster CIDR configuration while running in island mode. */ interface BareMetalIslandModeCidrConfigResponse { /** * All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation. */ podAddressCidrBlocks: string[]; /** * All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field is mutable after creation starting with version 1.15. */ serviceAddressCidrBlocks: string[]; } /** * KubeletConfig defines the modifiable kubelet configurations for bare metal machines. Note: this list includes fields supported in GKE (see https://cloud.google.com/kubernetes-engine/docs/how-to/node-system-config#kubelet-options). */ interface BareMetalKubeletConfigResponse { /** * The maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry_pull_qps. The value must not be a negative number. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 10. */ registryBurst: number; /** * The limit of registry pulls per second. Setting this value to 0 means no limit. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 5. */ registryPullQps: number; /** * Prevents the Kubelet from pulling multiple images at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Another Union File System (Aufs) storage backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has more details. */ serializeImagePullsDisabled: boolean; } /** * Represents an IP pool used by the load balancer. */ interface BareMetalLoadBalancerAddressPoolResponse { /** * The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5). */ addresses: string[]; /** * If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses. */ avoidBuggyIps: boolean; /** * If true, prevent IP addresses from being automatically assigned. */ manualAssign: boolean; /** * The name of the address pool. */ pool: string; } /** * Specifies the load balancer configuration. */ interface BareMetalLoadBalancerConfigResponse { /** * Configuration for BGP typed load balancers. When set network_config.advanced_networking is automatically set to true. */ bgpLbConfig: outputs.gkeonprem.v1.BareMetalBgpLbConfigResponse; /** * Manually configured load balancers. */ manualLbConfig: outputs.gkeonprem.v1.BareMetalManualLbConfigResponse; /** * Configuration for MetalLB load balancers. */ metalLbConfig: outputs.gkeonprem.v1.BareMetalMetalLbConfigResponse; /** * Configures the ports that the load balancer will listen on. */ portConfig: outputs.gkeonprem.v1.BareMetalPortConfigResponse; /** * The VIPs used by the load balancer. */ vipConfig: outputs.gkeonprem.v1.BareMetalVipConfigResponse; } /** * Specifies the load balancer's node pool configuration. */ interface BareMetalLoadBalancerNodePoolConfigResponse { /** * The generic configuration for a node pool running a load balancer. */ nodePoolConfig: outputs.gkeonprem.v1.BareMetalNodePoolConfigResponse; } /** * Specifies the configs for local persistent volumes (PVs). */ interface BareMetalLvpConfigResponse { /** * The host machine path. */ path: string; /** * The StorageClass name that PVs will be created with. */ storageClass: string; } /** * Specifies the configs for local persistent volumes under a shared file system. */ interface BareMetalLvpShareConfigResponse { /** * Defines the machine path and storage class for the LVP Share. */ lvpConfig: outputs.gkeonprem.v1.BareMetalLvpConfigResponse; /** * The number of subdirectories to create under path. */ sharedPathPvCount: number; } /** * Represents the status of node machines that are undergoing drain operations. */ interface BareMetalMachineDrainStatusResponse { /** * The list of drained machines. */ drainedMachines: outputs.gkeonprem.v1.BareMetalDrainedMachineResponse[]; /** * The list of draning machines. */ drainingMachines: outputs.gkeonprem.v1.BareMetalDrainingMachineResponse[]; } /** * Specifies configurations to put bare metal nodes in and out of maintenance. */ interface BareMetalMaintenanceConfigResponse { /** * All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set on the node resource. */ maintenanceAddressCidrBlocks: string[]; } /** * Represents the maintenance status of the bare metal user cluster. */ interface BareMetalMaintenanceStatusResponse { /** * The maintenance status of node machines. */ machineDrainStatus: outputs.gkeonprem.v1.BareMetalMachineDrainStatusResponse; } /** * Represents configuration parameters for a manual load balancer. */ interface BareMetalManualLbConfigResponse { /** * Whether manual load balancing is enabled. */ enabled: boolean; } /** * Represents configuration parameters for a MetalLB load balancer. */ interface BareMetalMetalLbConfigResponse { /** * AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. */ addressPools: outputs.gkeonprem.v1.BareMetalLoadBalancerAddressPoolResponse[]; /** * Specifies the node pool running the load balancer. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used as the load balancer pool. */ loadBalancerNodePoolConfig: outputs.gkeonprem.v1.BareMetalLoadBalancerNodePoolConfigResponse; } /** * Specifies the multiple networking interfaces cluster configuration. */ interface BareMetalMultipleNetworkInterfacesConfigResponse { /** * Whether to enable multiple network interfaces for your pods. When set network_config.advanced_networking is automatically set to true. */ enabled: boolean; } /** * Specifies the cluster network configuration. */ interface BareMetalNetworkConfigResponse { /** * Enables the use of advanced Anthos networking features, such as Bundled Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag. */ advancedNetworking: boolean; /** * Configuration for island mode CIDR. In an island-mode network, nodes have unique IP addresses, but pods don't have unique addresses across clusters. This doesn't cause problems because pods in one cluster never directly communicate with pods in another cluster. Instead, there are gateways that mediate between a pod in one cluster and a pod in another cluster. */ islandModeCidr: outputs.gkeonprem.v1.BareMetalIslandModeCidrConfigResponse; /** * Configuration for multiple network interfaces. */ multipleNetworkInterfacesConfig: outputs.gkeonprem.v1.BareMetalMultipleNetworkInterfacesConfigResponse; /** * Configuration for SR-IOV. */ srIovConfig: outputs.gkeonprem.v1.BareMetalSrIovConfigResponse; } /** * Specifies the node access related settings for the bare metal user cluster. */ interface BareMetalNodeAccessConfigResponse { /** * LoginUser is the user name used to access node machines. It defaults to "root" if not set. */ loginUser: string; } /** * BareMetalNodeConfig lists machine addresses to access Nodes. */ interface BareMetalNodeConfigResponse { /** * The labels assigned to this node. An object containing a list of key/value pairs. The labels here, unioned with the labels set on BareMetalNodePoolConfig are the set of labels that will be applied to the node. If there are any conflicts, the BareMetalNodeConfig labels take precedence. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels: { [key: string]: string; }; /** * The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 */ nodeIp: string; } /** * BareMetalNodePoolConfig describes the configuration of all nodes within a given bare metal node pool. */ interface BareMetalNodePoolConfigResponse { /** * The modifiable kubelet configurations for the bare metal machines. */ kubeletConfig: outputs.gkeonprem.v1.BareMetalKubeletConfigResponse; /** * The labels assigned to nodes of this node pool. An object containing a list of key/value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels: { [key: string]: string; }; /** * The list of machine addresses in the bare metal node pool. */ nodeConfigs: outputs.gkeonprem.v1.BareMetalNodeConfigResponse[]; /** * Specifies the nodes operating system (default: LINUX). */ operatingSystem: string; /** * The initial taints assigned to nodes of this node pool. */ taints: outputs.gkeonprem.v1.NodeTaintResponse[]; } /** * BareMetalNodePoolUpgradePolicy defines the node pool upgrade policy. */ interface BareMetalNodePoolUpgradePolicyResponse { /** * The parallel upgrade settings for worker node pools. */ parallelUpgradeConfig: outputs.gkeonprem.v1.BareMetalParallelUpgradeConfigResponse; } /** * Specifies operating system settings for cluster provisioning. */ interface BareMetalOsEnvironmentConfigResponse { /** * Whether the package repo should not be included when initializing bare metal machines. */ packageRepoExcluded: boolean; } /** * BareMetalParallelUpgradeConfig defines the parallel upgrade settings for worker node pools. */ interface BareMetalParallelUpgradeConfigResponse { /** * The maximum number of nodes that can be upgraded at once. */ concurrentNodes: number; /** * The minimum number of nodes that should be healthy and available during an upgrade. If set to the default value of 0, it is possible that none of the nodes will be available during an upgrade. */ minimumAvailableNodes: number; } /** * Specifies load balancer ports for the bare metal user cluster. */ interface BareMetalPortConfigResponse { /** * The port that control plane hosted load balancers will listen on. */ controlPlaneLoadBalancerPort: number; } /** * Specifies the cluster proxy configuration. */ interface BareMetalProxyConfigResponse { /** * A list of IPs, hostnames, and domains that should skip the proxy. Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. */ noProxy: string[]; /** * Specifies the address of your proxy server. Examples: `http://domain` Do not provide credentials in the format `http://(username:password@)domain` these will be rejected by the server. */ uri: string; } /** * Specifies the security related settings for the bare metal user cluster. */ interface BareMetalSecurityConfigResponse { /** * Configures user access to the user cluster. */ authorization: outputs.gkeonprem.v1.AuthorizationResponse; } /** * Specifies the SR-IOV networking operator config. */ interface BareMetalSrIovConfigResponse { /** * Whether to install the SR-IOV operator. */ enabled: boolean; } /** * BareMetalStorageConfig specifies the cluster storage configuration. */ interface BareMetalStorageConfigResponse { /** * Specifies the config for local PersistentVolumes backed by mounted node disks. These disks need to be formatted and mounted by the user, which can be done before or after cluster creation. */ lvpNodeMountsConfig: outputs.gkeonprem.v1.BareMetalLvpConfigResponse; /** * Specifies the config for local PersistentVolumes backed by subdirectories in a shared filesystem. These subdirectores are automatically created during cluster creation. */ lvpShareConfig: outputs.gkeonprem.v1.BareMetalLvpShareConfigResponse; } /** * Specifies the VIP config for the bare metal load balancer. */ interface BareMetalVipConfigResponse { /** * The VIP which you previously set aside for the Kubernetes API of this bare metal user cluster. */ controlPlaneVip: string; /** * The VIP which you previously set aside for ingress traffic into this bare metal user cluster. */ ingressVip: string; } /** * Specifies the workload node configurations. */ interface BareMetalWorkloadNodeConfigResponse { /** * Specifies which container runtime will be used. */ containerRuntime: string; /** * The maximum number of pods a node can run. The size of the CIDR range assigned to the node will be derived from this parameter. */ maxPodsPerNode: string; } /** * Configuration for Binary Authorization. */ interface BinaryAuthorizationResponse { /** * Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED. */ evaluationMode: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.gkeonprem.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * ClusterUser configures user principals for an RBAC policy. */ interface ClusterUserResponse { /** * The name of the user, e.g. `my-gcp-id@gmail.com`. */ username: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See [Anthos Fleets](`https://cloud.google.com/anthos/multicluster-management/fleets`) for more details on Anthos multi-cluster capabilities using Fleets. ## */ interface FleetResponse { /** * The name of the managed fleet Membership resource associated to this cluster. Membership names are formatted as `projects//locations//memberships/`. */ membership: string; } /** * NodeTaint applied to every Kubernetes node in a node pool. Kubernetes taints can be used together with tolerations to control how workloads are scheduled to your nodes. Node taints are permanent. */ interface NodeTaintResponse { /** * The taint effect. */ effect: string; /** * Key associated with the effect. */ key: string; /** * Value associated with the effect. */ value: string; } /** * ResourceCondition provides a standard mechanism for higher-level status reporting from controller. */ interface ResourceConditionResponse { /** * Last time the condition transit from one status to another. */ lastTransitionTime: string; /** * Human-readable message indicating details about last transition. */ message: string; /** * Machine-readable message indicating details about last transition. */ reason: string; /** * state of the condition. */ state: string; /** * Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady) */ type: string; } /** * ResourceStatus describes why a cluster or node pool has a certain status. (e.g., ERROR or DEGRADED). */ interface ResourceStatusResponse { /** * ResourceCondition provide a standard mechanism for higher-level status reporting from controller. */ conditions: outputs.gkeonprem.v1.ResourceConditionResponse[]; /** * Human-friendly representation of the error message from controller. The error message can be temporary as the controller controller creates a cluster or node pool. If the error message persists for a longer period of time, it can be used to surface error message to indicate real problems requiring user intervention. */ errorMessage: string; } /** * ValidationCheck represents the result of preflight check. */ interface ValidationCheckResponse { /** * Options used for the validation check */ option: string; /** * The scenario when the preflight checks were run. */ scenario: string; /** * The detailed validation check status. */ status: outputs.gkeonprem.v1.ValidationCheckStatusResponse; } /** * ValidationCheckResult defines the details about the validation check. */ interface ValidationCheckResultResponse { /** * The category of the validation. */ category: string; /** * The description of the validation check. */ description: string; /** * Detailed failure information, which might be unformatted. */ details: string; /** * A human-readable message of the check failure. */ reason: string; /** * The validation check state. */ state: string; } /** * ValidationCheckStatus defines the detailed validation check status. */ interface ValidationCheckStatusResponse { /** * Individual checks which failed as part of the Preflight check execution. */ result: outputs.gkeonprem.v1.ValidationCheckResultResponse[]; } /** * Specifies anti affinity group config for the VMware user cluster. */ interface VmwareAAGConfigResponse { /** * Spread nodes across at least three physical hosts (requires at least three hosts). Enabled by default. */ aagConfigDisabled: boolean; } /** * Represents an IP pool used by the load balancer. */ interface VmwareAddressPoolResponse { /** * The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5). */ addresses: string[]; /** * If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses. */ avoidBuggyIps: boolean; /** * If true, prevent IP addresses from being automatically assigned. */ manualAssign: boolean; /** * The name of the address pool. */ pool: string; } /** * Specifies config to enable/disable auto repair. The cluster-health-controller is deployed only if Enabled is true. */ interface VmwareAutoRepairConfigResponse { /** * Whether auto repair is enabled. */ enabled: boolean; } /** * Represents auto resizing configurations for the VMware user cluster. */ interface VmwareAutoResizeConfigResponse { /** * Whether to enable controle plane node auto resizing. */ enabled: boolean; } /** * VmwareClusterUpgradePolicy defines the cluster upgrade policy. */ interface VmwareClusterUpgradePolicyResponse { /** * Controls whether the upgrade applies to the control plane only. */ controlPlaneOnly: boolean; } /** * Specifies control plane node config for the VMware user cluster. */ interface VmwareControlPlaneNodeConfigResponse { /** * AutoResizeConfig provides auto resizing configurations. */ autoResizeConfig: outputs.gkeonprem.v1.VmwareAutoResizeConfigResponse; /** * The number of CPUs for each admin cluster node that serve as control planes for this VMware user cluster. (default: 4 CPUs) */ cpus: string; /** * The megabytes of memory for each admin cluster node that serves as a control plane for this VMware user cluster (default: 8192 MB memory). */ memory: string; /** * The number of control plane nodes for this VMware user cluster. (default: 1 replica). */ replicas: string; /** * Vsphere-specific config. */ vsphereConfig: outputs.gkeonprem.v1.VmwareControlPlaneVsphereConfigResponse; } /** * Specifies control plane V2 config. */ interface VmwareControlPlaneV2ConfigResponse { /** * Static IP addresses for the control plane nodes. */ controlPlaneIpBlock: outputs.gkeonprem.v1.VmwareIpBlockResponse; } /** * Specifies control plane node config. */ interface VmwareControlPlaneVsphereConfigResponse { /** * The Vsphere datastore used by the control plane Node. */ datastore: string; /** * The Vsphere storage policy used by the control plane Node. */ storagePolicyName: string; } /** * Contains configurations for Dataplane V2, which is optimized dataplane for Kubernetes networking. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dataplane-v2 */ interface VmwareDataplaneV2ConfigResponse { /** * Enable advanced networking which requires dataplane_v2_enabled to be set true. */ advancedNetworking: boolean; /** * Enables Dataplane V2. */ dataplaneV2Enabled: boolean; /** * Enable Dataplane V2 for clusters with Windows nodes. */ windowsDataplaneV2Enabled: boolean; } /** * Represents the network configuration required for the VMware user clusters with DHCP IP configurations. */ interface VmwareDhcpIpConfigResponse { /** * enabled is a flag to mark if DHCP IP allocation is used for VMware user clusters. */ enabled: boolean; } /** * Represents configuration parameters for an F5 BIG-IP load balancer. */ interface VmwareF5BigIpConfigResponse { /** * The load balancer's IP address. */ address: string; /** * The preexisting partition to be used by the load balancer. This partition is usually created for the admin cluster for example: 'my-f5-admin-partition'. */ partition: string; /** * The pool name. Only necessary, if using SNAT. */ snatPool: string; } /** * Represents the common parameters for all the hosts irrespective of their IP address. */ interface VmwareHostConfigResponse { /** * DNS search domains. */ dnsSearchDomains: string[]; /** * DNS servers. */ dnsServers: string[]; /** * NTP servers. */ ntpServers: string[]; } /** * Represents VMware user cluster node's network configuration. */ interface VmwareHostIpResponse { /** * Hostname of the machine. VM's name will be used if this field is empty. */ hostname: string; /** * IP could be an IP address (like 1.2.3.4) or a CIDR (like 1.2.3.0/24). */ ip: string; } /** * Represents a collection of IP addresses to assign to nodes. */ interface VmwareIpBlockResponse { /** * The network gateway used by the VMware user cluster. */ gateway: string; /** * The node's network configurations used by the VMware user cluster. */ ips: outputs.gkeonprem.v1.VmwareHostIpResponse[]; /** * The netmask used by the VMware user cluster. */ netmask: string; } /** * Specifies the locad balancer config for the VMware user cluster. */ interface VmwareLoadBalancerConfigResponse { /** * Configuration for F5 Big IP typed load balancers. */ f5Config: outputs.gkeonprem.v1.VmwareF5BigIpConfigResponse; /** * Manually configured load balancers. */ manualLbConfig: outputs.gkeonprem.v1.VmwareManualLbConfigResponse; /** * Configuration for MetalLB typed load balancers. */ metalLbConfig: outputs.gkeonprem.v1.VmwareMetalLbConfigResponse; /** * Configuration for Seesaw typed load balancers. */ seesawConfig: outputs.gkeonprem.v1.VmwareSeesawConfigResponse; /** * The VIPs used by the load balancer. */ vipConfig: outputs.gkeonprem.v1.VmwareVipConfigResponse; } /** * Represents configuration parameters for an already existing manual load balancer. Given the nature of manual load balancers it is expected that said load balancer will be fully managed by users. IMPORTANT: Please note that the Anthos On-Prem API will not generate or update ManualLB configurations it can only bind a pre-existing configuration to a new VMware user cluster. */ interface VmwareManualLbConfigResponse { /** * NodePort for control plane service. The Kubernetes API server in the admin cluster is implemented as a Service of type NodePort (ex. 30968). */ controlPlaneNodePort: number; /** * NodePort for ingress service's http. The ingress service in the admin cluster is implemented as a Service of type NodePort (ex. 32527). */ ingressHttpNodePort: number; /** * NodePort for ingress service's https. The ingress service in the admin cluster is implemented as a Service of type NodePort (ex. 30139). */ ingressHttpsNodePort: number; /** * NodePort for konnectivity server service running as a sidecar in each kube-apiserver pod (ex. 30564). */ konnectivityServerNodePort: number; } /** * Represents configuration parameters for the MetalLB load balancer. */ interface VmwareMetalLbConfigResponse { /** * AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. */ addressPools: outputs.gkeonprem.v1.VmwareAddressPoolResponse[]; } /** * Specifies network config for the VMware user cluster. */ interface VmwareNetworkConfigResponse { /** * Configuration for control plane V2 mode. */ controlPlaneV2Config: outputs.gkeonprem.v1.VmwareControlPlaneV2ConfigResponse; /** * Configuration settings for a DHCP IP configuration. */ dhcpIpConfig: outputs.gkeonprem.v1.VmwareDhcpIpConfigResponse; /** * Represents common network settings irrespective of the host's IP address. */ hostConfig: outputs.gkeonprem.v1.VmwareHostConfigResponse; /** * All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation. */ podAddressCidrBlocks: string[]; /** * All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation. */ serviceAddressCidrBlocks: string[]; /** * Configuration settings for a static IP configuration. */ staticIpConfig: outputs.gkeonprem.v1.VmwareStaticIpConfigResponse; /** * vcenter_network specifies vCenter network name. Inherited from the admin cluster. */ vcenterNetwork: string; } /** * Parameters that describe the configuration of all nodes within a given node pool. */ interface VmwareNodeConfigResponse { /** * VMware disk size to be used during creation. */ bootDiskSizeGb: string; /** * The number of CPUs for each node in the node pool. */ cpus: string; /** * Allow node pool traffic to be load balanced. Only works for clusters with MetalLB load balancers. */ enableLoadBalancer: boolean; /** * The OS image name in vCenter, only valid when using Windows. */ image: string; /** * The OS image to be used for each node in a node pool. Currently `cos`, `ubuntu`, `ubuntu_containerd` and `windows` are supported. */ imageType: string; /** * The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ */ labels: { [key: string]: string; }; /** * The megabytes of memory for each node in the node pool. */ memoryMb: string; /** * The number of nodes in the node pool. */ replicas: string; /** * The initial taints assigned to nodes of this node pool. */ taints: outputs.gkeonprem.v1.NodeTaintResponse[]; /** * Specifies the vSphere config for node pool. */ vsphereConfig: outputs.gkeonprem.v1.VmwareVsphereConfigResponse; } /** * NodePoolAutoscaling config for the NodePool to allow for the kubernetes to scale NodePool. */ interface VmwareNodePoolAutoscalingConfigResponse { /** * Maximum number of replicas in the NodePool. */ maxReplicas: number; /** * Minimum number of replicas in the NodePool. */ minReplicas: number; } /** * VmwareSeesawConfig represents configuration parameters for an already existing Seesaw load balancer. IMPORTANT: Please note that the Anthos On-Prem API will not generate or update Seesaw configurations it can only bind a pre-existing configuration to a new user cluster. IMPORTANT: When attempting to create a user cluster with a pre-existing Seesaw load balancer you will need to follow some preparation steps before calling the 'CreateVmwareCluster' API method. First you will need to create the user cluster's namespace via kubectl. The namespace will need to use the following naming convention : -gke-onprem-mgmt or -gke-onprem-mgmt depending on whether you used the 'VmwareCluster.local_name' to disambiguate collisions; for more context see the documentation of 'VmwareCluster.local_name'. Once the namespace is created you will need to create a secret resource via kubectl. This secret will contain copies of your Seesaw credentials. The Secret must be called 'user-cluster-creds' and contain Seesaw's SSH and Cert credentials. The credentials must be keyed with the following names: 'seesaw-ssh-private-key', 'seesaw-ssh-public-key', 'seesaw-ssh-ca-key', 'seesaw-ssh-ca-cert'. */ interface VmwareSeesawConfigResponse { /** * Enable two load balancer VMs to achieve a highly-available Seesaw load balancer. */ enableHa: boolean; /** * In general the following format should be used for the Seesaw group name: seesaw-for-[cluster_name]. */ group: string; /** * The IP Blocks to be used by the Seesaw load balancer */ ipBlocks: outputs.gkeonprem.v1.VmwareIpBlockResponse[]; /** * MasterIP is the IP announced by the master of Seesaw group. */ masterIp: string; /** * Name to be used by Stackdriver. */ stackdriverName: string; /** * Names of the VMs created for this Seesaw group. */ vms: string[]; } /** * Represents the network configuration required for the VMware user clusters with Static IP configurations. */ interface VmwareStaticIpConfigResponse { /** * Represents the configuration values for static IP allocation to nodes. */ ipBlocks: outputs.gkeonprem.v1.VmwareIpBlockResponse[]; } /** * Specifies vSphere CSI components deployment config in the VMware user cluster. */ interface VmwareStorageConfigResponse { /** * Whether or not to deploy vSphere CSI components in the VMware user cluster. Enabled by default. */ vsphereCsiDisabled: boolean; } /** * Represents configuration for the VMware VCenter for the user cluster. */ interface VmwareVCenterConfigResponse { /** * The vCenter IP address. */ address: string; /** * Contains the vCenter CA certificate public key for SSL verification. */ caCertData: string; /** * The name of the vCenter cluster for the user cluster. */ cluster: string; /** * The name of the vCenter datacenter for the user cluster. */ datacenter: string; /** * The name of the vCenter datastore for the user cluster. */ datastore: string; /** * The name of the vCenter folder for the user cluster. */ folder: string; /** * The name of the vCenter resource pool for the user cluster. */ resourcePool: string; /** * The name of the vCenter storage policy for the user cluster. */ storagePolicyName: string; } /** * Specifies the VIP config for the VMware user cluster load balancer. */ interface VmwareVipConfigResponse { /** * The VIP which you previously set aside for the Kubernetes API of this cluster. */ controlPlaneVip: string; /** * The VIP which you previously set aside for ingress traffic into this cluster. */ ingressVip: string; } /** * VmwareVsphereConfig represents configuration for the VMware VCenter for node pool. */ interface VmwareVsphereConfigResponse { /** * The name of the vCenter datastore. Inherited from the user cluster. */ datastore: string; /** * Vsphere host groups to apply to all VMs in the node pool */ hostGroups: string[]; /** * Tags to apply to VMs. */ tags: outputs.gkeonprem.v1.VmwareVsphereTagResponse[]; } /** * VmwareVsphereTag describes a vSphere tag to be placed on VMs in the node pool. For more information, see https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-E8E854DD-AA97-4E0C-8419-CE84F93C4058.html */ interface VmwareVsphereTagResponse { /** * The Vsphere tag category. */ category: string; /** * The Vsphere tag name. */ tag: string; } } } export declare namespace healthcare { namespace v1 { /** * An attribute value for a Consent or User data mapping. Each Attribute must have a corresponding AttributeDefinition in the consent store that defines the default and allowed values. */ interface AttributeResponse { /** * Indicates the name of an attribute defined in the consent store. */ attributeDefinitionId: string; /** * The value of the attribute. Must be an acceptable value as defined in the consent store. For example, if the consent store defines "data type" with acceptable values "questionnaire" and "step-count", when the attribute name is data type, this field must contain one of those values. */ values: string[]; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.healthcare.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.healthcare.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Mask a string by replacing its characters with a fixed character. */ interface CharacterMaskConfigResponse { /** * Character to mask the sensitive values. If not supplied, defaults to "*". */ maskingCharacter: string; } /** * Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. Outputs a base64-encoded representation of the hashed output (for example, `L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=`). */ interface CryptoHashConfigResponse { /** * An AES 128/192/256 bit key. Causes the hash to be computed based on this key. A default key is generated for each Deidentify operation and is used when neither `crypto_key` nor `kms_wrapped` is specified. Must not be set if `kms_wrapped` is set. */ cryptoKey: string; /** * KMS wrapped key. Must not be set if `crypto_key` is set. */ kmsWrapped: outputs.healthcare.v1.KmsWrappedCryptoKeyResponse; } /** * Shift a date forward or backward in time by a random amount which is consistent for a given patient and crypto key combination. */ interface DateShiftConfigResponse { /** * An AES 128/192/256 bit key. The date shift is computed based on this key and the patient ID. If the patient ID is empty for a DICOM resource, the date shift is computed based on this key and the study instance UID. If `crypto_key` is not set, then `kms_wrapped` is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if `kms_wrapped` is set. */ cryptoKey: string; /** * KMS wrapped key. If `kms_wrapped` is not set, then `crypto_key` is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if `crypto_key` is set. */ kmsWrapped: outputs.healthcare.v1.KmsWrappedCryptoKeyResponse; } /** * Contains configuration for streaming de-identified FHIR export. */ interface DeidentifiedStoreDestinationResponse { /** * The configuration to use when de-identifying resources that are added to this store. */ config: outputs.healthcare.v1.DeidentifyConfigResponse; /** * The full resource name of a Cloud Healthcare FHIR store, for example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`. */ store: string; } /** * Configures de-id options specific to different types of content. Each submessage customizes the handling of an https://tools.ietf.org/html/rfc6838 media type or subtype. Configs are applied in a nested manner at runtime. */ interface DeidentifyConfigResponse { /** * Configures de-id of application/DICOM content. */ dicom: outputs.healthcare.v1.DicomConfigResponse; /** * Configures de-id of application/FHIR content. */ fhir: outputs.healthcare.v1.FhirConfigResponse; /** * Configures de-identification of image pixels wherever they are found in the source_dataset. */ image: outputs.healthcare.v1.ImageConfigResponse; /** * Configures de-identification of text wherever it is found in the source_dataset. */ text: outputs.healthcare.v1.TextConfigResponse; /** * Ensures in-flight data remains in the region of origin during de-identification. Using this option results in a significant reduction of throughput, and is not compatible with `LOCATION` or `ORGANIZATION_NAME` infoTypes. `LOCATION` must be excluded within TextConfig, and must also be excluded within ImageConfig if image redaction is required. */ useRegionalDataProcessing: boolean; } /** * Specifies the parameters needed for de-identification of DICOM stores. */ interface DicomConfigResponse { /** * Tag filtering profile that determines which tags to keep/remove. */ filterProfile: string; /** * List of tags to keep. Remove all other tags. */ keepList: outputs.healthcare.v1.TagFilterListResponse; /** * List of tags to remove. Keep all other tags. */ removeList: outputs.healthcare.v1.TagFilterListResponse; /** * If true, skip replacing StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID, and MediaStorageSOPInstanceUID and leave them untouched. The Cloud Healthcare API regenerates these UIDs by default based on the DICOM Standard's reasoning: "Whilst these UIDs cannot be mapped directly to an individual out of context, given access to the original images, or to a database of the original images containing the UIDs, it would be possible to recover the individual's identity." http://dicom.nema.org/medical/dicom/current/output/chtml/part15/sect_E.3.9.html */ skipIdRedaction: boolean; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Specifies how to handle de-identification of a FHIR store. */ interface FhirConfigResponse { /** * The behaviour for handling FHIR extensions that aren't otherwise specified for de-identification. If true, all extensions are preserved during de-identification by default. If false or unspecified, all extensions are removed during de-identification by default. */ defaultKeepExtensions: boolean; /** * Specifies FHIR paths to match and how to transform them. Any field that is not matched by a FieldMetadata is passed through to the output dataset unmodified. All extensions will be processed according to `default_keep_extensions`. */ fieldMetadataList: outputs.healthcare.v1.FieldMetadataResponse[]; } /** * Contains the configuration for FHIR notifications. */ interface FhirNotificationConfigResponse { /** * The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail (https://cloud.google.com/healthcare-api/docs/permissions-healthcare-api-gcp-products#dicom_fhir_and_hl7v2_store_cloud_pubsub_permissions). If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare-api/docs/how-tos/logging). */ pubsubTopic: string; /** * Whether to send full FHIR resource to this Pub/Sub topic. */ sendFullResource: boolean; /** * Whether to send full FHIR resource to this Pub/Sub topic for deleting FHIR resource. Note that setting this to true does not guarantee that all previous resources will be sent in the format of full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always check the "payloadType" label from a Pub/Sub message to determine whether it needs to fetch the full previous resource as a separate operation. */ sendPreviousResourceOnDelete: boolean; } /** * Specifies FHIR paths to match, and how to handle de-identification of matching fields. */ interface FieldMetadataResponse { /** * Deidentify action for one field. */ action: string; /** * List of paths to FHIR fields to be redacted. Each path is a period-separated list where each component is either a field name or FHIR type name, for example: Patient, HumanName. For "choice" types (those defined in the FHIR spec with the form: field[x]) we use two separate components. For example, "deceasedAge.unit" is matched by "Deceased.Age.unit". Supported types are: AdministrativeGenderCode, Base64Binary, Boolean, Code, Date, DateTime, Decimal, HumanName, Id, Instant, Integer, LanguageCode, Markdown, Oid, PositiveInt, String, UnsignedInt, Uri, Uuid, Xhtml. */ paths: string[]; } /** * A (sub) field of a type. */ interface FieldResponse { /** * The maximum number of times this field can be repeated. 0 or -1 means unbounded. */ maxOccurs: number; /** * The minimum number of times this field must be present/repeated. */ minOccurs: number; /** * The name of the field. For example, "PID-1" or just "1". */ name: string; /** * The HL7v2 table this field refers to. For example, PID-15 (Patient's Primary Language) usually refers to table "0296". */ table: string; /** * The type of this field. A Type with this name must be defined in an Hl7TypesConfig. */ type: string; } /** * Represents a user's consent in terms of the resources that can be accessed and under what conditions. */ interface GoogleCloudHealthcareV1ConsentPolicyResponse { /** * The request conditions to meet to grant access. In addition to any supported comparison operators, authorization rules may have `IN` operator as well as at most 10 logical operators that are limited to `AND` (`&&`), `OR` (`||`). */ authorizationRule: outputs.healthcare.v1.ExprResponse; /** * The resources that this policy applies to. A resource is a match if it matches all the attributes listed here. If empty, this policy applies to all User data mappings for the given user. */ resourceAttributes: outputs.healthcare.v1.AttributeResponse[]; } /** * The BigQuery table where the server writes the output. */ interface GoogleCloudHealthcareV1DicomBigQueryDestinationResponse { /** * Use `write_disposition` instead. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE. */ force: boolean; /** * BigQuery URI to a table, up to 2000 characters long, in the format `bq://projectId.bqDatasetId.tableId` */ tableUri: string; /** * Determines whether the existing table in the destination is to be overwritten or appended to. If a write_disposition is specified, the `force` parameter is ignored. */ writeDisposition: string; } /** * StreamConfig specifies configuration for a streaming DICOM export. */ interface GoogleCloudHealthcareV1DicomStreamConfigResponse { /** * Results are appended to this table. The server creates a new table in the given BigQuery dataset if the specified table does not exist. To enable the Cloud Healthcare API to write to your BigQuery table, you must give the Cloud Healthcare API service account the bigquery.dataEditor role. The service account is: `service-{PROJECT_NUMBER}@gcp-sa-healthcare.iam.gserviceaccount.com`. The PROJECT_NUMBER identifies the project that the DICOM store resides in. To get the project number, go to the Cloud Console Dashboard. It is recommended to not have a custom schema in the destination table which could conflict with the schema created by the Cloud Healthcare API. Instance deletions are not applied to the destination table. The destination's table schema will be automatically updated in case a new instance's data is incompatible with the current schema. The schema should not be updated manually as this can cause incompatibilies that cannot be resolved automatically. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any instance that generates more than 1 MB of BigQuery data will not be streamed. If an instance cannot be streamed to BigQuery, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). */ bigqueryDestination: outputs.healthcare.v1.GoogleCloudHealthcareV1DicomBigQueryDestinationResponse; } /** * The configuration for exporting to BigQuery. */ interface GoogleCloudHealthcareV1FhirBigQueryDestinationResponse { /** * BigQuery URI to an existing dataset, up to 2000 characters long, in the format `bq://projectId.bqDatasetId`. */ datasetUri: string; /** * If this flag is `TRUE`, all tables are deleted from the dataset before the new exported tables are written. If the flag is not set and the destination dataset contains tables, the export call returns an error. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE. */ force: boolean; /** * The configuration for the exported BigQuery schema. */ schemaConfig: outputs.healthcare.v1.SchemaConfigResponse; /** * Determines if existing data in the destination dataset is overwritten, appended to, or not written if the tables contain data. If a write_disposition is specified, the `force` parameter is ignored. */ writeDisposition: string; } /** * Root config message for HL7v2 schema. This contains a schema structure of groups and segments, and filters that determine which messages to apply the schema structure to. */ interface Hl7SchemaConfigResponse { /** * Map from each HL7v2 message type and trigger event pair, such as ADT_A04, to its schema configuration root group. */ messageSchemaConfigs: { [key: string]: string; }; /** * Each VersionSource is tested and only if they all match is the schema used for the message. */ version: outputs.healthcare.v1.VersionSourceResponse[]; } /** * Root config for HL7v2 datatype definitions for a specific HL7v2 version. */ interface Hl7TypesConfigResponse { /** * The HL7v2 type definitions. */ type: outputs.healthcare.v1.TypeResponse[]; /** * The version selectors that this config applies to. A message must match ALL version sources to apply. */ version: outputs.healthcare.v1.VersionSourceResponse[]; } /** * Specifies where and whether to send notifications upon changes to a data store. */ interface Hl7V2NotificationConfigResponse { /** * Restricts notifications sent for messages matching a filter. If this is empty, all messages are matched. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `"query text"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `"Comment = great"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The following fields and functions are available for filtering: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = "ADT"`. * `send_date` or `sendDate`, the YYYY-MM-DD date the message was sent in the dataset's time_zone, from the MSH-7 segment. For example, `send_date < "2017-01-02"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time < "2017-01-02T00:00:00-05:00"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time < "2017-01-02T00:00:00-05:00"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = "ABC"`. * `PatientId(value, type)`, which matches if the message lists a patient having an ID of the given value and type in the PID-2, PID-3, or PID-4 segments. For example, `PatientId("123456", "MRN")`. * `labels.x`, a string value of the label with key `x` as set using the Message.labels map. For example, `labels."priority"="high"`. The operator `:*` can be used to assert the existence of a label. For example, `labels."priority":*`. */ filter: string; /** * The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It's guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification cannot be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). */ pubsubTopic: string; } /** * Specifies how to handle de-identification of image pixels. */ interface ImageConfigResponse { /** * Determines how to redact text from image. */ textRedactionMode: string; } /** * Raw bytes representing consent artifact content. */ interface ImageResponse { /** * Input only. Points to a Cloud Storage URI containing the consent artifact content. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The Cloud Healthcare API service account must have the `roles/storage.objectViewer` Cloud IAM role for this Cloud Storage location. The consent artifact content at this URI is copied to a Cloud Storage location managed by the Cloud Healthcare API. Responses to fetching requests return the consent artifact content in raw_bytes. */ gcsUri: string; /** * Consent artifact content represented as a stream of bytes. This field is populated when returned in GetConsentArtifact response, but not included in CreateConsentArtifact and ListConsentArtifact response. */ rawBytes: string; } /** * A transformation to apply to text that is identified as a specific info_type. */ interface InfoTypeTransformationResponse { /** * Config for character mask. */ characterMaskConfig: outputs.healthcare.v1.CharacterMaskConfigResponse; /** * Config for crypto hash. */ cryptoHashConfig: outputs.healthcare.v1.CryptoHashConfigResponse; /** * Config for date shift. */ dateShiftConfig: outputs.healthcare.v1.DateShiftConfigResponse; /** * InfoTypes to apply this transformation to. If this is not specified, the transformation applies to any info_type. */ infoTypes: string[]; /** * Config for text redaction. */ redactConfig: outputs.healthcare.v1.RedactConfigResponse; /** * Config for replace with InfoType. */ replaceWithInfoTypeConfig: outputs.healthcare.v1.ReplaceWithInfoTypeConfigResponse; } /** * Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. The key must grant the Cloud IAM permission `cloudkms.cryptoKeyVersions.useToDecrypt` to the project's Cloud Healthcare Service Agent service account. For more information, see [Creating a wrapped key] (https://cloud.google.com/dlp/docs/create-wrapped-key). */ interface KmsWrappedCryptoKeyResponse { /** * The resource name of the KMS CryptoKey to use for unwrapping. For example, `projects/{project_id}/locations/{location_id}/keyRings/{keyring}/cryptoKeys/{key}`. */ cryptoKey: string; /** * The wrapped data crypto key. */ wrappedKey: string; } /** * Specifies where to send notifications upon changes to a data store. */ interface NotificationConfigResponse { /** * The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren't submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details. */ pubsubTopic: string; /** * Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports. */ sendForBulkImport: boolean; } /** * The content of a HL7v2 message in a structured format. */ interface ParsedDataResponse { segments: outputs.healthcare.v1.SegmentResponse[]; } /** * The configuration for the parser. It determines how the server parses the messages. */ interface ParserConfigResponse { /** * Determines whether messages with no header are allowed. */ allowNullHeader: boolean; /** * Schemas used to parse messages in this store, if schematized parsing is desired. */ schema: outputs.healthcare.v1.SchemaPackageResponse; /** * Byte(s) to use as the segment terminator. If this is unset, '\r' is used as segment terminator, matching the HL7 version 2 specification. */ segmentTerminator: string; /** * Immutable. Determines the version of both the default parser to be used when `schema` is not given, as well as the schematized parser used when `schema` is specified. This field is immutable after HL7v2 store creation. */ version: string; } /** * A patient identifier and associated type. */ interface PatientIdResponse { /** * ID type. For example, MRN or NHS. */ type: string; /** * The patient's unique identifier. */ value: string; } /** * Define how to redact sensitive values. Default behaviour is erase. For example, "My name is Jane." becomes "My name is ." */ interface RedactConfigResponse { } /** * When using the INSPECT_AND_TRANSFORM action, each match is replaced with the name of the info_type. For example, "My name is Jane" becomes "My name is [PERSON_NAME]." The TRANSFORM action is equivalent to redacting. */ interface ReplaceWithInfoTypeConfigResponse { } /** * Configuration for the FHIR BigQuery schema. Determines how the server generates the schema. */ interface SchemaConfigResponse { /** * The configuration for exported BigQuery tables to be partitioned by FHIR resource's last updated time column. */ lastUpdatedPartitionConfig: outputs.healthcare.v1.TimePartitioningResponse; /** * The depth for all recursive structures in the output analytics schema. For example, `concept` in the CodeSystem resource is a recursive structure; when the depth is 2, the CodeSystem table will have a column called `concept.concept` but not `concept.concept.concept`. If not specified or set to 0, the server will use the default value 2. The maximum depth allowed is 5. */ recursiveStructureDepth: string; /** * Specifies the output schema type. Schema type is required. */ schemaType: string; } /** * A schema package contains a set of schemas and type definitions. */ interface SchemaPackageResponse { /** * Flag to ignore all min_occurs restrictions in the schema. This means that incoming messages can omit any group, segment, field, component, or subcomponent. */ ignoreMinOccurs: boolean; /** * Schema configs that are layered based on their VersionSources that match the incoming message. Schema configs present in higher indices override those in lower indices with the same message type and trigger event if their VersionSources all match an incoming message. */ schemas: outputs.healthcare.v1.Hl7SchemaConfigResponse[]; /** * Determines how messages that fail to parse are handled. */ schematizedParsingType: string; /** * Schema type definitions that are layered based on their VersionSources that match the incoming message. Type definitions present in higher indices override those in lower indices with the same type name if their VersionSources all match an incoming message. */ types: outputs.healthcare.v1.Hl7TypesConfigResponse[]; /** * Determines how unexpected segments (segments not matched to the schema) are handled. */ unexpectedSegmentHandling: string; } /** * The content of an HL7v2 message in a structured format as specified by a schema. */ interface SchematizedDataResponse { /** * JSON output of the parser. */ data: string; /** * The error output of the parser. */ error: string; } /** * A segment in a structured format. */ interface SegmentResponse { /** * A mapping from the positional location to the value. The key string uses zero-based indexes separated by dots to identify Fields, components and sub-components. A bracket notation is also used to identify different instances of a repeated field. Regex for key: (\d+)(\[\d+\])?(.\d+)?(.\d+)? Examples of (key, value) pairs: * (0.1, "hemoglobin") denotes that the first component of Field 0 has the value "hemoglobin". * (1.1.2, "CBC") denotes that the second sub-component of the first component of Field 1 has the value "CBC". * (1[0].1, "HbA1c") denotes that the first component of the first Instance of Field 1, which is repeated, has the value "HbA1c". */ fields: { [key: string]: string; }; /** * A string that indicates the type of segment. For example, EVN or PID. */ segmentId: string; /** * Set ID for segments that can be in a set. This can be empty if it's missing or isn't applicable. */ setId: string; } /** * User signature. */ interface SignatureResponse { /** * Optional. An image of the user's signature. */ image: outputs.healthcare.v1.ImageResponse; /** * Optional. Metadata associated with the user's signature. For example, the user's name or the user's title. */ metadata: { [key: string]: string; }; /** * Optional. Timestamp of the signature. */ signatureTime: string; /** * User's UUID provided by the client. */ userId: string; } /** * Contains configuration for streaming FHIR export. */ interface StreamConfigResponse { /** * The destination BigQuery structure that contains both the dataset location and corresponding schema config. The output is organized in one table per resource type. The server reuses the existing tables (if any) that are named after the resource types. For example, "Patient", "Observation". When there is no existing table for a given resource type, the server attempts to create one. When a table schema doesn't align with the schema config, either because of existing incompatible schema or out of band incompatible modification, the server does not stream in new data. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any resource mutation that generates more than 1 MB of BigQuery data is not streamed. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. Results are written to BigQuery tables according to the parameters in BigQueryDestination.WriteDisposition. Different versions of the same resource are distinguishable by the meta.versionId and meta.lastUpdated columns. The operation (CREATE/UPDATE/DELETE) that results in the new version is recorded in the meta.tag. The tables contain all historical resource versions since streaming was enabled. For query convenience, the server also creates one view per table of the same name containing only the current resource version. The streamed data in the BigQuery dataset is not guaranteed to be completely unique. The combination of the id and meta.versionId columns should ideally identify a single unique row. But in rare cases, duplicates may exist. At query time, users may use the SQL select statement to keep only one of the duplicate rows given an id and meta.versionId pair. Alternatively, the server created view mentioned above also filters out duplicates. If a resource mutation cannot be streamed to BigQuery, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). */ bigqueryDestination: outputs.healthcare.v1.GoogleCloudHealthcareV1FhirBigQueryDestinationResponse; /** * The destination FHIR store for de-identified resources. After this field is added, all subsequent creates/updates/patches to the source store will be de-identified using the provided configuration and applied to the destination store. Importing resources to the source store will not trigger the streaming. If the source store already contains resources when this option is enabled, those resources will not be copied to the destination store unless they are subsequently updated. This may result in invalid references in the destination store. Before adding this config, you must grant the healthcare.fhirResources.update permission on the destination store to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/healthcare/docs/how-tos/permissions-healthcare-api-gcp-products#the_cloud_healthcare_service_agent). The destination store must set enable_update_create to true. The destination store must have disable_referential_integrity set to true. If a resource cannot be de-identified, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). */ deidentifiedStoreDestination: outputs.healthcare.v1.DeidentifiedStoreDestinationResponse; /** * Supply a FHIR resource type (such as "Patient" or "Observation"). See https://www.hl7.org/fhir/valueset-resource-types.html for a list of all FHIR resource types. The server treats an empty list as an intent to stream all the supported resource types in this FHIR store. */ resourceTypes: string[]; } /** * List of tags to be filtered. */ interface TagFilterListResponse { /** * Tags to be filtered. Tags must be DICOM Data Elements, File Meta Elements, or Directory Structuring Elements, as defined at: http://dicom.nema.org/medical/dicom/current/output/html/part06.html#table_6-1,. They may be provided by "Keyword" or "Tag". For example "PatientID", "00100010". */ tags: string[]; } interface TextConfigResponse { /** * Transformations to apply to the detected data, overridden by `exclude_info_types`. */ additionalTransformations: outputs.healthcare.v1.InfoTypeTransformationResponse[]; /** * InfoTypes to skip transforming, overriding `additional_transformations`. */ excludeInfoTypes: string[]; /** * The transformations to apply to the detected data. Deprecated. Use `additional_transformations` instead. * * @deprecated The transformations to apply to the detected data. Deprecated. Use `additional_transformations` instead. */ transformations: outputs.healthcare.v1.InfoTypeTransformationResponse[]; } /** * Configuration for FHIR BigQuery time-partitioned tables. */ interface TimePartitioningResponse { /** * Number of milliseconds for which to keep the storage for a partition. */ expirationMs: string; /** * Type of partitioning. */ type: string; } /** * A type definition for some HL7v2 type (incl. Segments and Datatypes). */ interface TypeResponse { /** * The (sub) fields this type has (if not primitive). */ fields: outputs.healthcare.v1.FieldResponse[]; /** * The name of this type. This would be the segment or datatype name. For example, "PID" or "XPN". */ name: string; /** * If this is a primitive type then this field is the type of the primitive For example, STRING. Leave unspecified for composite types. */ primitive: string; } /** * Contains the configuration for FHIR profiles and validation. */ interface ValidationConfigResponse { /** * Whether to disable FHIRPath validation for incoming resources. Set this to true to disable checking incoming resources for conformance against FHIRPath requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced. */ disableFhirpathValidation: boolean; /** * Whether to disable profile validation for this FHIR store. Set this to true to disable checking incoming resources for conformance against structure definitions in this FHIR store. */ disableProfileValidation: boolean; /** * Whether to disable reference type validation for incoming resources. Set this to true to disable checking incoming resources for conformance against reference type requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced. */ disableReferenceTypeValidation: boolean; /** * Whether to disable required fields validation for incoming resources. Set this to true to disable checking incoming resources for conformance against required fields requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced. */ disableRequiredFieldValidation: boolean; /** * A list of implementation guide URLs in this FHIR store that are used to configure the profiles to use for validation. For example, to use the US Core profiles for validation, set `enabled_implementation_guides` to `["http://hl7.org/fhir/us/core/ImplementationGuide/ig"]`. If `enabled_implementation_guides` is empty or omitted, then incoming resources are only required to conform to the base FHIR profiles. Otherwise, a resource must conform to at least one profile listed in the `global` property of one of the enabled ImplementationGuides. The Cloud Healthcare API does not currently enforce all of the rules in a StructureDefinition. The following rules are supported: - min/max - minValue/maxValue - maxLength - type - fixed[x] - pattern[x] on simple types - slicing, when using "value" as the discriminator type When a URL cannot be resolved (for example, in a type assertion), the server does not return an error. */ enabledImplementationGuides: string[]; } /** * Describes a selector for extracting and matching an MSH field to a value. */ interface VersionSourceResponse { /** * The field to extract from the MSH segment. For example, "3.1" or "18[1].1". */ mshField: string; /** * The value to match with the field. For example, "My Application Name" or "2.3". */ value: string; } } namespace v1beta1 { /** * Configures consent audit log config for FHIR create, read, update, and delete (CRUD) operations. Cloud audit log for healthcare API must be [enabled](https://cloud.google.com/logging/docs/audit/configure-data-access#config-console-enable). The consent-related logs are included as part of `protoPayload.metadata`. */ interface AccessDeterminationLogConfigResponse { /** * Optional. Controls the amount of detail to include as part of the audit logs. */ logLevel: string; } /** * Specifies a selection of tags and an `Action` to apply to each one. */ interface ActionResponse { /** * Inspect image and transform sensitive burnt-in text. Doesn't apply to elements nested in a sequence, which revert to `Keep`. Supported [tags](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html): PixelData */ cleanImageTag: outputs.healthcare.v1beta1.ImageConfigResponse; /** * Inspect text and transform sensitive text. Configurable via TextConfig. Supported Value Representations: AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS */ cleanTextTag: outputs.healthcare.v1beta1.CleanTextTagResponse; /** * Delete tag. */ deleteTag: outputs.healthcare.v1beta1.DeleteTagResponse; /** * Keep tag unchanged. */ keepTag: outputs.healthcare.v1beta1.KeepTagResponse; /** * Select all tags with the listed tag IDs, names, or Value Representations (VRs). Examples: ID: "00100010" Keyword: "PatientName" VR: "PN" */ queries: string[]; /** * Recursively apply DICOM de-id to tags nested in a sequence. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): SQ */ recurseTag: outputs.healthcare.v1beta1.RecurseTagResponse; /** * Replace UID with a new generated UID. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): UI */ regenUidTag: outputs.healthcare.v1beta1.RegenUidTagResponse; /** * Replace with empty tag. */ removeTag: outputs.healthcare.v1beta1.RemoveTagResponse; /** * Reset tag to a placeholder value. */ resetTag: outputs.healthcare.v1beta1.ResetTagResponse; } /** * Specifies how to store annotations during de-identification operation. */ interface AnnotationConfigResponse { /** * The name of the annotation store, in the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`). * The destination annotation store must be in the same project as the source data. De-identifying data across multiple projects is not supported. * The destination annotation store must exist when using DeidentifyDicomStore or DeidentifyFhirStore. DeidentifyDataset automatically creates the destination annotation store. */ annotationStoreName: string; /** * If set to true, the sensitive texts are included in SensitiveTextAnnotation of Annotation. */ storeQuote: boolean; } /** * AnnotationSource holds the source information of the annotation. */ interface AnnotationSourceResponse { /** * Cloud Healthcare API resource. */ cloudHealthcareSource: outputs.healthcare.v1beta1.CloudHealthcareSourceResponse; } /** * An attribute value for a Consent or User data mapping. Each Attribute must have a corresponding AttributeDefinition in the consent store that defines the default and allowed values. */ interface AttributeResponse { /** * Indicates the name of an attribute defined in the consent store. */ attributeDefinitionId: string; /** * The value of the attribute. Must be an acceptable value as defined in the consent store. For example, if the consent store defines "data type" with acceptable values "questionnaire" and "step-count", when the attribute name is data type, this field must contain one of those values. */ values: string[]; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.healthcare.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.healthcare.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * A bounding polygon for the detected image annotation. */ interface BoundingPolyResponse { /** * A description of this polygon. */ label: string; /** * List of the vertices of this polygon. */ vertices: outputs.healthcare.v1beta1.VertexResponse[]; } /** * Mask a string by replacing its characters with a fixed character. */ interface CharacterMaskConfigResponse { /** * Character to mask the sensitive values. If not supplied, defaults to "*". */ maskingCharacter: string; } /** * Replace field value with masking character. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml. */ interface CharacterMaskFieldResponse { } /** * This option is based on the DICOM Standard's [Clean Descriptors Option](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/sect_E.3.5.html), and the `CleanText` `Action` is applied to all the specified fields. When cleaning text, the process attempts to transform phrases matching any of the tags marked for removal (action codes D, Z, X, and U) in the [Basic Profile](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html). These contextual phrases are replaced with the token "[CTX]". This option uses an additional infoType during inspection. */ interface CleanDescriptorsOptionResponse { } /** * Inspect text and transform sensitive text. Configure using TextConfig. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml. */ interface CleanTextFieldResponse { } /** * Inspect text and transform sensitive text. Configurable using TextConfig. Supported [Value Representations] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS */ interface CleanTextTagResponse { } /** * Cloud Healthcare API resource. */ interface CloudHealthcareSourceResponse { /** * Full path of a Cloud Healthcare API resource. */ name: string; } /** * Configures whether to enforce consent for the FHIR store and which consent enforcement version is being used. */ interface ConsentConfigResponse { /** * Optional. Specifies how the server logs the consent-aware requests. If not specified, the `AccessDeterminationLogConfig.LogLevel.MINIMUM` option is used. */ accessDeterminationLogConfig: outputs.healthcare.v1beta1.AccessDeterminationLogConfigResponse; /** * Optional. If set to true, when accessing FHIR resources, the consent headers provided using [SMART-on-FHIR](https://cloud.google.com/healthcare/private/docs/how-tos/smart-on-fhir) will be verified against consents given by patients. See the ConsentEnforcementVersion for the supported consent headers. */ accessEnforced: boolean; /** * Optional. Different options to configure the behaviour of the server when handling the `X-Consent-Scope` header. */ consentHeaderHandling: outputs.healthcare.v1beta1.ConsentHeaderHandlingResponse; /** * The versioned names of the enforced admin Consent resource(s), in the format `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}/_history/{version_id}`. For FHIR stores with `disable_resource_versioning=true`, the format is `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}`. This field can only be updated using ApplyAdminConsents. */ enforcedAdminConsents: string[]; /** * Specifies which consent enforcement version is being used for this FHIR store. This field can only be set once by either CreateFhirStore or UpdateFhirStore. After that, you must call ApplyConsents to change the version. */ version: string; } /** * How the server handles the consent header. */ interface ConsentHeaderHandlingResponse { /** * Optional. Specifies the default server behavior when the header is empty. If not specified, the `ScopeProfile.PERMIT_EMPTY_SCOPE` option is used. */ profile: string; } /** * Fields that don't match a KeepField or CleanTextField `action` in the BASIC profile are collected into a contextual phrase list. For fields that match a CleanTextField `action` in FieldMetadata or ProfileType, the process attempts to transform phrases matching these contextual entries. These contextual phrases are replaced with the token "[CTX]". This feature uses an additional InfoType during inspection. */ interface ContextualDeidConfigResponse { } /** * Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. Outputs a base64-encoded representation of the hashed output. For example, `L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=`. */ interface CryptoHashConfigResponse { /** * An AES 128/192/256 bit key. Causes the hash to be computed based on this key. A default key is generated for each Deidentify operation and is used when neither crypto_key nor kms_wrapped is specified. Must not be set if kms_wrapped is set. */ cryptoKey: string; /** * KMS wrapped key. Must not be set if crypto_key is set. */ kmsWrapped: outputs.healthcare.v1beta1.KmsWrappedCryptoKeyResponse; } /** * Replace field value with a hash of that value. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml. */ interface CryptoHashFieldResponse { } /** * Shift a date forward or backward in time by a random amount which is consistent for a given patient and crypto key combination. */ interface DateShiftConfigResponse { /** * An AES 128/192/256 bit key. The date shift is computed based on this key and the patient ID. If the patient ID is empty for a DICOM resource, the date shift is computed based on this key and the study instance UID. If crypto_key is not set, then kms_wrapped is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if kms_wrapped is set. */ cryptoKey: string; /** * KMS wrapped key. If kms_wrapped is not set, then crypto_key is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if crypto_key is set. */ kmsWrapped: outputs.healthcare.v1beta1.KmsWrappedCryptoKeyResponse; } /** * Shift the date by a randomized number of days. See [date shifting](https://cloud.google.com/dlp/docs/concepts-date-shifting) for more information. Supported [types](https://www.hl7.org/fhir/datatypes.html): Date, DateTime. */ interface DateShiftFieldResponse { } /** * Contains configuration for streaming de-identified FHIR export. */ interface DeidentifiedStoreDestinationResponse { /** * The configuration to use when de-identifying resources that are added to this store. */ config: outputs.healthcare.v1beta1.DeidentifyConfigResponse; /** * The full resource name of a Cloud Healthcare FHIR store, for example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`. */ store: string; } /** * Configures de-id options specific to different types of content. Each submessage customizes the handling of an https://tools.ietf.org/html/rfc6838 media type or subtype. Configs are applied in a nested manner at runtime. */ interface DeidentifyConfigResponse { /** * Configures how annotations, meaning that the location and infoType of sensitive information findings, are created during de-identification. If unspecified, no annotations are created. */ annotation: outputs.healthcare.v1beta1.AnnotationConfigResponse; /** * Configures de-id of application/DICOM content. Deprecated. Use `dicom_tag_config` instead. * * @deprecated Configures de-id of application/DICOM content. Deprecated. Use `dicom_tag_config` instead. */ dicom: outputs.healthcare.v1beta1.DicomConfigResponse; /** * Configures de-id of application/DICOM content. */ dicomTagConfig: outputs.healthcare.v1beta1.DicomTagConfigResponse; /** * Configures de-id of application/FHIR content. Deprecated. Use `fhir_field_config` instead. * * @deprecated Configures de-id of application/FHIR content. Deprecated. Use `fhir_field_config` instead. */ fhir: outputs.healthcare.v1beta1.FhirConfigResponse; /** * Configures de-id of application/FHIR content. */ fhirFieldConfig: outputs.healthcare.v1beta1.FhirFieldConfigResponse; /** * Configures the de-identification of image pixels in the source_dataset. Deprecated. Use `dicom_tag_config.options.clean_image` instead. * * @deprecated Configures the de-identification of image pixels in the source_dataset. Deprecated. Use `dicom_tag_config.options.clean_image` instead. */ image: outputs.healthcare.v1beta1.ImageConfigResponse; /** * Details about the work the de-identify operation performed. */ operationMetadata: outputs.healthcare.v1beta1.DeidentifyOperationMetadataResponse; /** * Configures de-identification of text wherever it is found in the source_dataset. */ text: outputs.healthcare.v1beta1.TextConfigResponse; /** * Ensures in-flight data remains in the region of origin during de-identification. Using this option results in a significant reduction of throughput, and is not compatible with `LOCATION` or `ORGANIZATION_NAME` infoTypes. If the deprecated DicomConfig or FhirConfig are used, then `LOCATION` must be excluded within TextConfig, and must also be excluded within ImageConfig if image redaction is required. */ useRegionalDataProcessing: boolean; } /** * Details about the work the de-identify operation performed. */ interface DeidentifyOperationMetadataResponse { /** * Details about the FHIR store to write the output to. */ fhirOutput: outputs.healthcare.v1beta1.FhirOutputResponse; } /** * Delete tag. */ interface DeleteTagResponse { } /** * Specifies the parameters needed for de-identification of DICOM stores. */ interface DicomConfigResponse { /** * Tag filtering profile that determines which tags to keep/remove. */ filterProfile: string; /** * List of tags to keep. Remove all other tags. */ keepList: outputs.healthcare.v1beta1.TagFilterListResponse; /** * List of tags to remove. Keep all other tags. */ removeList: outputs.healthcare.v1beta1.TagFilterListResponse; /** * If true, skip replacing StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID, and MediaStorageSOPInstanceUID and leave them untouched. The Cloud Healthcare API regenerates these UIDs by default based on the DICOM Standard's reasoning: "Whilst these UIDs cannot be mapped directly to an individual out of context, given access to the original images, or to a database of the original images containing the UIDs, it would be possible to recover the individual's identity." http://dicom.nema.org/medical/dicom/current/output/chtml/part15/sect_E.3.9.html */ skipIdRedaction: boolean; } /** * Specifies the parameters needed for the de-identification of DICOM stores. */ interface DicomTagConfigResponse { /** * Specifies custom tag selections and `Actions` to apply to them. Overrides `options` and `profile`. Conflicting `Actions` are applied in the order given. */ actions: outputs.healthcare.v1beta1.ActionResponse[]; /** * Specifies additional options to apply, overriding the base `profile`. */ options: outputs.healthcare.v1beta1.OptionsResponse; /** * Base profile type for handling DICOM tags. */ profileType: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Specifies how to handle de-identification of a FHIR store. */ interface FhirConfigResponse { /** * The behaviour for handling FHIR extensions that aren't otherwise specified for de-identification. If true, all extensions are preserved during de-identification by default. If false or unspecified, all extensions are removed during de-identification by default. */ defaultKeepExtensions: boolean; /** * Specifies FHIR paths to match and how to transform them. Any field that is not matched by a FieldMetadata is passed through to the output dataset unmodified. All extensions will be processed according to `default_keep_extensions`. If a field can be matched by more than one FieldMetadata, the first FieldMetadata.Action is applied. */ fieldMetadataList: outputs.healthcare.v1beta1.FieldMetadataResponse[]; } /** * Specifies how to handle the de-identification of a FHIR store. */ interface FhirFieldConfigResponse { /** * Specifies FHIR paths to match and how to transform them. Any field that is not matched by a FieldMetadata `action` is passed through to the output dataset unmodified. All extensions will be processed according to keep_extensions. If a field can be matched by more than one FieldMetadata `action`, the first `action` option is applied. Overrides options and the union field `profile` in FhirFieldConfig. */ fieldMetadataList: outputs.healthcare.v1beta1.GoogleCloudHealthcareV1beta1DeidentifyFieldMetadataResponse[]; /** * Specifies additional options, overriding the base ProfileType. */ options: outputs.healthcare.v1beta1.GoogleCloudHealthcareV1beta1DeidentifyOptionsResponse; /** * Base profile type for handling FHIR fields. */ profileType: string; } /** * Contains the configuration for FHIR notifications. */ interface FhirNotificationConfigResponse { /** * The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail (https://cloud.google.com/healthcare-api/docs/permissions-healthcare-api-gcp-products#dicom_fhir_and_hl7v2_store_cloud_pubsub_permissions). If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare-api/docs/how-tos/logging). */ pubsubTopic: string; /** * Whether to send full FHIR resource to this Pub/Sub topic for Create and Update operation. Note that setting this to true does not guarantee that all resources will be sent in the format of full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always check the "payloadType" label from a Pub/Sub message to determine whether it needs to fetch the full resource as a separate operation. */ sendFullResource: boolean; /** * Whether to send full FHIR resource to this Pub/Sub topic for deleting FHIR resource. Note that setting this to true does not guarantee that all previous resources will be sent in the format of full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always check the "payloadType" label from a Pub/Sub message to determine whether it needs to fetch the full previous resource as a separate operation. */ sendPreviousResourceOnDelete: boolean; } /** * Details about the FHIR store to write the output to. */ interface FhirOutputResponse { /** * Name of the output FHIR store, which must already exist. You must grant the healthcare.fhirResources.update permission on the destination store to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/healthcare/docs/how-tos/permissions-healthcare-api-gcp-products#the_cloud_healthcare_service_agent). The destination store must set enableUpdateCreate to true. The destination store must use FHIR version R4. Writing these resources will consume FHIR operations quota from the project containing the source data. De-identify operation metadata is only generated for DICOM de-identification operations. */ fhirStore: string; } /** * Specifies FHIR paths to match, and how to handle de-identification of matching fields. */ interface FieldMetadataResponse { /** * Deidentify action for one field. */ action: string; /** * List of paths to FHIR fields to redact. Each path is a period-separated list where each component is either a field name or FHIR type name. All types begin with an upper case letter. For example, the resource field "Patient.Address.city", which uses a string type, can be matched by "Patient.Address.String". Path also supports partial matching. For example, "Patient.Address.city" can be matched by "Address.city" (Patient omitted). Partial matching and type matching can be combined. For example, "Patient.Address.city" can be matched by "Address.String". For "choice" types (those defined in the FHIR spec with the form: field[x]), use two separate components. For example, "deceasedAge.unit" is matched by "Deceased.Age.unit". Supported types are: AdministrativeGenderCode, Base64Binary, Boolean, Code, Date, DateTime, Decimal, HumanName, Id, Instant, Integer, LanguageCode, Markdown, Oid, PositiveInt, String, UnsignedInt, Uri, Uuid, Xhtml. The sub-type for HumanName(for example HumanName.given, HumanName.family) can be omitted. */ paths: string[]; } /** * A (sub) field of a type. */ interface FieldResponse { /** * The maximum number of times this field can be repeated. 0 or -1 means unbounded. */ maxOccurs: number; /** * The minimum number of times this field must be present/repeated. */ minOccurs: number; /** * The name of the field. For example, "PID-1" or just "1". */ name: string; /** * The HL7v2 table this field refers to. For example, PID-15 (Patient's Primary Language) usually refers to table "0296". */ table: string; /** * The type of this field. A Type with this name must be defined in an Hl7TypesConfig. */ type: string; } /** * Represents a user's consent in terms of the resources that can be accessed and under what conditions. */ interface GoogleCloudHealthcareV1beta1ConsentPolicyResponse { /** * The request conditions to meet to grant access. In addition to any supported comparison operators, authorization rules may have `IN` operator as well as at most 10 logical operators that are limited to `AND` (`&&`), `OR` (`||`). */ authorizationRule: outputs.healthcare.v1beta1.ExprResponse; /** * The resources that this policy applies to. A resource is a match if it matches all the attributes listed here. If empty, this policy applies to all User data mappings for the given user. */ resourceAttributes: outputs.healthcare.v1beta1.AttributeResponse[]; } /** * Specifies the FHIR paths to match and how to handle the de-identification of matching fields. */ interface GoogleCloudHealthcareV1beta1DeidentifyFieldMetadataResponse { /** * Replace the field's value with a masking character. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml. */ characterMaskField: outputs.healthcare.v1beta1.CharacterMaskFieldResponse; /** * Inspect the field's text and transform sensitive text. Configure using TextConfig. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml. */ cleanTextField: outputs.healthcare.v1beta1.CleanTextFieldResponse; /** * Replace field value with a hash of that value. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml. */ cryptoHashField: outputs.healthcare.v1beta1.CryptoHashFieldResponse; /** * Shift the date by a randomized number of days. See [date shifting](https://cloud.google.com/dlp/docs/concepts-date-shifting) for more information. Supported [types](https://www.hl7.org/fhir/datatypes.html): Date, DateTime. */ dateShiftField: outputs.healthcare.v1beta1.DateShiftFieldResponse; /** * Keep the field unchanged. */ keepField: outputs.healthcare.v1beta1.KeepFieldResponse; /** * List of paths to FHIR fields to redact. Each path is a period-separated list where each component is either a field name or FHIR [type](https://www.hl7.org/fhir/datatypes.html) name. All types begin with an upper case letter. For example, the resource field `Patient.Address.city`, which uses a [string](https://www.hl7.org/fhir/datatypes-definitions.html#Address.city) type, can be matched by `Patient.Address.String`. Partial matching is supported. For example, `Patient.Address.city` can be matched by `Address.city` (with `Patient` omitted). Partial matching and type matching can be combined, for example `Patient.Address.city` can be matched by `Address.String`. For "choice" types (those defined in the FHIR spec with the format `field[x]`), use two separate components. For example, `deceasedAge.unit` is matched by `Deceased.Age.unit`. The following types are supported: AdministrativeGenderCode, Base64Binary, Boolean, Code, Date, DateTime, Decimal, HumanName, Id, Instant, Integer, LanguageCode, Markdown, Oid, PositiveInt, String, UnsignedInt, Uri, Uuid, Xhtml. The sub-type for HumanName (for example `HumanName.given`, `HumanName.family`) can be omitted. */ paths: string[]; /** * Remove the field. */ removeField: outputs.healthcare.v1beta1.RemoveFieldResponse; } /** * Specifies additional options to apply to the base ProfileType. */ interface GoogleCloudHealthcareV1beta1DeidentifyOptionsResponse { /** * Character mask config for CharacterMaskField. */ characterMaskConfig: outputs.healthcare.v1beta1.CharacterMaskConfigResponse; /** * Configure contextual de-id. */ contextualDeid: outputs.healthcare.v1beta1.ContextualDeidConfigResponse; /** * Crypto hash config for CharacterMaskField. */ cryptoHashConfig: outputs.healthcare.v1beta1.CryptoHashConfigResponse; /** * Date shifting config for CharacterMaskField. */ dateShiftConfig: outputs.healthcare.v1beta1.DateShiftConfigResponse; /** * Configure keeping extensions by default. */ keepExtensions: outputs.healthcare.v1beta1.KeepExtensionsConfigResponse; } /** * The BigQuery table where the server writes output. */ interface GoogleCloudHealthcareV1beta1DicomBigQueryDestinationResponse { /** * Use `write_disposition` instead. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE. */ force: boolean; /** * BigQuery URI to a table, up to 2000 characters long, in the format `bq://projectId.bqDatasetId.tableId` */ tableUri: string; /** * Determines whether the existing table in the destination is to be overwritten or appended to. If a write_disposition is specified, the `force` parameter is ignored. */ writeDisposition: string; } /** * StreamConfig specifies configuration for a streaming DICOM export. */ interface GoogleCloudHealthcareV1beta1DicomStreamConfigResponse { /** * Results are appended to this table. The server creates a new table in the given BigQuery dataset if the specified table does not exist. To enable the Cloud Healthcare API to write to your BigQuery table, you must give the Cloud Healthcare API service account the bigquery.dataEditor role. The service account is: `service-{PROJECT_NUMBER}@gcp-sa-healthcare.iam.gserviceaccount.com`. The PROJECT_NUMBER identifies the project that the DICOM store resides in. To get the project number, go to the Cloud Console Dashboard. It is recommended to not have a custom schema in the destination table which could conflict with the schema created by the Cloud Healthcare API. Instance deletions are not applied to the destination table. The destination's table schema will be automatically updated in case a new instance's data is incompatible with the current schema. The schema should not be updated manually as this can cause incompatibilies that cannot be resolved automatically. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any instance that generates more than 1 MB of BigQuery data will not be streamed. If an instance cannot be streamed to BigQuery, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). */ bigqueryDestination: outputs.healthcare.v1beta1.GoogleCloudHealthcareV1beta1DicomBigQueryDestinationResponse; } /** * The configuration for exporting to BigQuery. */ interface GoogleCloudHealthcareV1beta1FhirBigQueryDestinationResponse { /** * BigQuery URI to an existing dataset, up to 2000 characters long, in the format `bq://projectId.bqDatasetId`. */ datasetUri: string; /** * Use `write_disposition` instead. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE. */ force: boolean; /** * The configuration for the exported BigQuery schema. */ schemaConfig: outputs.healthcare.v1beta1.SchemaConfigResponse; /** * Determines if existing data in the destination dataset is overwritten, appended to, or not written if the tables contain data. If a write_disposition is specified, the `force` parameter is ignored. */ writeDisposition: string; } /** * Root config message for HL7v2 schema. This contains a schema structure of groups and segments, and filters that determine which messages to apply the schema structure to. */ interface Hl7SchemaConfigResponse { /** * Map from each HL7v2 message type and trigger event pair, such as ADT_A04, to its schema configuration root group. */ messageSchemaConfigs: { [key: string]: string; }; /** * Each VersionSource is tested and only if they all match is the schema used for the message. */ version: outputs.healthcare.v1beta1.VersionSourceResponse[]; } /** * Root config for HL7v2 datatype definitions for a specific HL7v2 version. */ interface Hl7TypesConfigResponse { /** * The HL7v2 type definitions. */ type: outputs.healthcare.v1beta1.TypeResponse[]; /** * The version selectors that this config applies to. A message must match ALL version sources to apply. */ version: outputs.healthcare.v1beta1.VersionSourceResponse[]; } /** * Specifies where and whether to send notifications upon changes to a data store. */ interface Hl7V2NotificationConfigResponse { /** * Restricts notifications sent for messages matching a filter. If this is empty, all messages are matched. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `"query text"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `"Comment = great"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Fields/functions available for filtering are: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = "ADT"`. * `send_date` or `sendDate`, the YYYY-MM-DD date the message was sent in the dataset's time_zone, from the MSH-7 segment. For example, `send_date < "2017-01-02"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time < "2017-01-02T00:00:00-05:00"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time < "2017-01-02T00:00:00-05:00"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = "ABC"`. * `PatientId(value, type)`, which matches if the message lists a patient having an ID of the given value and type in the PID-2, PID-3, or PID-4 segments. For example, `PatientId("123456", "MRN")`. * `labels.x`, a string value of the label with key `x` as set using the Message.labels map. For example, `labels."priority"="high"`. The operator `:*` can be used to assert the existence of a label. For example, `labels."priority":*`. */ filter: string; /** * The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging). */ pubsubTopic: string; } /** * Image annotation. */ interface ImageAnnotationResponse { /** * The list of polygons outlining the sensitive regions in the image. */ boundingPolys: outputs.healthcare.v1beta1.BoundingPolyResponse[]; /** * 0-based index of the image frame. For example, an image frame in a DICOM instance. */ frameIndex: number; } /** * Specifies how to handle de-identification of image pixels. */ interface ImageConfigResponse { /** * Additional InfoTypes to redact in the images in addition to those used by `text_redaction_mode`. Can only be used when `text_redaction_mode` is set to `REDACT_SENSITIVE_TEXT`, `REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS` or `TEXT_REDACTION_MODE_UNSPECIFIED`. */ additionalInfoTypes: string[]; /** * InfoTypes to skip redacting, overriding those used by `text_redaction_mode`. Can only be used when `text_redaction_mode` is set to `REDACT_SENSITIVE_TEXT` or `REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS`. */ excludeInfoTypes: string[]; /** * Determines how to redact text from image. */ textRedactionMode: string; } /** * Raw bytes representing consent artifact content. */ interface ImageResponse { /** * Input only. Points to a Cloud Storage URI containing the consent artifact content. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The Cloud Healthcare API service account must have the `roles/storage.objectViewer` Cloud IAM role for this Cloud Storage location. The consent artifact content at this URI is copied to a Cloud Storage location managed by the Cloud Healthcare API. Responses to fetching requests return the consent artifact content in raw_bytes. */ gcsUri: string; /** * Consent artifact content represented as a stream of bytes. This field is populated when returned in GetConsentArtifact response, but not included in CreateConsentArtifact and ListConsentArtifact response. */ rawBytes: string; } /** * A transformation to apply to text that is identified as a specific info_type. */ interface InfoTypeTransformationResponse { /** * Config for character mask. */ characterMaskConfig: outputs.healthcare.v1beta1.CharacterMaskConfigResponse; /** * Config for crypto hash. */ cryptoHashConfig: outputs.healthcare.v1beta1.CryptoHashConfigResponse; /** * Config for date shift. */ dateShiftConfig: outputs.healthcare.v1beta1.DateShiftConfigResponse; /** * `InfoTypes` to apply this transformation to. If this is not specified, this transformation becomes the default transformation, and is used for any `info_type` that is not specified in another transformation. */ infoTypes: string[]; /** * Config for text redaction. */ redactConfig: outputs.healthcare.v1beta1.RedactConfigResponse; /** * Config for replace with InfoType. */ replaceWithInfoTypeConfig: outputs.healthcare.v1beta1.ReplaceWithInfoTypeConfigResponse; } /** * The behavior for handling FHIR extensions that aren't otherwise specified for de-identification. If provided, all extensions are preserved during de-identification by default. If unspecified, all extensions are removed during de-identification by default. */ interface KeepExtensionsConfigResponse { } /** * Keep field unchanged. */ interface KeepFieldResponse { } /** * Keep tag unchanged. */ interface KeepTagResponse { } /** * Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. The key must grant the Cloud IAM permission `cloudkms.cryptoKeyVersions.useToDecrypt` to the project's Cloud Healthcare Service Agent service account. For more information, see [Creating a wrapped key] (https://cloud.google.com/dlp/docs/create-wrapped-key). */ interface KmsWrappedCryptoKeyResponse { /** * The resource name of the KMS CryptoKey to use for unwrapping. For example, `projects/{project_id}/locations/{location_id}/keyRings/{keyring}/cryptoKeys/{key}`. */ cryptoKey: string; /** * The wrapped data crypto key. */ wrappedKey: string; } /** * Specifies where to send notifications upon changes to a data store. */ interface NotificationConfigResponse { /** * The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren't submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details. */ pubsubTopic: string; /** * Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports. */ sendForBulkImport: boolean; } /** * Specifies additional options to apply to the base profile. */ interface OptionsResponse { /** * Set Clean Descriptors Option. */ cleanDescriptors: outputs.healthcare.v1beta1.CleanDescriptorsOptionResponse; /** * Apply `Action.clean_image` to [`PixelData`](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html) as configured. */ cleanImage: outputs.healthcare.v1beta1.ImageConfigResponse; /** * Set `Action` for [`StudyInstanceUID`, `SeriesInstanceUID`, `SOPInstanceUID`, and `MediaStorageSOPInstanceUID`](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html). */ primaryIds: string; } /** * The content of an HL7v2 message in a structured format. */ interface ParsedDataResponse { segments: outputs.healthcare.v1beta1.SegmentResponse[]; } /** * The configuration for the parser. It determines how the server parses the messages. */ interface ParserConfigResponse { /** * Determines whether messages with no header are allowed. */ allowNullHeader: boolean; /** * Schemas used to parse messages in this store, if schematized parsing is desired. */ schema: outputs.healthcare.v1beta1.SchemaPackageResponse; /** * Byte(s) to use as the segment terminator. If this is unset, '\r' is used as segment terminator, matching the HL7 version 2 specification. */ segmentTerminator: string; /** * Immutable. Determines the version of both the default parser to be used when `schema` is not given, as well as the schematized parser used when `schema` is specified. This field is immutable after HL7v2 store creation. */ version: string; } /** * A patient identifier and associated type. */ interface PatientIdResponse { /** * ID type. For example, MRN or NHS. */ type: string; /** * The patient's unique identifier. */ value: string; } /** * Recursively apply DICOM de-id to tags nested in a sequence. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): SQ */ interface RecurseTagResponse { } /** * Define how to redact sensitive values. Default behaviour is erase. For example, "My name is Jane." becomes "My name is ." */ interface RedactConfigResponse { } /** * Replace UID with a new generated UID. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): UI */ interface RegenUidTagResponse { } /** * Remove field. */ interface RemoveFieldResponse { } /** * Replace with empty tag. */ interface RemoveTagResponse { } /** * When using the INSPECT_AND_TRANSFORM action, each match is replaced with the name of the info_type. For example, "My name is Jane" becomes "My name is [PERSON_NAME]." The TRANSFORM action is equivalent to redacting. */ interface ReplaceWithInfoTypeConfigResponse { } /** * Reset tag to a placeholder value. */ interface ResetTagResponse { } /** * Resource level annotation. */ interface ResourceAnnotationResponse { /** * A description of the annotation record. */ label: string; } /** * Configuration for the FHIR BigQuery schema. Determines how the server generates the schema. */ interface SchemaConfigResponse { /** * The configuration for exported BigQuery tables to be partitioned by FHIR resource's last updated time column. */ lastUpdatedPartitionConfig: outputs.healthcare.v1beta1.TimePartitioningResponse; /** * The depth for all recursive structures in the output analytics schema. For example, `concept` in the CodeSystem resource is a recursive structure; when the depth is 2, the CodeSystem table will have a column called `concept.concept` but not `concept.concept.concept`. If not specified or set to 0, the server will use the default value 2. The maximum depth allowed is 5. */ recursiveStructureDepth: string; /** * Specifies the output schema type. Schema type is required. */ schemaType: string; } /** * A schema package contains a set of schemas and type definitions. */ interface SchemaPackageResponse { /** * Flag to ignore all min_occurs restrictions in the schema. This means that incoming messages can omit any group, segment, field, component, or subcomponent. */ ignoreMinOccurs: boolean; /** * Schema configs that are layered based on their VersionSources that match the incoming message. Schema configs present in higher indices override those in lower indices with the same message type and trigger event if their VersionSources all match an incoming message. */ schemas: outputs.healthcare.v1beta1.Hl7SchemaConfigResponse[]; /** * Determines how messages that fail to parse are handled. */ schematizedParsingType: string; /** * Schema type definitions that are layered based on their VersionSources that match the incoming message. Type definitions present in higher indices override those in lower indices with the same type name if their VersionSources all match an incoming message. */ types: outputs.healthcare.v1beta1.Hl7TypesConfigResponse[]; /** * Determines how unexpected segments (segments not matched to the schema) are handled. */ unexpectedSegmentHandling: string; } /** * The content of an HL7v2 message in a structured format as specified by a schema. */ interface SchematizedDataResponse { /** * JSON output of the parser. */ data: string; /** * The error output of the parser. */ error: string; } /** * Contains the configuration for FHIR search. */ interface SearchConfigResponse { /** * A list of search parameters in this FHIR store that are used to configure this FHIR store. */ searchParameters: outputs.healthcare.v1beta1.SearchParameterResponse[]; } /** * Contains the versioned name and the URL for one SearchParameter. */ interface SearchParameterResponse { /** * The canonical url of the search parameter resource. */ canonicalUrl: string; /** * The versioned name of the search parameter resource. The format is projects/{project-id}/locations/{location}/datasets/{dataset-id}/fhirStores/{fhirStore-id}/fhir/SearchParameter/{resource-id}/_history/{version-id} For fhir stores with disable_resource_versioning=true, the format is projects/{project-id}/locations/{location}/datasets/{dataset-id}/fhirStores/{fhirStore-id}/fhir/SearchParameter/{resource-id}/ */ parameter: string; } /** * A segment in a structured format. */ interface SegmentResponse { /** * A mapping from the positional location to the value. The key string uses zero-based indexes separated by dots to identify Fields, components and sub-components. A bracket notation is also used to identify different instances of a repeated field. Regex for key: (\d+)(\[\d+\])?(.\d+)?(.\d+)? Examples of (key, value) pairs: * (0.1, "hemoglobin") denotes that the first component of Field 0 has the value "hemoglobin". * (1.1.2, "CBC") denotes that the second sub-component of the first component of Field 1 has the value "CBC". * (1[0].1, "HbA1c") denotes that the first component of the first Instance of Field 1, which is repeated, has the value "HbA1c". */ fields: { [key: string]: string; }; /** * A string that indicates the type of segment. For example, EVN or PID. */ segmentId: string; /** * Set ID for segments that can be in a set. This can be empty if it's missing or isn't applicable. */ setId: string; } /** * A TextAnnotation specifies a text range that includes sensitive information. */ interface SensitiveTextAnnotationResponse { /** * Maps from a resource slice. For example, FHIR resource field path to a set of sensitive text findings. For example, Appointment.Narrative text1 --> {findings_1, findings_2, findings_3} */ details: { [key: string]: string; }; } /** * User signature. */ interface SignatureResponse { /** * Optional. An image of the user's signature. */ image: outputs.healthcare.v1beta1.ImageResponse; /** * Optional. Metadata associated with the user's signature. For example, the user's name or the user's title. */ metadata: { [key: string]: string; }; /** * Optional. Timestamp of the signature. */ signatureTime: string; /** * User's UUID provided by the client. */ userId: string; } /** * Contains configuration for streaming FHIR export. */ interface StreamConfigResponse { /** * The destination BigQuery structure that contains both the dataset location and corresponding schema config. The output is organized in one table per resource type. The server reuses the existing tables (if any) that are named after the resource types, e.g. "Patient", "Observation". When there is no existing table for a given resource type, the server attempts to create one. When a table schema doesn't align with the schema config, either because of existing incompatible schema or out of band incompatible modification, the server does not stream in new data. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any resource mutation that generates more than 1 MB of BigQuery data will not be streamed. Results are written to BigQuery tables according to the parameters in BigQueryDestination.WriteDisposition. Different versions of the same resource are distinguishable by the meta.versionId and meta.lastUpdated columns. The operation (CREATE/UPDATE/DELETE) that results in the new version is recorded in the meta.tag. The tables contain all historical resource versions since streaming was enabled. For query convenience, the server also creates one view per table of the same name containing only the current resource version. The streamed data in the BigQuery dataset is not guaranteed to be completely unique. The combination of the id and meta.versionId columns should ideally identify a single unique row. But in rare cases, duplicates may exist. At query time, users may use the SQL select statement to keep only one of the duplicate rows given an id and meta.versionId pair. Alternatively, the server created view mentioned above also filters out duplicates. If a resource mutation cannot be streamed to BigQuery, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). */ bigqueryDestination: outputs.healthcare.v1beta1.GoogleCloudHealthcareV1beta1FhirBigQueryDestinationResponse; /** * The destination FHIR store for de-identified resources. After this field is added, all subsequent creates/updates/patches to the source store will be de-identified using the provided configuration and applied to the destination store. Importing resources to the source store will not trigger the streaming. If the source store already contains resources when this option is enabled, those resources will not be copied to the destination store unless they are subsequently updated. This may result in invalid references in the destination store. Before adding this config, you must grant the healthcare.fhirResources.update permission on the destination store to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/healthcare/docs/how-tos/permissions-healthcare-api-gcp-products#the_cloud_healthcare_service_agent). The destination store must set enable_update_create to true. The destination store must have disable_referential_integrity set to true. If a resource cannot be de-identified, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). */ deidentifiedStoreDestination: outputs.healthcare.v1beta1.DeidentifiedStoreDestinationResponse; /** * Supply a FHIR resource type (such as "Patient" or "Observation"). See https://www.hl7.org/fhir/valueset-resource-types.html for a list of all FHIR resource types. The server treats an empty list as an intent to stream all the supported resource types in this FHIR store. */ resourceTypes: string[]; } /** * List of tags to be filtered. */ interface TagFilterListResponse { /** * Tags to be filtered. Tags must be DICOM Data Elements, File Meta Elements, or Directory Structuring Elements, as defined at: http://dicom.nema.org/medical/dicom/current/output/html/part06.html#table_6-1,. They may be provided by "Keyword" or "Tag". For example, "PatientID", "00100010". */ tags: string[]; } /** * Configures how to transform sensitive text `InfoTypes`. */ interface TextConfigResponse { /** * Additional transformations to apply to the detected data, overriding `profile`. */ additionalTransformations: outputs.healthcare.v1beta1.InfoTypeTransformationResponse[]; /** * InfoTypes to skip transforming, overriding `profile`. */ excludeInfoTypes: string[]; /** * Base profile type for text transformation. */ profileType: string; /** * The transformations to apply to the detected data. Deprecated. Use `additional_transformations` instead. * * @deprecated The transformations to apply to the detected data. Deprecated. Use `additional_transformations` instead. */ transformations: outputs.healthcare.v1beta1.InfoTypeTransformationResponse[]; } /** * Configuration for FHIR BigQuery time-partitioned tables. */ interface TimePartitioningResponse { /** * Number of milliseconds for which to keep the storage for a partition. */ expirationMs: string; /** * Type of partitioning. */ type: string; } /** * A type definition for some HL7v2 type (incl. Segments and Datatypes). */ interface TypeResponse { /** * The (sub) fields this type has (if not primitive). */ fields: outputs.healthcare.v1beta1.FieldResponse[]; /** * The name of this type. This would be the segment or datatype name. For example, "PID" or "XPN". */ name: string; /** * If this is a primitive type then this field is the type of the primitive For example, STRING. Leave unspecified for composite types. */ primitive: string; } /** * Contains the configuration for FHIR profiles and validation. */ interface ValidationConfigResponse { /** * Whether to disable FHIRPath validation for incoming resources. Set this to true to disable checking incoming resources for conformance against FHIRPath requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced. */ disableFhirpathValidation: boolean; /** * Whether to disable profile validation for this FHIR store. Set this to true to disable checking incoming resources for conformance against StructureDefinitions in this FHIR store. */ disableProfileValidation: boolean; /** * Whether to disable reference type validation for incoming resources. Set this to true to disable checking incoming resources for conformance against reference type requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced. */ disableReferenceTypeValidation: boolean; /** * Whether to disable required fields validation for incoming resources. Set this to true to disable checking incoming resources for conformance against required fields requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced. */ disableRequiredFieldValidation: boolean; /** * A list of ImplementationGuide URLs in this FHIR store that are used to configure the profiles to use for validation. For example, to use the US Core profiles for validation, set `enabled_implementation_guides` to `["http://hl7.org/fhir/us/core/ImplementationGuide/ig"]`. If `enabled_implementation_guides` is empty or omitted, then incoming resources are only required to conform to the base FHIR profiles. Otherwise, a resource must conform to at least one profile listed in the `global` property of one of the enabled ImplementationGuides. The Cloud Healthcare API does not currently enforce all of the rules in a StructureDefinition. The following rules are supported: - min/max - minValue/maxValue - maxLength - type - fixed[x] - pattern[x] on simple types - slicing, when using "value" as the discriminator type When a URL cannot be resolved (for example, in a type assertion), the server does not return an error. */ enabledImplementationGuides: string[]; } /** * Describes a selector for extracting and matching an MSH field to a value. */ interface VersionSourceResponse { /** * The field to extract from the MSH segment. For example, "3.1" or "18[1].1". */ mshField: string; /** * The value to match with the field. For example, "My Application Name" or "2.3". */ value: string; } /** * A 2D coordinate in an image. The origin is the top-left. */ interface VertexResponse { /** * X coordinate. */ x: number; /** * Y coordinate. */ y: number; } } } export declare namespace iam { namespace v1 { /** * Access related restrictions on the workforce pool. */ interface AccessRestrictionsResponse { /** * Optional. Immutable. Services allowed for web sign-in with the workforce pool. If not set by default there are no restrictions. */ allowedServices: outputs.iam.v1.ServiceConfigResponse[]; /** * Optional. Disable programmatic sign-in by disabling token issue via the Security Token API endpoint. See [Security Token Service API] (https://cloud.google.com/iam/docs/reference/sts/rest). */ disableProgrammaticSignin: boolean; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.iam.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Represents an Amazon Web Services identity provider. */ interface AwsResponse { /** * The AWS account ID. */ accountId: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.iam.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * An IAM Condition for a given binding. See https://cloud.google.com/iam/docs/conditions-overview for additional details. */ interface Condition { /** * An optional description of the expression. This is a longer text which describes the expression, e.g., when hovering over it in a UI. */ description?: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * A title for the expression, i.e. a short string describing its purpose. */ title: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Representation of a client secret configured for the OIDC provider. */ interface GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretResponse { /** * The value of the client secret. */ value: outputs.iam.v1.GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretValueResponse; } /** * Representation of the value of the client secret. */ interface GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretValueResponse { /** * Input only. The plain text of the client secret value. For security reasons, this field is only used for input and will never be populated in any response. */ plainText: string; /** * A thumbprint to represent the current client secret value. */ thumbprint: string; } /** * Represents an OpenId Connect 1.0 identity provider. */ interface GoogleIamAdminV1WorkforcePoolProviderOidcResponse { /** * The client ID. Must match the audience claim of the JWT issued by the identity provider. */ clientId: string; /** * The optional client secret. Required to enable Authorization Code flow for web sign-in. */ clientSecret: outputs.iam.v1.GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretResponse; /** * The OIDC issuer URI. Must be a valid URI using the 'https' scheme. */ issuerUri: string; /** * OIDC JWKs in JSON String format. For details on the definition of a JWK, see https://tools.ietf.org/html/rfc7517. If not set, the `jwks_uri` from the discovery document(fetched from the .well-known path of the `issuer_uri`) will be used. Currently, RSA and EC asymmetric keys are supported. The JWK must use following format and include only the following fields: { "keys": [ { "kty": "RSA/EC", "alg": "", "use": "sig", "kid": "", "n": "", "e": "", "x": "", "y": "", "crv": "" } ] } */ jwksJson: string; /** * Configuration for web single sign-on for the OIDC provider. Here, web sign-in refers to console sign-in and gcloud sign-in through the browser. */ webSsoConfig: outputs.iam.v1.GoogleIamAdminV1WorkforcePoolProviderOidcWebSsoConfigResponse; } /** * Configuration for web single sign-on for the OIDC provider. */ interface GoogleIamAdminV1WorkforcePoolProviderOidcWebSsoConfigResponse { /** * Additional scopes to request for in the OIDC authentication request on top of scopes requested by default. By default, the `openid`, `profile` and `email` scopes that are supported by the identity provider are requested. Each additional scope may be at most 256 characters. A maximum of 10 additional scopes may be configured. */ additionalScopes: string[]; /** * The behavior for how OIDC Claims are included in the `assertion` object used for attribute mapping and attribute condition. */ assertionClaimsBehavior: string; /** * The Response Type to request for in the OIDC Authorization Request for web sign-in. The `CODE` Response Type is recommended to avoid the Implicit Flow, for security reasons. */ responseType: string; } /** * Represents a SAML identity provider. */ interface GoogleIamAdminV1WorkforcePoolProviderSamlResponse { /** * SAML Identity provider configuration metadata xml doc. The xml document should comply with [SAML 2.0 specification](https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf). The max size of the acceptable xml document will be bounded to 128k characters. The metadata xml document should satisfy the following constraints: 1) Must contain an Identity Provider Entity ID. 2) Must contain at least one non-expired signing key certificate. 3) For each signing key: a) Valid from should be no more than 7 days from now. b) Valid to should be no more than 15 years in the future. 4) Up to 3 IdP signing keys are allowed in the metadata xml. When updating the provider's metadata xml, at least one non-expired signing key must overlap with the existing metadata. This requirement is skipped if there are no non-expired signing keys present in the existing metadata. */ idpMetadataXml: string; } /** * Represents a public key data along with its format. */ interface KeyDataResponse { /** * The format of the key. */ format: string; /** * The key data. The format of the key is represented by the format field. */ key: string; /** * The specifications for the key. */ keySpec: string; /** * Latest timestamp when this key is valid. Attempts to use this key after this time will fail. Only present if the key data represents a X.509 certificate. */ notAfterTime: string; /** * Earliest timestamp when this key is valid. Attempts to use this key before this time will fail. Only present if the key data represents a X.509 certificate. */ notBeforeTime: string; } /** * Represents an OpenId Connect 1.0 identity provider. */ interface OidcResponse { /** * Acceptable values for the `aud` field (audience) in the OIDC token. Token exchange requests are rejected if the token audience does not match one of the configured values. Each audience may be at most 256 characters. A maximum of 10 audiences may be configured. If this list is empty, the OIDC token audience must be equal to the full canonical resource name of the WorkloadIdentityPoolProvider, with or without the HTTPS prefix. For example: ``` //iam.googleapis.com/projects//locations//workloadIdentityPools//providers/ https://iam.googleapis.com/projects//locations//workloadIdentityPools//providers/ ``` */ allowedAudiences: string[]; /** * The OIDC issuer URL. Must be an HTTPS endpoint. */ issuerUri: string; /** * Optional. OIDC JWKs in JSON String format. For details on the definition of a JWK, see https://tools.ietf.org/html/rfc7517. If not set, the `jwks_uri` from the discovery document(fetched from the .well-known path of the `issuer_uri`) will be used. Currently, RSA and EC asymmetric keys are supported. The JWK must use following format and include only the following fields: { "keys": [ { "kty": "RSA/EC", "alg": "", "use": "sig", "kid": "", "n": "", "e": "", "x": "", "y": "", "crv": "" } ] } */ jwksJson: string; } /** * Represents an SAML 2.0 identity provider. */ interface SamlResponse { /** * SAML Identity provider configuration metadata xml doc. The xml document should comply with [SAML 2.0 specification](https://www.oasis-open.org/committees/download.php/56785/sstc-saml-metadata-errata-2.0-wd-05.pdf). The max size of the acceptable xml document will be bounded to 128k characters. The metadata xml document should satisfy the following constraints: 1) Must contain an Identity Provider Entity ID. 2) Must contain at least one non-expired signing key certificate. 3) For each signing key: a) Valid from should be no more than 7 days from now. b) Valid to should be no more than 15 years in the future. 4) Upto 3 IdP signing keys are allowed in the metadata xml. When updating the provider's metadata xml, at lease one non-expired signing key must overlap with the existing metadata. This requirement is skipped if there are no non-expired signing keys present in the existing metadata */ idpMetadataXml: string; } /** * Configuration for a service. */ interface ServiceConfigResponse { /** * Optional. Domain name of the service. Example: console.cloud.google */ domain: string; } } } export declare namespace iap { namespace v1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.iap.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } namespace v1beta1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.iap.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace identitytoolkit { namespace v2 { /** * Defines a policy of allowing every region by default and adding disallowed regions to a disallow list. */ interface GoogleCloudIdentitytoolkitAdminV2AllowByDefaultResponse { /** * Two letter unicode region codes to disallow as defined by https://cldr.unicode.org/ The full list of these region codes is here: https://github.com/unicode-cldr/cldr-localenames-full/blob/master/main/en/territories.json */ disallowedRegions: string[]; } /** * Defines a policy of only allowing regions by explicitly adding them to an allowlist. */ interface GoogleCloudIdentitytoolkitAdminV2AllowlistOnlyResponse { /** * Two letter unicode region codes to allow as defined by https://cldr.unicode.org/ The full list of these region codes is here: https://github.com/unicode-cldr/cldr-localenames-full/blob/master/main/en/territories.json */ allowedRegions: string[]; } /** * Additional config for SignInWithApple. */ interface GoogleCloudIdentitytoolkitAdminV2AppleSignInConfigResponse { /** * A list of Bundle ID's usable by this project */ bundleIds: string[]; codeFlowConfig: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2CodeFlowConfigResponse; } /** * Options related to how clients making requests on behalf of a tenant should be configured. */ interface GoogleCloudIdentitytoolkitAdminV2ClientPermissionConfigResponse { /** * Configuration related to restricting a user's ability to affect their account. */ permissions: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2ClientPermissionsResponse; } /** * Configuration related to restricting a user's ability to affect their account. */ interface GoogleCloudIdentitytoolkitAdminV2ClientPermissionsResponse { /** * When true, end users cannot delete their account on the associated project through any of our API methods */ disabledUserDeletion: boolean; /** * When true, end users cannot sign up for a new account on the associated project through any of our API methods */ disabledUserSignup: boolean; } /** * Additional config for Apple for code flow. */ interface GoogleCloudIdentitytoolkitAdminV2CodeFlowConfigResponse { /** * Key ID for the private key. */ keyId: string; /** * Private key used for signing the client secret JWT. */ privateKey: string; /** * Apple Developer Team ID. */ teamId: string; } /** * Custom strength options to enforce on user passwords. */ interface GoogleCloudIdentitytoolkitAdminV2CustomStrengthOptionsResponse { /** * The password must contain a lower case character. */ containsLowercaseCharacter: boolean; /** * The password must contain a non alpha numeric character. */ containsNonAlphanumericCharacter: boolean; /** * The password must contain a number. */ containsNumericCharacter: boolean; /** * The password must contain an upper case character. */ containsUppercaseCharacter: boolean; /** * Maximum password length. No default max length */ maxPasswordLength: number; /** * Minimum password length. Range from 6 to 30 */ minPasswordLength: number; } /** * Configuration for settings related to email privacy and public visibility. Settings in this config protect against email enumeration, but may make some trade-offs in user-friendliness. */ interface GoogleCloudIdentitytoolkitAdminV2EmailPrivacyConfigResponse { /** * Migrates the project to a state of improved email privacy. For example certain error codes are more generic to avoid giving away information on whether the account exists. In addition, this disables certain features that as a side-effect allow user enumeration. Enabling this toggle disables the fetchSignInMethodsForEmail functionality and changing the user's email to an unverified email. It is recommended to remove dependence on this functionality and enable this toggle to improve user privacy. */ enableImprovedEmailPrivacy: boolean; } /** * History information of the hash algorithm and key. Different accounts' passwords may be generated by different version. */ interface GoogleCloudIdentitytoolkitAdminV2HashConfigResponse { /** * Different password hash algorithms used in Identity Toolkit. */ algorithm: string; /** * Memory cost for hash calculation. Used by scrypt and other similar password derivation algorithms. See https://tools.ietf.org/html/rfc7914 for explanation of field. */ memoryCost: number; /** * How many rounds for hash calculation. Used by scrypt and other similar password derivation algorithms. */ rounds: number; /** * Non-printable character to be inserted between the salt and plain text password in base64. */ saltSeparator: string; /** * Signer key in base64. */ signerKey: string; } /** * The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP. */ interface GoogleCloudIdentitytoolkitAdminV2IdpCertificateResponse { /** * The x509 certificate */ x509Certificate: string; } /** * The SAML IdP (Identity Provider) configuration when the project acts as the relying party. */ interface GoogleCloudIdentitytoolkitAdminV2IdpConfigResponse { /** * IDP's public keys for verifying signature in the assertions. */ idpCertificates: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2IdpCertificateResponse[]; /** * Unique identifier for all SAML entities. */ idpEntityId: string; /** * Indicates if outbounding SAMLRequest should be signed. */ signRequest: boolean; /** * URL to send Authentication request to. */ ssoUrl: string; } /** * Settings that the tenants will inherit from project level. */ interface GoogleCloudIdentitytoolkitAdminV2InheritanceResponse { /** * Whether to allow the tenant to inherit custom domains, email templates, and custom SMTP settings. If true, email sent from tenant will follow the project level email sending configurations. If false (by default), emails will go with the default settings with no customizations. */ emailSendingConfig: boolean; } /** * Configuration related to monitoring project activity. */ interface GoogleCloudIdentitytoolkitAdminV2MonitoringConfigResponse { /** * Configuration for logging requests made to this project to Stackdriver Logging */ requestLogging: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2RequestLoggingResponse; } /** * Options related to MultiFactor Authentication for the project. */ interface GoogleCloudIdentitytoolkitAdminV2MultiFactorAuthConfigResponse { /** * A list of usable second factors for this project. */ enabledProviders: string[]; /** * A list of usable second factors for this project along with their configurations. This field does not support phone based MFA, for that use the 'enabled_providers' field. */ providerConfigs: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2ProviderConfigResponse[]; /** * Whether MultiFactor Authentication has been enabled for this project. */ state: string; } /** * The response type to request for in the OAuth authorization flow. You can set either `id_token` or `code` to true, but not both. Setting both types to be simultaneously true (`{code: true, id_token: true}`) is not yet supported. See https://openid.net/specs/openid-connect-core-1_0.html#Authentication for a mapping of response type to OAuth 2.0 flow. */ interface GoogleCloudIdentitytoolkitAdminV2OAuthResponseTypeResponse { /** * If true, authorization code is returned from IdP's authorization endpoint. */ code: boolean; /** * If true, ID token is returned from IdP's authorization endpoint. */ idToken: boolean; /** * Do not use. The `token` response type is not supported at the moment. */ token: boolean; } /** * The configuration for the password policy on the project. */ interface GoogleCloudIdentitytoolkitAdminV2PasswordPolicyConfigResponse { /** * Users must have a password compliant with the password policy to sign-in. */ forceUpgradeOnSignin: boolean; /** * The last time the password policy on the project was updated. */ lastUpdateTime: string; /** * Which enforcement mode to use for the password policy. */ passwordPolicyEnforcementState: string; /** * Must be of length 1. Contains the strength attributes for the password policy. */ passwordPolicyVersions: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2PasswordPolicyVersionResponse[]; } /** * The strength attributes for the password policy on the project. */ interface GoogleCloudIdentitytoolkitAdminV2PasswordPolicyVersionResponse { /** * The custom strength options enforced by the password policy. */ customStrengthOptions: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2CustomStrengthOptionsResponse; /** * schema version number for the password policy */ schemaVersion: number; } /** * ProviderConfig describes the supported MFA providers along with their configurations. */ interface GoogleCloudIdentitytoolkitAdminV2ProviderConfigResponse { /** * Describes the state of the MultiFactor Authentication type. */ state: string; /** * TOTP MFA provider config for this project. */ totpProviderConfig: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2TotpMfaProviderConfigResponse; } /** * The reCAPTCHA Enterprise integration config. */ interface GoogleCloudIdentitytoolkitAdminV2RecaptchaConfigResponse { /** * The reCAPTCHA config for email/password provider, containing the enforcement status. The email/password provider contains all related user flows protected by reCAPTCHA. */ emailPasswordEnforcementState: string; /** * The managed rules for authentication action based on reCAPTCHA scores. The rules are shared across providers for a given tenant project. */ managedRules: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2RecaptchaManagedRuleResponse[]; /** * The reCAPTCHA keys. */ recaptchaKeys: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2RecaptchaKeyResponse[]; /** * Whether to use the account defender for reCAPTCHA assessment. Defaults to `false`. */ useAccountDefender: boolean; } /** * The reCAPTCHA key config. reCAPTCHA Enterprise offers different keys for different client platforms. */ interface GoogleCloudIdentitytoolkitAdminV2RecaptchaKeyResponse { /** * The reCAPTCHA Enterprise key resource name, e.g. "projects/{project}/keys/{key}" */ key: string; /** * The client's platform type. */ type: string; } /** * The config for a reCAPTCHA managed rule. Models a single interval [start_score, end_score]. The start_score is implicit. It is either the closest smaller end_score (if one is available) or 0. Intervals in aggregate span [0, 1] without overlapping. */ interface GoogleCloudIdentitytoolkitAdminV2RecaptchaManagedRuleResponse { /** * The action taken if the reCAPTCHA score of a request is within the interval [start_score, end_score]. */ action: string; /** * The end score (inclusive) of the score range for an action. Must be a value between 0.0 and 1.0, at 11 discrete values; e.g. 0, 0.1, 0.2, 0.3, ... 0.9, 1.0. A score of 0.0 indicates the riskiest request (likely a bot), whereas 1.0 indicates the safest request (likely a human). See https://cloud.google.com/recaptcha-enterprise/docs/interpret-assessment. */ endScore: number; } /** * Configuration for logging requests made to this project to Stackdriver Logging */ interface GoogleCloudIdentitytoolkitAdminV2RequestLoggingResponse { /** * Whether logging is enabled for this project or not. */ enabled: boolean; } /** * Configures the regions where users are allowed to send verification SMS for the project or tenant. This is based on the calling code of the destination phone number. */ interface GoogleCloudIdentitytoolkitAdminV2SmsRegionConfigResponse { /** * A policy of allowing SMS to every region by default and adding disallowed regions to a disallow list. */ allowByDefault: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2AllowByDefaultResponse; /** * A policy of only allowing regions by explicitly adding them to an allowlist. */ allowlistOnly: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2AllowlistOnlyResponse; } /** * The SP's certificate data for IDP to verify the SAMLRequest generated by the SP. */ interface GoogleCloudIdentitytoolkitAdminV2SpCertificateResponse { /** * Timestamp of the cert expiration instance. */ expiresAt: string; /** * Self-signed public certificate. */ x509Certificate: string; } /** * The SAML SP (Service Provider) configuration when the project acts as the relying party to receive and accept an authentication assertion issued by a SAML identity provider. */ interface GoogleCloudIdentitytoolkitAdminV2SpConfigResponse { /** * Callback URI where responses from IDP are handled. */ callbackUri: string; /** * Public certificates generated by the server to verify the signature in SAMLRequest in the SP-initiated flow. */ spCertificates: outputs.identitytoolkit.v2.GoogleCloudIdentitytoolkitAdminV2SpCertificateResponse[]; /** * Unique identifier for all SAML entities. */ spEntityId: string; } /** * TotpMFAProviderConfig represents the TOTP based MFA provider. */ interface GoogleCloudIdentitytoolkitAdminV2TotpMfaProviderConfigResponse { /** * The allowed number of adjacent intervals that will be used for verification to avoid clock skew. */ adjacentIntervals: number; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.identitytoolkit.v2.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.identitytoolkit.v2.GoogleTypeExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface GoogleTypeExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace ids { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.ids.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.ids.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace integrations { namespace v1alpha { /** * Attributes are additional options that can be associated with each event property. For more information, see */ interface EnterpriseCrmEventbusProtoAttributesResponse { /** * Things like URL, Email, Currency, Timestamp (rather than string, int64...) */ dataType: string; /** * Used to define defaults. */ defaultValue: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoValueTypeResponse; /** * Required for event execution. The validation will be done by the event bus when the event is triggered. */ isRequired: boolean; /** * Used to indicate if a ParameterEntry should be converted to ParamIndexes for ST-Spanner full-text search. DEPRECATED: use searchable. * * @deprecated Used to indicate if a ParameterEntry should be converted to ParamIndexes for ST-Spanner full-text search. DEPRECATED: use searchable. */ isSearchable: boolean; /** * See */ logSettings: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoLogSettingsResponse; /** * Used to indicate if the ParameterEntry is a read only field or not. */ readOnly: boolean; searchable: string; /** * List of tasks that can view this property, if empty then all. */ taskVisibility: string[]; } /** * List of error enums for alerts. */ interface EnterpriseCrmEventbusProtoBaseAlertConfigErrorEnumListResponse { enumStrings: string[]; filterType: string; } /** * The threshold value of the metric, above or below which the alert should be triggered. See EventAlertConfig or TaskAlertConfig for the different alert metric types in each case. For the *RATE metrics, one or both of these fields may be set. Zero is the default value and can be left at that. For *PERCENTILE_DURATION metrics, one or both of these fields may be set, and also, the duration threshold value should be specified in the threshold_duration_ms member below. For *AVERAGE_DURATION metrics, these fields should not be set at all. A different member, threshold_duration_ms, must be set in the EventAlertConfig or the TaskAlertConfig. */ interface EnterpriseCrmEventbusProtoBaseAlertConfigThresholdValueResponse { absolute: string; percentage: number; } interface EnterpriseCrmEventbusProtoBooleanParameterArrayResponse { booleanValues: boolean[]; } /** * Cloud Scheduler Trigger configuration */ interface EnterpriseCrmEventbusProtoCloudSchedulerConfigResponse { /** * The cron tab of cloud scheduler trigger. */ cronTab: string; /** * Optional. When the job was deleted from Pantheon UI, error_message will be populated when Get/List integrations */ errorMessage: string; /** * The location where associated cloud scheduler job will be created */ location: string; /** * Service account used by Cloud Scheduler to trigger the integration at scheduled time */ serviceAccountEmail: string; } /** * This message recursively combines constituent conditions using logical AND. */ interface EnterpriseCrmEventbusProtoCombinedConditionResponse { /** * A set of individual constituent conditions. */ conditions: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoConditionResponse[]; } /** * Condition that uses `operator` to evaluate the key against the value. */ interface EnterpriseCrmEventbusProtoConditionResponse { /** * Key that's evaluated against the `value`. Please note the data type of the runtime value associated with the key should match the data type of `value`, else an IllegalArgumentException is thrown. */ eventPropertyKey: string; /** * Operator used to evaluate the condition. Please note that an operator with an inappropriate key/value operand will result in IllegalArgumentException, e.g. CONTAINS with boolean key/value pair. */ operator: string; /** * Value that's checked for the key. */ value: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoValueTypeResponse; } /** * Represents two-dimensional positions. */ interface EnterpriseCrmEventbusProtoCoordinateResponse { x: number; y: number; } interface EnterpriseCrmEventbusProtoDoubleArrayResponse { values: number[]; } interface EnterpriseCrmEventbusProtoDoubleParameterArrayResponse { doubleValues: number[]; } /** * LINT.IfChange This message is used for storing key value pair properties for each Event / Task in the EventBus. */ interface EnterpriseCrmEventbusProtoEventBusPropertiesResponse { /** * An unordered list of property entries. */ properties: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoPropertyEntryResponse[]; } /** * LINT.IfChange This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. Please see */ interface EnterpriseCrmEventbusProtoEventParametersResponse { /** * Parameters are a part of Event and can be used to communicate between different tasks that are part of the same integration execution. */ parameters: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoParameterEntryResponse[]; } /** * Policy that defines the task retry logic and failure type. If no FailurePolicy is defined for a task, all its dependent tasks will not be executed (i.e, a `retry_strategy` of NONE will be applied). */ interface EnterpriseCrmEventbusProtoFailurePolicyResponse { /** * Required if retry_strategy is FIXED_INTERVAL or LINEAR/EXPONENTIAL_BACKOFF/RESTART_WORKFLOW_WITH_BACKOFF. Defines the initial interval for backoff. */ intervalInSeconds: string; /** * Required if retry_strategy is FIXED_INTERVAL or LINEAR/EXPONENTIAL_BACKOFF/RESTART_WORKFLOW_WITH_BACKOFF. Defines the number of times the task will be retried if failed. */ maxNumRetries: number; /** * Defines what happens to the task upon failure. */ retryStrategy: string; } interface EnterpriseCrmEventbusProtoIntArrayResponse { values: string[]; } interface EnterpriseCrmEventbusProtoIntParameterArrayResponse { intValues: string[]; } /** * The LogSettings define the logging attributes for an event property. These attributes are used to map the property to the parameter in the log proto. Also used to define scrubbing/truncation behavior and PII information. */ interface EnterpriseCrmEventbusProtoLogSettingsResponse { /** * The name of corresponding logging field of the event property. If omitted, assumes the same name as the event property key. */ logFieldName: string; /** * Contains the scrubbing options, such as whether to scrub, obfuscate, etc. */ sanitizeOptions: outputs.integrations.v1alpha.EnterpriseCrmLoggingGwsSanitizeOptionsResponse; seedPeriod: string; seedScope: string; /** * Contains the field limits for shortening, such as max string length and max array length. */ shorteningLimits: outputs.integrations.v1alpha.EnterpriseCrmLoggingGwsFieldLimitsResponse; } /** * The task that is next in line to be executed, if the condition specified evaluated to true. */ interface EnterpriseCrmEventbusProtoNextTaskResponse { /** * Combined condition for this task to become an eligible next task. Each of these combined_conditions are joined with logical OR. DEPRECATED: use `condition` * * @deprecated Combined condition for this task to become an eligible next task. Each of these combined_conditions are joined with logical OR. DEPRECATED: use `condition` */ combinedConditions: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoCombinedConditionResponse[]; /** * Standard filter expression for this task to become an eligible next task. */ condition: string; /** * User-provided description intended to give more business context about the next task edge or condition. */ description: string; /** * User-provided label that is attached to this edge in the UI. */ label: string; /** * ID of the next task. */ taskConfigId: string; /** * Task number of the next task. */ taskNumber: string; } /** * The teardown task that is next in line to be executed. We support only sequential execution of teardown tasks (i.e. no branching). */ interface EnterpriseCrmEventbusProtoNextTeardownTaskResponse { /** * Name of the next teardown task. */ name: string; } /** * Represents a node identifier (type + id). Next highest id: 3 */ interface EnterpriseCrmEventbusProtoNodeIdentifierResponse { /** * Configuration of the edge. */ elementIdentifier: string; /** * Destination node where the edge ends. It can only be a task config. */ elementType: string; } interface EnterpriseCrmEventbusProtoParamSpecEntryConfigResponse { /** * A short phrase to describe what this parameter contains. */ descriptivePhrase: string; /** * Detailed help text for this parameter containing information not provided elsewhere. For example, instructions on how to migrate from a deprecated parameter. */ helpText: string; /** * Whether the default value is hidden in the UI. */ hideDefaultValue: boolean; inputDisplayOption: string; /** * Whether this field is hidden in the UI. */ isHidden: boolean; /** * A user-friendly label for the parameter. */ label: string; parameterNameOption: string; /** * A user-friendly label for subSection under which the parameter will be displayed. */ subSectionLabel: string; /** * Placeholder text which will appear in the UI input form for this parameter. */ uiPlaceholderText: string; } interface EnterpriseCrmEventbusProtoParamSpecEntryProtoDefinitionResponse { /** * The fully-qualified proto name. This message, for example, would be "enterprise.crm.eventbus.proto.ParamSpecEntry.ProtoDefinition". */ fullName: string; /** * Path to the proto file that contains the message type's definition. */ path: string; } /** * Range used to validate doubles and floats. */ interface EnterpriseCrmEventbusProtoParamSpecEntryValidationRuleDoubleRangeResponse { /** * The inclusive maximum of the acceptable range. */ max: number; /** * The inclusive minimum of the acceptable range. */ min: number; } /** * Range used to validate longs and ints. */ interface EnterpriseCrmEventbusProtoParamSpecEntryValidationRuleIntRangeResponse { /** * The inclusive maximum of the acceptable range. */ max: string; /** * The inclusive minimum of the acceptable range. */ min: string; } interface EnterpriseCrmEventbusProtoParamSpecEntryValidationRuleResponse { doubleRange: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoParamSpecEntryValidationRuleDoubleRangeResponse; intRange: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoParamSpecEntryValidationRuleIntRangeResponse; stringRegex: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoParamSpecEntryValidationRuleStringRegexResponse; } /** * Rule used to validate strings. */ interface EnterpriseCrmEventbusProtoParamSpecEntryValidationRuleStringRegexResponse { /** * Whether the regex matcher is applied exclusively (if true, matching values will be rejected). */ exclusive: boolean; /** * The regex applied to the input value(s). */ regex: string; } /** * Key-value pair of EventBus parameters. */ interface EnterpriseCrmEventbusProtoParameterEntryResponse { /** * Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the integration definition. */ key: string; /** * Values for the defined keys. Each value can either be string, int, double or any proto message. */ value: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoParameterValueTypeResponse; } /** * LINT.IfChange To support various types of parameter values. Next available id: 14 */ interface EnterpriseCrmEventbusProtoParameterValueTypeResponse { booleanArray: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoBooleanParameterArrayResponse; booleanValue: boolean; doubleArray: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoDoubleParameterArrayResponse; doubleValue: number; intArray: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoIntParameterArrayResponse; intValue: string; protoArray: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoProtoParameterArrayResponse; protoValue: { [key: string]: string; }; serializedObjectValue: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoSerializedObjectParameterResponse; stringArray: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoStringParameterArrayResponse; stringValue: string; } /** * Key-value pair of EventBus property. */ interface EnterpriseCrmEventbusProtoPropertyEntryResponse { /** * Key is used to retrieve the corresponding property value. This should be unique for a given fired event. The Tasks should be aware of the keys used while firing the events for them to be able to retrieve the values. */ key: string; /** * Values for the defined keys. Each value can either be string, int, double or any proto message. */ value: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoValueTypeResponse; } interface EnterpriseCrmEventbusProtoProtoParameterArrayResponse { protoValues: { [key: string]: string; }[]; } interface EnterpriseCrmEventbusProtoSerializedObjectParameterResponse { objectValue: string; } interface EnterpriseCrmEventbusProtoStringArrayResponse { values: string[]; } interface EnterpriseCrmEventbusProtoStringParameterArrayResponse { stringValues: string[]; } /** * Policy that dictates the behavior for the task after it completes successfully. */ interface EnterpriseCrmEventbusProtoSuccessPolicyResponse { /** * State to which the execution snapshot status will be set if the task succeeds. */ finalState: string; } /** * Message to be used to configure alerting in the {@code TaskConfig} protos for tasks in an event. */ interface EnterpriseCrmEventbusProtoTaskAlertConfigResponse { /** * The period over which the metric value should be aggregated and evaluated. Format is , where integer should be a positive integer and unit should be one of (s,m,h,d,w) meaning (second, minute, hour, day, week). */ aggregationPeriod: string; /** * Set to false by default. When set to true, the metrics are not aggregated or pushed to Monarch for this workflow alert. */ alertDisabled: boolean; /** * A name to identify this alert. This will be displayed in the alert subject. If set, this name should be unique in within the scope of the containing workflow. */ alertName: string; /** * Client associated with this alert configuration. Must be a client enabled in one of the containing workflow's triggers. */ clientId: string; /** * Should be specified only for TASK_AVERAGE_DURATION and TASK_PERCENTILE_DURATION metrics. This member should be used to specify what duration value the metrics should exceed for the alert to trigger. */ durationThresholdMs: string; errorEnumList: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoBaseAlertConfigErrorEnumListResponse; metricType: string; /** * For how many contiguous aggregation periods should the expected min or max be violated for the alert to be fired. */ numAggregationPeriods: number; /** * Only count final task attempts, not retries. */ onlyFinalAttempt: boolean; /** * Link to a playbook for resolving the issue that triggered this alert. */ playbookUrl: string; /** * The threshold type for which this alert is being configured. If value falls below expected_min or exceeds expected_max, an alert will be fired. */ thresholdType: string; /** * The metric value, above or below which the alert should be triggered. */ thresholdValue: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoBaseAlertConfigThresholdValueResponse; warningEnumList: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoBaseAlertConfigErrorEnumListResponse; } /** * Admins are owners of a Task, and have all permissions on a particular task identified by the task name. By default, Eventbus periodically scans all task metadata and syncs (adds) any new admins defined here to Zanzibar. */ interface EnterpriseCrmEventbusProtoTaskMetadataAdminResponse { googleGroupEmail: string; userEmail: string; } /** * TaskMetadata are attributes that are associated to every common Task we have. */ interface EnterpriseCrmEventbusProtoTaskMetadataResponse { /** * The new task name to replace the current task if it is deprecated. Otherwise, it is the same as the current task name. */ activeTaskName: string; admins: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoTaskMetadataAdminResponse[]; category: string; /** * The Code Search link to the Task Java file. */ codeSearchLink: string; /** * Controls whether JSON workflow parameters are validated against provided schemas before and/or after this task's execution. */ defaultJsonValidationOption: string; /** * Contains the initial configuration of the task with default values set. For now, The string should be compatible to an ASCII-proto format. */ defaultSpec: string; /** * In a few sentences, describe the purpose and usage of the task. */ description: string; /** * The string name to show on the task list on the Workflow editor screen. This should be a very short, one to two words name for the task. (e.g. "Send Mail") */ descriptiveName: string; /** * Snippet of markdown documentation to embed in the RHP for this task. */ docMarkdown: string; externalCategory: string; /** * Sequence with which the task in specific category to be displayed in task discovery panel for external users. */ externalCategorySequence: number; /** * External-facing documention embedded in the RHP for this task. */ externalDocHtml: string; /** * Doc link for external-facing documentation (separate from g3doc). */ externalDocLink: string; /** * DEPRECATED: Use external_doc_html. * * @deprecated DEPRECATED: Use external_doc_html. */ externalDocMarkdown: string; /** * URL to the associated G3 Doc for the task if available */ g3DocLink: string; /** * URL to gstatic image icon for this task. This icon shows up on the task list panel along with the task name in the Workflow Editor screen. Use the 24p, 2x, gray color icon image format. */ iconLink: string; /** * The deprecation status of the current task. Default value is false; */ isDeprecated: boolean; /** * The actual class name or the annotated name of the task. Task Author should initialize this field with value from the getName() method of the Task class. */ name: string; /** * External-facing documention for standalone IP in pantheon embedded in the RHP for this task. Non null only if different from external_doc_html */ standaloneExternalDocHtml: string; /** * Allows author to indicate if the task is ready to use or not. If not set, then it will default to INACTIVE. */ status: string; system: string; /** * A set of tags that pertain to a particular task. This can be used to improve the searchability of tasks with several names ("REST Caller" vs. "Call REST Endpoint") or to help users find tasks based on related words. */ tags: string[]; } /** * Task authors would use this type to configure the UI for a particular task by specifying what UI config modules should be included to compose the UI. Learn more about config module framework: */ interface EnterpriseCrmEventbusProtoTaskUiConfigResponse { /** * Configurations of included config modules. */ taskUiModuleConfigs: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoTaskUiModuleConfigResponse[]; } /** * Task author would use this type to configure a config module. */ interface EnterpriseCrmEventbusProtoTaskUiModuleConfigResponse { /** * ID of the config module. */ moduleId: string; } interface EnterpriseCrmEventbusProtoTeardownResponse { /** * Required. */ teardownTaskConfigs: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoTeardownTaskConfigResponse[]; } interface EnterpriseCrmEventbusProtoTeardownTaskConfigResponse { /** * The creator's email address. */ creatorEmail: string; /** * Unique identifier of the teardown task within this Config. We use this field as the identifier to find next teardown tasks. */ name: string; nextTeardownTask: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoNextTeardownTaskResponse; /** * The parameters the user can pass to this task. */ parameters: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoEventParametersResponse; properties: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoEventBusPropertiesResponse; /** * Implementation class name. */ teardownTaskImplementationClassName: string; } interface EnterpriseCrmEventbusProtoTriggerCriteriaResponse { /** * Standard filter expression, when true the workflow will be executed. If there's no trigger_criteria_task_implementation_class_name specified, the condition will be validated directly. */ condition: string; /** * Optional. To be used in TaskConfig for the implementation class. */ parameters: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoEventParametersResponse; /** * Optional. Implementation class name. The class should implement the “TypedTask” interface. */ triggerCriteriaTaskImplementationClassName: string; } /** * Used for define type for values. Currently supported value types include int, string, double, array, and any proto message. */ interface EnterpriseCrmEventbusProtoValueTypeResponse { booleanValue: boolean; doubleArray: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoDoubleArrayResponse; doubleValue: number; intArray: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoIntArrayResponse; intValue: string; protoValue: { [key: string]: string; }; stringArray: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoStringArrayResponse; stringValue: string; } /** * Message to be used to configure custom alerting in the {@code EventConfig} protos for an event. */ interface EnterpriseCrmEventbusProtoWorkflowAlertConfigResponse { /** * For an EXPECTED_MIN threshold, this aggregation_period must be lesser than 24 hours. */ aggregationPeriod: string; /** * Set to false by default. When set to true, the metrics are not aggregated or pushed to Monarch for this workflow alert. */ alertDisabled: boolean; /** * A name to identify this alert. This will be displayed in the alert subject. If set, this name should be unique within the scope of the workflow. */ alertName: string; /** * Client associated with this alert configuration. */ clientId: string; /** * Should be specified only for *AVERAGE_DURATION and *PERCENTILE_DURATION metrics. This member should be used to specify what duration value the metrics should exceed for the alert to trigger. */ durationThresholdMs: string; errorEnumList: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoBaseAlertConfigErrorEnumListResponse; metricType: string; /** * For how many contiguous aggregation periods should the expected min or max be violated for the alert to be fired. */ numAggregationPeriods: number; /** * For either events or tasks, depending on the type of alert, count only final attempts, not retries. */ onlyFinalAttempt: boolean; /** * Link to a playbook for resolving the issue that triggered this alert. */ playbookUrl: string; /** * The threshold type, whether lower(expected_min) or upper(expected_max), for which this alert is being configured. If value falls below expected_min or exceeds expected_max, an alert will be fired. */ thresholdType: string; /** * The metric value, above or below which the alert should be triggered. */ thresholdValue: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoBaseAlertConfigThresholdValueResponse; warningEnumList: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoBaseAlertConfigErrorEnumListResponse; } interface EnterpriseCrmEventbusStatsDimensionsResponse { clientId: string; /** * Whether to include or exclude the enums matching the regex. */ enumFilterType: string; errorEnumString: string; retryAttempt: string; taskName: string; taskNumber: string; /** * Stats have been or will be aggregated on set fields for any semantically-meaningful combination. */ triggerId: string; warningEnumString: string; workflowId: string; workflowName: string; } /** * Stats for the requested dimensions: QPS, duration, and error/warning rate */ interface EnterpriseCrmEventbusStatsResponse { /** * Dimensions that these stats have been aggregated on. */ dimensions: outputs.integrations.v1alpha.EnterpriseCrmEventbusStatsDimensionsResponse; /** * Average duration in seconds. */ durationInSeconds: number; /** * Average error rate. */ errorRate: number; /** * Queries per second. */ qps: number; /** * Average warning rate. */ warningRate: number; } interface EnterpriseCrmFrontendsEventbusProtoBooleanParameterArrayResponse { booleanValues: boolean[]; } interface EnterpriseCrmFrontendsEventbusProtoDoubleParameterArrayResponse { doubleValues: number[]; } /** * LINT.IfChange This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. Please see */ interface EnterpriseCrmFrontendsEventbusProtoEventParametersResponse { /** * Parameters are a part of Event and can be used to communicate between different tasks that are part of the same workflow execution. */ parameters: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoParameterEntryResponse[]; } interface EnterpriseCrmFrontendsEventbusProtoIntParameterArrayResponse { intValues: string[]; } /** * Key-value pair of EventBus task parameters. Next id: 13 */ interface EnterpriseCrmFrontendsEventbusProtoParamSpecEntryResponse { /** * The FQCN of the Java object this represents. A string, for example, would be "java.lang.String". If this is "java.lang.Object", the parameter can be of any type. */ className: string; /** * If it is a collection of objects, this would be the FCQN of every individual element in the collection. If this is "java.lang.Object", the parameter is a collection of any type. */ collectionElementClassName: string; /** * Optional fields, such as help text and other useful info. */ config: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoParamSpecEntryConfigResponse; /** * The data type of the parameter. */ dataType: string; /** * Default values for the defined keys. Each value can either be string, int, double or any proto message or a serialized object. */ defaultValue: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoParameterValueTypeResponse; /** * If set, this entry is deprecated, so further use of this parameter should be prohibited. */ isDeprecated: boolean; isOutput: boolean; /** * If the data_type is JSON_VALUE, then this will define its schema. */ jsonSchema: string; /** * Key is used to retrieve the corresponding parameter value. This should be unique for a given task. These parameters must be predefined in the workflow definition. */ key: string; /** * Populated if this represents a proto or proto array. */ protoDef: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoParamSpecEntryProtoDefinitionResponse; /** * If set, the user must provide an input value for this parameter. */ required: boolean; /** * Rule used to validate inputs (individual values and collection elements) for this parameter. */ validationRule: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoParamSpecEntryValidationRuleResponse; } interface EnterpriseCrmFrontendsEventbusProtoParamSpecsMessageResponse { parameters: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoParamSpecEntryResponse[]; } /** * Key-value pair of EventBus parameters. */ interface EnterpriseCrmFrontendsEventbusProtoParameterEntryResponse { /** * Explicitly getting the type of the parameter. */ dataType: string; /** * Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the workflow definition. */ key: string; /** * Values for the defined keys. Each value can either be string, int, double or any proto message. */ value: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoParameterValueTypeResponse; } /** * To support various types of parameter values. Next available id: 14 */ interface EnterpriseCrmFrontendsEventbusProtoParameterValueTypeResponse { booleanArray: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoBooleanParameterArrayResponse; booleanValue: boolean; doubleArray: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoDoubleParameterArrayResponse; doubleValue: number; intArray: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoIntParameterArrayResponse; intValue: string; jsonValue: string; protoArray: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoProtoParameterArrayResponse; protoValue: { [key: string]: string; }; serializedObjectValue: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoSerializedObjectParameterResponse; stringArray: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoStringParameterArrayResponse; stringValue: string; } interface EnterpriseCrmFrontendsEventbusProtoProtoParameterArrayResponse { protoValues: { [key: string]: string; }[]; } /** * Next available id: 4 */ interface EnterpriseCrmFrontendsEventbusProtoRollbackStrategyResponse { /** * Optional. The customized parameters the user can pass to this task. */ parameters: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoEventParametersResponse; /** * This is the name of the task that needs to be executed upon rollback of this task. */ rollbackTaskImplementationClassName: string; /** * These are the tasks numbers of the tasks whose `rollback_strategy.rollback_task_implementation_class_name` needs to be executed upon failure of this task. */ taskNumbersToRollback: string[]; } interface EnterpriseCrmFrontendsEventbusProtoSerializedObjectParameterResponse { objectValue: string; } interface EnterpriseCrmFrontendsEventbusProtoStringParameterArrayResponse { stringValues: string[]; } /** * The task configuration details. This is not the implementation of Task. There might be multiple TaskConfigs for the same Task. */ interface EnterpriseCrmFrontendsEventbusProtoTaskConfigResponse { /** * Alert configurations on error rate, warning rate, number of runs, durations, etc. */ alertConfigs: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoTaskAlertConfigResponse[]; /** * Auto-generated. */ createTime: string; /** * The creator's email address. Auto-generated from the user's email. */ creatorEmail: string; /** * User-provided description intended to give more business context about the task. */ description: string; /** * If this config contains a TypedTask, allow validation to succeed if an input is read from the output of another TypedTask whose output type is declared as a superclass of the requested input type. For instance, if the previous task declares an output of type Message, any task with this flag enabled will pass validation when attempting to read any proto Message type from the resultant Event parameter. */ disableStrictTypeValidation: boolean; /** * Optional Error catcher id of the error catch flow which will be executed when execution error happens in the task */ errorCatcherId: string; externalTaskType: string; /** * Optional. Determines the number of times the task will be retried on failure and with what retry strategy. This is applicable for asynchronous calls to Eventbus alone (Post To Queue, Schedule etc.). */ failurePolicy: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoFailurePolicyResponse; /** * The number of edges leading into this TaskConfig. */ incomingEdgeCount: number; /** * If set, overrides the option configured in the Task implementation class. */ jsonValidationOption: string; /** * User-provided label that is attached to this TaskConfig in the UI. */ label: string; /** * Auto-generated. */ lastModifiedTime: string; /** * The set of tasks that are next in line to be executed as per the execution graph defined for the parent event, specified by `event_config_id`. Each of these next tasks are executed only if the condition associated with them evaluates to true. */ nextTasks: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoNextTaskResponse[]; /** * The policy dictating the execution of the next set of tasks for the current task. */ nextTasksExecutionPolicy: string; /** * The customized parameters the user can pass to this task. */ parameters: { [key: string]: string; }; /** * Optional. Informs the front-end application where to draw this task config on the UI. */ position: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoCoordinateResponse; /** * Optional. Standard filter expression evaluated before execution. Independent of other conditions and tasks. Can be used to enable rollout. e.g. "rollout(5)" will only allow 5% of incoming traffic to task. */ precondition: string; /** * Optional. User-provided label that is attached to precondition in the UI. */ preconditionLabel: string; /** * Optional. Contains information about what needs to be done upon failure (either a permanent error or after it has been retried too many times). */ rollbackStrategy: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoRollbackStrategyResponse; /** * Determines what action to take upon successful task completion. */ successPolicy: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoSuccessPolicyResponse; /** * Optional. Determines the number of times the task will be retried on failure and with what retry strategy. This is applicable for synchronous calls to Eventbus alone (Post). */ synchronousCallFailurePolicy: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoFailurePolicyResponse; /** * Copy of the task entity that this task config is an instance of. */ taskEntity: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoTaskEntityResponse; /** * The policy dictating the execution strategy of this task. */ taskExecutionStrategy: string; /** * The name for the task. */ taskName: string; /** * REQUIRED: the identifier of this task within its parent event config, specified by the client. This should be unique among all the tasks belong to the same event config. We use this field as the identifier to find next tasks (via field `next_tasks.task_number`). */ taskNumber: string; /** * A string template that allows user to configure task parameters (with either literal default values or tokens which will be resolved at execution time) for the task. It will eventually replace the old "parameters" field. */ taskSpec: string; /** * Used to define task-template name if task is of type task-template */ taskTemplateName: string; /** * Defines the type of the task */ taskType: string; } /** * Contains a task's metadata and associated information. Next available id: 7 */ interface EnterpriseCrmFrontendsEventbusProtoTaskEntityResponse { /** * True if the task has conflict with vpcsc */ disabledForVpcSc: boolean; /** * Metadata inclueds the task name, author and so on. */ metadata: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoTaskMetadataResponse; /** * Declarations for inputs/outputs for a TypedTask. This is also associated with the METADATA mask. */ paramSpecs: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoParamSpecsMessageResponse; /** * Deprecated - statistics from the Monarch query. * * @deprecated Deprecated - statistics from the Monarch query. */ stats: outputs.integrations.v1alpha.EnterpriseCrmEventbusStatsResponse; /** * Defines the type of the task */ taskType: string; /** * UI configuration for this task Also associated with the METADATA mask. */ uiConfig: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoTaskUiConfigResponse; } /** * Configuration detail of a trigger. Next available id: 20 */ interface EnterpriseCrmFrontendsEventbusProtoTriggerConfigResponse { /** * An alert threshold configuration for the [trigger + client + workflow] tuple. If these values are not specified in the trigger config, default values will be populated by the system. Note that there must be exactly one alert threshold configured per [client + trigger + workflow] when published. */ alertConfig: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoWorkflowAlertConfigResponse[]; cloudSchedulerConfig: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoCloudSchedulerConfigResponse; /** * User-provided description intended to give more business context about the task. */ description: string; /** * The list of client ids which are enabled to execute the workflow using this trigger. In other words, these clients have the workflow execution privledges for this trigger. For API trigger, the client id in the incoming request is validated against the list of enabled clients. For non-API triggers, one workflow execution is triggered on behalf of each enabled client. */ enabledClients: string[]; /** * Optional Error catcher id of the error catch flow which will be executed when execution error happens in the task */ errorCatcherId: string; /** * The user created label for a particular trigger. */ label: string; /** * Dictates how next tasks will be executed. */ nextTasksExecutionPolicy: string; /** * Optional. If set to true, any upcoming requests for this trigger config will be paused and the executions will be resumed later when the flag is reset. The workflow to which this trigger config belongs has to be in ACTIVE status for the executions to be paused or resumed. */ pauseWorkflowExecutions: boolean; /** * Optional. Informs the front-end application where to draw this trigger config on the UI. */ position: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoCoordinateResponse; /** * Configurable properties of the trigger, not to be confused with workflow parameters. E.g. "name" is a property for API triggers and "subscription" is a property for Cloud Pubsub triggers. */ properties: { [key: string]: string; }; /** * Set of tasks numbers from where the workflow execution is started by this trigger. If this is empty, then workflow is executed with default start tasks. In the list of start tasks, none of two tasks can have direct ancestor-descendant relationships (i.e. in a same workflow execution graph). */ startTasks: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoNextTaskResponse[]; /** * Optional. When set, Eventbus will run the task specified in the trigger_criteria and validate the result using the trigger_criteria.condition, and only execute the workflow when result is true. */ triggerCriteria: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoTriggerCriteriaResponse; /** * The backend trigger ID. */ triggerId: string; /** * Optional. Name of the trigger This is added to identify the type of trigger. This is avoid the logic on triggerId to identify the trigger_type and push the same to monitoring. */ triggerName: string; /** * A number to uniquely identify each trigger config within the workflow on UI. */ triggerNumber: string; triggerType: string; } interface EnterpriseCrmFrontendsEventbusProtoWorkflowParameterEntryResponse { /** * Metadata information about the parameters. */ attributes: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoAttributesResponse; /** * Child parameters nested within this parameter. This field only applies to protobuf parameters */ children: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoWorkflowParameterEntryResponse[]; /** * The data type of the parameter. */ dataType: string; /** * Default values for the defined keys. Each value can either be string, int, double or any proto message or a serialized object. */ defaultValue: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoParameterValueTypeResponse; /** * Optional. The description about the parameter */ description: string; /** * Specifies the input/output type for the parameter. */ inOutType: string; /** * Whether this parameter is a transient parameter. */ isTransient: boolean; /** * This schema will be used to validate runtime JSON-typed values of this parameter. */ jsonSchema: string; /** * Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the workflow definition. */ key: string; /** * The name (without prefix) to be displayed in the UI for this parameter. E.g. if the key is "foo.bar.myName", then the name would be "myName". */ name: string; /** * The identifier of the node (TaskConfig/TriggerConfig) this parameter was produced by, if it is a transient param or a copy of an input param. */ producedBy: outputs.integrations.v1alpha.EnterpriseCrmEventbusProtoNodeIdentifierResponse; producer: string; /** * The name of the protobuf type if the parameter has a protobuf data type. */ protoDefName: string; /** * If the data type is of type proto or proto array, this field needs to be populated with the fully qualified proto name. This message, for example, would be "enterprise.crm.frontends.eventbus.proto.WorkflowParameterEntry". */ protoDefPath: string; } /** * LINT.IfChange This is the frontend version of WorkflowParameters. It's exactly like the backend version except that instead of flattening protobuf parameters and treating every field and subfield of a protobuf parameter as a separate parameter, the fields/subfields of a protobuf parameter will be nested as "children" (see 'children' field below) parameters of the parent parameter. Please refer to enterprise/crm/eventbus/proto/workflow_parameters.proto for more information about WorkflowParameters. */ interface EnterpriseCrmFrontendsEventbusProtoWorkflowParametersResponse { /** * Parameters are a part of Event and can be used to communiticate between different tasks that are part of the same workflow execution. */ parameters: outputs.integrations.v1alpha.EnterpriseCrmFrontendsEventbusProtoWorkflowParameterEntryResponse[]; } /** * Describes string and array limits when writing to logs. When a limit is exceeded the *shortener_type* describes how to shorten the field. next_id: 6 */ interface EnterpriseCrmLoggingGwsFieldLimitsResponse { logAction: string; /** * To which type(s) of logs the limits apply. */ logType: string[]; /** * maximum array size. If the array exceds this size, the field (list) is truncated. */ maxArraySize: number; /** * maximum string length. If the field exceeds this amount the field is shortened. */ maxStringLength: number; shortenerType: string; } /** * Identifies whether a field contains, or may contain, PII or sensitive data, and how to sanitize the field if it does. If a field's privacy type cannot be determined then it is sanitized (e.g., scrubbed). The specific sanitizer implementation is determined by run-time configuration and environment options (e.g., prod vs. qa). next_id: 5 */ interface EnterpriseCrmLoggingGwsSanitizeOptionsResponse { /** * If true, the value has already been sanitized and needs no further sanitization. For instance, a D3 customer id is already an obfuscated entity and *might not* need further sanitization. */ isAlreadySanitized: boolean; /** * To which type(s) of logs the sanitize options apply. */ logType: string[]; privacy: string; sanitizeType: string; } /** * The access token represents the authorization of a specific application to access specific parts of a user’s data. */ interface GoogleCloudIntegrationsV1alphaAccessTokenResponse { /** * The access token encapsulating the security identity of a process or thread. */ accessToken: string; /** * The approximate time until the access token retrieved is valid. */ accessTokenExpireTime: string; /** * If the access token will expire, use the refresh token to obtain another access token. */ refreshToken: string; /** * The approximate time until the refresh token retrieved is valid. */ refreshTokenExpireTime: string; /** * Only support "bearer" token in v1 as bearer token is the predominant type used with OAuth 2.0. */ tokenType: string; } /** * An assertion which will check for a condition over task execution status or an expression for task output variables Next available id: 5 */ interface GoogleCloudIntegrationsV1alphaAssertionResponse { /** * The type of assertion to perform. */ assertionStrategy: string; /** * Optional. Standard filter expression for ASSERT_CONDITION to succeed */ condition: string; /** * Optional. Key-value pair for ASSERT_EQUALS, ASSERT_NOT_EQUALS, ASSERT_CONTAINS to succeed */ parameter: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaEventParameterResponse; /** * Number of times given task should be retried in case of ASSERT_FAILED_EXECUTION */ retryCount: number; } /** * The credentials to authenticate a user agent with a server that is put in HTTP Authorization request header. */ interface GoogleCloudIntegrationsV1alphaAuthTokenResponse { /** * The token for the auth type. */ token: string; /** * Authentication type, e.g. "Basic", "Bearer", etc. */ type: string; } /** * This message only contains a field of boolean array. */ interface GoogleCloudIntegrationsV1alphaBooleanParameterArrayResponse { /** * Boolean array. */ booleanValues: boolean[]; } /** * Contains client certificate information */ interface GoogleCloudIntegrationsV1alphaClientCertificateResponse { /** * The ssl certificate encoded in PEM format. This string must include the begin header and end footer lines. For example, -----BEGIN CERTIFICATE----- MIICTTCCAbagAwIBAgIJAPT0tSKNxan/MA0GCSqGSIb3DQEBCwUAMCoxFzAVBgNV BAoTDkdvb2dsZSBURVNUSU5HMQ8wDQYDVQQDEwZ0ZXN0Q0EwHhcNMTUwMTAxMDAw MDAwWhcNMjUwMTAxMDAwMDAwWjAuMRcwFQYDVQQKEw5Hb29nbGUgVEVTVElORzET MBEGA1UEAwwKam9lQGJhbmFuYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA vDYFgMgxi5W488d9J7UpCInl0NXmZQpJDEHE4hvkaRlH7pnC71H0DLt0/3zATRP1 JzY2+eqBmbGl4/sgZKYv8UrLnNyQNUTsNx1iZAfPUflf5FwgVsai8BM0pUciq1NB xD429VFcrGZNucvFLh72RuRFIKH8WUpiK/iZNFkWhZ0CAwEAAaN3MHUwDgYDVR0P AQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMB Af8EAjAAMBkGA1UdDgQSBBCVgnFBCWgL/iwCqnGrhTPQMBsGA1UdIwQUMBKAEKey Um2o4k2WiEVA0ldQvNYwDQYJKoZIhvcNAQELBQADgYEAYK986R4E3L1v+Q6esBtW JrUwA9UmJRSQr0N5w3o9XzarU37/bkjOP0Fw0k/A6Vv1n3vlciYfBFaBIam1qRHr 5dMsYf4CZS6w50r7hyzqyrwDoyNxkLnd2PdcHT/sym1QmflsjEs7pejtnohO6N2H wQW6M0H7Zt8claGRla4fKkg= -----END CERTIFICATE----- */ encryptedPrivateKey: string; /** * 'passphrase' should be left unset if private key is not encrypted. Note that 'passphrase' is not the password for web server, but an extra layer of security to protected private key. */ passphrase: string; /** * The ssl certificate encoded in PEM format. This string must include the begin header and end footer lines. For example, -----BEGIN CERTIFICATE----- MIICTTCCAbagAwIBAgIJAPT0tSKNxan/MA0GCSqGSIb3DQEBCwUAMCoxFzAVBgNV BAoTDkdvb2dsZSBURVNUSU5HMQ8wDQYDVQQDEwZ0ZXN0Q0EwHhcNMTUwMTAxMDAw MDAwWhcNMjUwMTAxMDAwMDAwWjAuMRcwFQYDVQQKEw5Hb29nbGUgVEVTVElORzET MBEGA1UEAwwKam9lQGJhbmFuYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA vDYFgMgxi5W488d9J7UpCInl0NXmZQpJDEHE4hvkaRlH7pnC71H0DLt0/3zATRP1 JzY2+eqBmbGl4/sgZKYv8UrLnNyQNUTsNx1iZAfPUflf5FwgVsai8BM0pUciq1NB xD429VFcrGZNucvFLh72RuRFIKH8WUpiK/iZNFkWhZ0CAwEAAaN3MHUwDgYDVR0P AQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMB Af8EAjAAMBkGA1UdDgQSBBCVgnFBCWgL/iwCqnGrhTPQMBsGA1UdIwQUMBKAEKey Um2o4k2WiEVA0ldQvNYwDQYJKoZIhvcNAQELBQADgYEAYK986R4E3L1v+Q6esBtW JrUwA9UmJRSQr0N5w3o9XzarU37/bkjOP0Fw0k/A6Vv1n3vlciYfBFaBIam1qRHr 5dMsYf4CZS6w50r7hyzqyrwDoyNxkLnd2PdcHT/sym1QmflsjEs7pejtnohO6N2H wQW6M0H7Zt8claGRla4fKkg= -----END CERTIFICATE----- */ sslCertificate: string; } /** * Cloud Logging details for execution info */ interface GoogleCloudIntegrationsV1alphaCloudLoggingDetailsResponse { /** * Optional. Severity selected by the customer for the logs to be sent to Cloud Logging, for the integration version getting executed. */ cloudLoggingSeverity: string; /** * Optional. Status of whether Cloud Logging is enabled or not for the integration version getting executed. */ enableCloudLogging: boolean; } /** * Cloud Scheduler Trigger configuration */ interface GoogleCloudIntegrationsV1alphaCloudSchedulerConfigResponse { /** * The cron tab of cloud scheduler trigger. */ cronTab: string; /** * Optional. When the job was deleted from Pantheon UI, error_message will be populated when Get/List integrations */ errorMessage: string; /** * The location where associated cloud scheduler job will be created */ location: string; /** * Service account used by Cloud Scheduler to trigger the integration at scheduled time */ serviceAccountEmail: string; } /** * Configuration detail of coordinate, it used for UI */ interface GoogleCloudIntegrationsV1alphaCoordinateResponse { /** * X axis of the coordinate */ x: number; /** * Y axis of the coordinate */ y: number; } /** * Defines parameters for a single, canonical credential. */ interface GoogleCloudIntegrationsV1alphaCredentialResponse { /** * Auth token credential */ authToken: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaAuthTokenResponse; /** * Credential type associated with auth config. */ credentialType: string; /** * JWT credential */ jwt: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaJwtResponse; /** * The api_key and oauth2_implicit are not covered in v1 and will be picked up once v1 is implemented. ApiKey api_key = 3; OAuth2 authorization code credential */ oauth2AuthorizationCode: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaOAuth2AuthorizationCodeResponse; /** * OAuth2Implicit oauth2_implicit = 5; OAuth2 client credentials */ oauth2ClientCredentials: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaOAuth2ClientCredentialsResponse; /** * OAuth2 resource owner credentials */ oauth2ResourceOwnerCredentials: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaOAuth2ResourceOwnerCredentialsResponse; /** * Google OIDC ID Token */ oidcToken: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaOidcTokenResponse; /** * Service account credential */ serviceAccountCredentials: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaServiceAccountCredentialsResponse; /** * Username and password credential */ usernameAndPassword: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaUsernameAndPasswordResponse; } /** * This message only contains a field of double number array. */ interface GoogleCloudIntegrationsV1alphaDoubleParameterArrayResponse { /** * Double number array. */ doubleValues: number[]; } /** * Configuration detail of a error catch task */ interface GoogleCloudIntegrationsV1alphaErrorCatcherConfigResponse { /** * Optional. User-provided description intended to give more business context about the error catcher config. */ description: string; /** * An error catcher id is string representation for the error catcher config. Within a workflow, error_catcher_id uniquely identifies an error catcher config among all error catcher configs for the workflow */ errorCatcherId: string; /** * A number to uniquely identify each error catcher config within the workflow on UI. */ errorCatcherNumber: string; /** * Optional. The user created label for a particular error catcher. Optional. */ label: string; /** * Optional. Informs the front-end application where to draw this error catcher config on the UI. */ position: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaCoordinateResponse; /** * The set of start tasks that are to be executed for the error catch flow */ startErrorTasks: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaNextTaskResponse[]; } /** * This message is used for processing and persisting (when applicable) key value pair parameters for each event in the event bus. */ interface GoogleCloudIntegrationsV1alphaEventParameterResponse { /** * Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the integration definition. */ key: string; /** * Values for the defined keys. Each value can either be string, int, double or any proto message. */ value: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaValueTypeResponse; } /** * Policy that defines the task retry logic and failure type. If no FailurePolicy is defined for a task, all its dependent tasks will not be executed (i.e, a `retry_strategy` of NONE will be applied). */ interface GoogleCloudIntegrationsV1alphaFailurePolicyResponse { /** * Required if retry_strategy is FIXED_INTERVAL or LINEAR/EXPONENTIAL_BACKOFF/RESTART_INTEGRATION_WITH_BACKOFF. Defines the initial interval in seconds for backoff. */ intervalTime: string; /** * Required if retry_strategy is FIXED_INTERVAL or LINEAR/EXPONENTIAL_BACKOFF/RESTART_INTEGRATION_WITH_BACKOFF. Defines the number of times the task will be retried if failed. */ maxRetries: number; /** * Defines what happens to the task upon failure. */ retryStrategy: string; } /** * This message only contains a field of integer array. */ interface GoogleCloudIntegrationsV1alphaIntParameterArrayResponse { /** * Integer array. */ intValues: string[]; } /** * Message to be used to configure custom alerting in the {@code EventConfig} protos for an event. */ interface GoogleCloudIntegrationsV1alphaIntegrationAlertConfigResponse { /** * The period over which the metric value should be aggregated and evaluated. Format is , where integer should be a positive integer and unit should be one of (s,m,h,d,w) meaning (second, minute, hour, day, week). For an EXPECTED_MIN threshold, this aggregation_period must be lesser than 24 hours. */ aggregationPeriod: string; /** * For how many contiguous aggregation periods should the expected min or max be violated for the alert to be fired. */ alertThreshold: number; /** * Set to false by default. When set to true, the metrics are not aggregated or pushed to Monarch for this integration alert. */ disableAlert: boolean; /** * Name of the alert. This will be displayed in the alert subject. If set, this name should be unique within the scope of the integration. */ displayName: string; /** * Should be specified only for *AVERAGE_DURATION and *PERCENTILE_DURATION metrics. This member should be used to specify what duration value the metrics should exceed for the alert to trigger. */ durationThreshold: string; /** * The type of metric. */ metricType: string; /** * For either events or tasks, depending on the type of alert, count only final attempts, not retries. */ onlyFinalAttempt: boolean; /** * The threshold type, whether lower(expected_min) or upper(expected_max), for which this alert is being configured. If value falls below expected_min or exceeds expected_max, an alert will be fired. */ thresholdType: string; /** * The metric value, above or below which the alert should be triggered. */ thresholdValue: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaIntegrationAlertConfigThresholdValueResponse; } /** * The threshold value of the metric, above or below which the alert should be triggered. See EventAlertConfig or TaskAlertConfig for the different alert metric types in each case. For the *RATE metrics, one or both of these fields may be set. Zero is the default value and can be left at that. For *PERCENTILE_DURATION metrics, one or both of these fields may be set, and also, the duration threshold value should be specified in the threshold_duration_ms member below. For *AVERAGE_DURATION metrics, these fields should not be set at all. A different member, threshold_duration_ms, must be set in the EventAlertConfig or the TaskAlertConfig. */ interface GoogleCloudIntegrationsV1alphaIntegrationAlertConfigThresholdValueResponse { /** * Absolute value threshold. */ absolute: string; /** * Percentage threshold. */ percentage: number; } /** * Integration Parameter is defined in the integration config and are used to provide information about data types of the expected parameters and provide any default values if needed. They can also be used to add custom attributes. These are static in nature and should not be used for dynamic event definition. */ interface GoogleCloudIntegrationsV1alphaIntegrationParameterResponse { /** * Type of the parameter. */ dataType: string; /** * Default values for the defined keys. Each value can either be string, int, double or any proto message or a serialized object. */ defaultValue: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaValueTypeResponse; /** * The name (without prefix) to be displayed in the UI for this parameter. E.g. if the key is "foo.bar.myName", then the name would be "myName". */ displayName: string; /** * Specifies the input/output type for the parameter. */ inputOutputType: string; /** * Whether this parameter is a transient parameter. */ isTransient: boolean; /** * This schema will be used to validate runtime JSON-typed values of this parameter. */ jsonSchema: string; /** * Key is used to retrieve the corresponding parameter value. This should be unique for a given fired event. These parameters must be predefined in the integration definition. */ key: string; /** * The identifier of the node (TaskConfig/TriggerConfig) this parameter was produced by, if it is a transient param or a copy of an input param. */ producer: string; /** * Searchable in the execution log or not. */ searchable: boolean; } /** * Represents JSON web token(JWT), which is a compact, URL-safe means of representing claims to be transferred between two parties, enabling the claims to be digitally signed or integrity protected. */ interface GoogleCloudIntegrationsV1alphaJwtResponse { /** * The token calculated by the header, payload and signature. */ jwt: string; /** * Identifies which algorithm is used to generate the signature. */ jwtHeader: string; /** * Contains a set of claims. The JWT specification defines seven Registered Claim Names which are the standard fields commonly included in tokens. Custom claims are usually also included, depending on the purpose of the token. */ jwtPayload: string; /** * User's pre-shared secret to sign the token. */ secret: string; } /** * The configuration for mocking of a task during test execution Next available id: 4 */ interface GoogleCloudIntegrationsV1alphaMockConfigResponse { /** * Optional. Number of times the given task should fail for failure mock strategy */ failedExecutions: string; /** * Mockstrategy defines how the particular task should be mocked during test execution */ mockStrategy: string; /** * Optional. List of key-value pairs for specific mock strategy */ parameters: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaEventParameterResponse[]; } /** * The task that is next in line to be executed, if the condition specified evaluated to true. */ interface GoogleCloudIntegrationsV1alphaNextTaskResponse { /** * Standard filter expression for this task to become an eligible next task. */ condition: string; /** * User-provided description intended to give additional business context about the task. */ description: string; /** * User-provided label that is attached to this edge in the UI. */ displayName: string; /** * ID of the next task. */ taskConfigId: string; /** * Task number of the next task. */ taskId: string; } /** * The OAuth Type where the client sends request with the client id and requested scopes to auth endpoint. User sees a consent screen and auth code is received at specified redirect url afterwards. The auth code is then combined with the client id and secret and sent to the token endpoint in exchange for the access and refresh token. The refresh token can be used to fetch new access tokens. */ interface GoogleCloudIntegrationsV1alphaOAuth2AuthorizationCodeResponse { /** * The access token received from the token endpoint. */ accessToken: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaAccessTokenResponse; /** * Indicates if the user has opted in Google Reauth Policy. If opted in, the refresh token will be valid for 20 hours, after which time users must re-authenticate in order to obtain a new one. */ applyReauthPolicy: boolean; /** * The Auth Code that is used to initially retrieve the access token. */ authCode: string; /** * The auth url endpoint to send the auth code request to. */ authEndpoint: string; /** * The auth parameters sent along with the auth code request. */ authParams: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaParameterMapResponse; /** * The client's id. */ clientId: string; /** * The client's secret. */ clientSecret: string; /** * Represent how to pass parameters to fetch access token */ requestType: string; /** * A space-delimited list of requested scope permissions. */ scope: string; /** * The token url endpoint to send the token request to. */ tokenEndpoint: string; /** * The token parameters sent along with the token request. */ tokenParams: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaParameterMapResponse; } /** * For client credentials grant, the client sends a POST request with grant_type as 'client_credentials' to the authorization server. The authorization server will respond with a JSON object containing the access token. */ interface GoogleCloudIntegrationsV1alphaOAuth2ClientCredentialsResponse { /** * Access token fetched from the authorization server. */ accessToken: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaAccessTokenResponse; /** * The client's ID. */ clientId: string; /** * The client's secret. */ clientSecret: string; /** * Represent how to pass parameters to fetch access token */ requestType: string; /** * A space-delimited list of requested scope permissions. */ scope: string; /** * The token endpoint is used by the client to obtain an access token by presenting its authorization grant or refresh token. */ tokenEndpoint: string; /** * Token parameters for the auth request. */ tokenParams: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaParameterMapResponse; } /** * For resource owner credentials grant, the client will ask the user for their authorization credentials (ususally a username and password) and send a POST request to the authorization server. The authorization server will respond with a JSON object containing the access token. */ interface GoogleCloudIntegrationsV1alphaOAuth2ResourceOwnerCredentialsResponse { /** * Access token fetched from the authorization server. */ accessToken: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaAccessTokenResponse; /** * The client's ID. */ clientId: string; /** * The client's secret. */ clientSecret: string; /** * The user's password. */ password: string; /** * Represent how to pass parameters to fetch access token */ requestType: string; /** * A space-delimited list of requested scope permissions. */ scope: string; /** * The token endpoint is used by the client to obtain an access token by presenting its authorization grant or refresh token. */ tokenEndpoint: string; /** * Token parameters for the auth request. */ tokenParams: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaParameterMapResponse; /** * The user's username. */ username: string; } /** * OIDC Token */ interface GoogleCloudIntegrationsV1alphaOidcTokenResponse { /** * Audience to be used when generating OIDC token. The audience claim identifies the recipients that the JWT is intended for. */ audience: string; /** * The service account email to be used as the identity for the token. */ serviceAccountEmail: string; /** * ID token obtained for the service account */ token: string; /** * The approximate time until the token retrieved is valid. */ tokenExpireTime: string; } /** * Entry is a pair of key and value. */ interface GoogleCloudIntegrationsV1alphaParameterMapEntryResponse { /** * Key of the map entry. */ key: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaParameterMapFieldResponse; /** * Value of the map entry. */ value: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaParameterMapFieldResponse; } /** * Field represents either the key or value in an entry. */ interface GoogleCloudIntegrationsV1alphaParameterMapFieldResponse { /** * Passing a literal value. */ literalValue: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaValueTypeResponse; /** * Referencing one of the Integration variables. */ referenceKey: string; } /** * A generic multi-map that holds key value pairs. They keys and values can be of any type, unless specified. */ interface GoogleCloudIntegrationsV1alphaParameterMapResponse { /** * A list of parameter map entries. */ entries: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaParameterMapEntryResponse[]; /** * Option to specify key type for all entries of the map. If provided then field types for all entries must conform to this. */ keyType: string; /** * Option to specify value type for all entries of the map. If provided then field types for all entries must conform to this. */ valueType: string; } /** * Represents the service account which can be used to generate access token for authenticating the service call. */ interface GoogleCloudIntegrationsV1alphaServiceAccountCredentialsResponse { /** * A space-delimited list of requested scope permissions. */ scope: string; /** * Name of the service account that has the permission to make the request. */ serviceAccount: string; } /** * This message only contains a field of string array. */ interface GoogleCloudIntegrationsV1alphaStringParameterArrayResponse { /** * String array. */ stringValues: string[]; } /** * Policy that dictates the behavior for the task after it completes successfully. */ interface GoogleCloudIntegrationsV1alphaSuccessPolicyResponse { /** * State to which the execution snapshot status will be set if the task succeeds. */ finalState: string; } /** * The task configuration details. This is not the implementation of Task. There might be multiple TaskConfigs for the same Task. */ interface GoogleCloudIntegrationsV1alphaTaskConfigResponse { /** * Optional. User-provided description intended to give additional business context about the task. */ description: string; /** * Optional. User-provided label that is attached to this TaskConfig in the UI. */ displayName: string; /** * Optional. Optional Error catcher id of the error catch flow which will be executed when execution error happens in the task */ errorCatcherId: string; /** * Optional. External task type of the task */ externalTaskType: string; /** * Optional. Determines the number of times the task will be retried on failure and with what retry strategy. This is applicable for asynchronous calls to Eventbus alone (Post To Queue, Schedule etc.). */ failurePolicy: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaFailurePolicyResponse; /** * Optional. If set, overrides the option configured in the Task implementation class. */ jsonValidationOption: string; /** * Optional. The set of tasks that are next in line to be executed as per the execution graph defined for the parent event, specified by `event_config_id`. Each of these next tasks are executed only if the condition associated with them evaluates to true. */ nextTasks: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaNextTaskResponse[]; /** * Optional. The policy dictating the execution of the next set of tasks for the current task. */ nextTasksExecutionPolicy: string; /** * Optional. The customized parameters the user can pass to this task. */ parameters: { [key: string]: string; }; /** * Optional. Informs the front-end application where to draw this error catcher config on the UI. */ position: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaCoordinateResponse; /** * Optional. Determines what action to take upon successful task completion. */ successPolicy: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaSuccessPolicyResponse; /** * Optional. Determines the number of times the task will be retried on failure and with what retry strategy. This is applicable for synchronous calls to Eventbus alone (Post). */ synchronousCallFailurePolicy: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaFailurePolicyResponse; /** * Optional. The name for the task. */ task: string; /** * Optional. The policy dictating the execution strategy of this task. */ taskExecutionStrategy: string; /** * The identifier of this task within its parent event config, specified by the client. This should be unique among all the tasks belong to the same event config. We use this field as the identifier to find next tasks (via field `next_tasks.task_id`). */ taskId: string; /** * Optional. Used to define task-template name if task is of type task-template */ taskTemplate: string; } /** * The task mock configuration details and assertions for functional tests. Next available id: 5 */ interface GoogleCloudIntegrationsV1alphaTestTaskConfigResponse { /** * Optional. List of conditions or expressions which should be evaluated to true unless there is a bug/problem in the integration. These are evaluated one the task execution is completed as per the mock strategy in test case */ assertions: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaAssertionResponse[]; /** * Optional. Defines how to mock the given task during test execution */ mockConfig: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaMockConfigResponse; /** * This defines in the test case, the task name in integration which will be mocked by this test task config */ task: string; /** * This defines in the test case, the task in integration which will be mocked by this test task config */ taskNumber: string; } /** * Configuration detail of a trigger. */ interface GoogleCloudIntegrationsV1alphaTriggerConfigResponse { /** * Optional. An alert threshold configuration for the [trigger + client + integration] tuple. If these values are not specified in the trigger config, default values will be populated by the system. Note that there must be exactly one alert threshold configured per [client + trigger + integration] when published. */ alertConfig: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaIntegrationAlertConfigResponse[]; /** * Optional. Cloud Scheduler Trigger related metadata */ cloudSchedulerConfig: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaCloudSchedulerConfigResponse; /** * Optional. User-provided description intended to give additional business context about the task. */ description: string; /** * Optional. Optional Error catcher id of the error catch flow which will be executed when execution error happens in the task */ errorCatcherId: string; /** * Optional. The user created label for a particular trigger. */ label: string; /** * Optional. Dictates how next tasks will be executed. */ nextTasksExecutionPolicy: string; /** * Optional. Informs the front-end application where to draw this error catcher config on the UI. */ position: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaCoordinateResponse; /** * Optional. Configurable properties of the trigger, not to be confused with integration parameters. E.g. "name" is a property for API triggers and "subscription" is a property for Pub/sub triggers. */ properties: { [key: string]: string; }; /** * Optional. Set of tasks numbers from where the integration execution is started by this trigger. If this is empty, then integration is executed with default start tasks. In the list of start tasks, none of two tasks can have direct ancestor-descendant relationships (i.e. in a same integration execution graph). */ startTasks: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaNextTaskResponse[]; /** * Optional. Name of the trigger. Example: "API Trigger", "Cloud Pub Sub Trigger" When set will be sent out to monitoring dashabord for tracking purpose. */ trigger: string; /** * Optional. The backend trigger ID. */ triggerId: string; /** * A number to uniquely identify each trigger config within the integration on UI. */ triggerNumber: string; /** * Optional. Type of trigger */ triggerType: string; } /** * Username and password pair. */ interface GoogleCloudIntegrationsV1alphaUsernameAndPasswordResponse { /** * Password to be used */ password: string; /** * Username to be used */ username: string; } /** * The type of the parameter. */ interface GoogleCloudIntegrationsV1alphaValueTypeResponse { /** * Boolean Array. */ booleanArray: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaBooleanParameterArrayResponse; /** * Boolean. */ booleanValue: boolean; /** * Double Number Array. */ doubleArray: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaDoubleParameterArrayResponse; /** * Double Number. */ doubleValue: number; /** * Integer Array. */ intArray: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaIntParameterArrayResponse; /** * Integer. */ intValue: string; /** * Json. */ jsonValue: string; /** * String Array. */ stringArray: outputs.integrations.v1alpha.GoogleCloudIntegrationsV1alphaStringParameterArrayResponse; /** * String. */ stringValue: string; } } } export declare namespace jobs { namespace v3 { /** * Application related details of a job posting. */ interface ApplicationInfoResponse { /** * Optional but at least one of uris, emails or instruction must be specified. Use this field to specify email address(es) to which resumes or applications can be sent. The maximum number of allowed characters for each entry is 255. */ emails: string[]; /** * Optional but at least one of uris, emails or instruction must be specified. Use this field to provide instructions, such as "Mail your application to ...", that a candidate can follow to apply for the job. This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of allowed characters is 3,000. */ instruction: string; /** * Optional but at least one of uris, emails or instruction must be specified. Use this URI field to direct an applicant to a website, for example to link to an online application form. The maximum number of allowed characters for each entry is 2,000. */ uris: string[]; } /** * Derived details about the company. */ interface CompanyDerivedInfoResponse { /** * A structured headquarters location of the company, resolved from Company.hq_location if provided. */ headquartersLocation: outputs.jobs.v3.LocationResponse; } /** * A compensation entry that represents one component of compensation, such as base pay, bonus, or other compensation type. Annualization: One compensation entry can be annualized if - it contains valid amount or range. - and its expected_units_per_year is set or can be derived. Its annualized range is determined as (amount or range) times expected_units_per_year. */ interface CompensationEntryResponse { /** * Optional. Compensation amount. */ amount: outputs.jobs.v3.MoneyResponse; /** * Optional. Compensation description. For example, could indicate equity terms or provide additional context to an estimated bonus. */ description: string; /** * Optional. Expected number of units paid each year. If not specified, when Job.employment_types is FULLTIME, a default value is inferred based on unit. Default values: - HOURLY: 2080 - DAILY: 260 - WEEKLY: 52 - MONTHLY: 12 - ANNUAL: 1 */ expectedUnitsPerYear: number; /** * Optional. Compensation range. */ range: outputs.jobs.v3.CompensationRangeResponse; /** * Optional. Compensation type. Default is CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED. */ type: string; /** * Optional. Frequency of the specified amount. Default is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED. */ unit: string; } /** * Job compensation details. */ interface CompensationInfoResponse { /** * Annualized base compensation range. Computed as base compensation entry's CompensationEntry.compensation times CompensationEntry.expected_units_per_year. See CompensationEntry for explanation on compensation annualization. */ annualizedBaseCompensationRange: outputs.jobs.v3.CompensationRangeResponse; /** * Annualized total compensation range. Computed as all compensation entries' CompensationEntry.compensation times CompensationEntry.expected_units_per_year. See CompensationEntry for explanation on compensation annualization. */ annualizedTotalCompensationRange: outputs.jobs.v3.CompensationRangeResponse; /** * Optional. Job compensation information. At most one entry can be of type CompensationInfo.CompensationType.BASE, which is referred as ** base compensation entry ** for the job. */ entries: outputs.jobs.v3.CompensationEntryResponse[]; } /** * Compensation range. */ interface CompensationRangeResponse { /** * Optional. The maximum amount of compensation. If left empty, the value is set to a maximal compensation value and the currency code is set to match the currency code of min_compensation. */ maxCompensation: outputs.jobs.v3.MoneyResponse; /** * Optional. The minimum amount of compensation. If left empty, the value is set to zero and the currency code is set to match the currency code of max_compensation. */ minCompensation: outputs.jobs.v3.MoneyResponse; } /** * Output only. Derived details about the job posting. */ interface JobDerivedInfoResponse { /** * Job categories derived from Job.title and Job.description. */ jobCategories: string[]; /** * Structured locations of the job, resolved from Job.addresses. locations are exactly matched to Job.addresses in the same order. */ locations: outputs.jobs.v3.LocationResponse[]; } /** * An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. */ interface LatLngResponse { /** * The latitude in degrees. It must be in the range [-90.0, +90.0]. */ latitude: number; /** * The longitude in degrees. It must be in the range [-180.0, +180.0]. */ longitude: number; } /** * Output only. A resource that represents a location with full geographic information. */ interface LocationResponse { /** * An object representing a latitude/longitude pair. */ latLng: outputs.jobs.v3.LatLngResponse; /** * The type of a location, which corresponds to the address lines field of PostalAddress. For example, "Downtown, Atlanta, GA, USA" has a type of LocationType#NEIGHBORHOOD, and "Kansas City, KS, USA" has a type of LocationType#LOCALITY. */ locationType: string; /** * Postal address of the location that includes human readable information, such as postal delivery and payments addresses. Given a postal address, a postal service can deliver items to a premises, P.O. Box, or other delivery location. */ postalAddress: outputs.jobs.v3.PostalAddressResponse; /** * Radius in miles of the job location. This value is derived from the location bounding box in which a circle with the specified radius centered from LatLng covers the area associated with the job location. For example, currently, "Mountain View, CA, USA" has a radius of 6.17 miles. */ radiusInMiles: number; } /** * Represents an amount of money with its currency type. */ interface MoneyResponse { /** * The three-letter currency code defined in ISO 4217. */ currencyCode: string; /** * Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. */ nanos: number; /** * The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. */ units: string; } /** * Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 */ interface PostalAddressResponse { /** * Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. "Austin, TX"), it is important that the line order is clear. The order of address lines should be "envelope order" for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. "ja" for large-to-small ordering and "ja-Latn" or "en" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas). */ addressLines: string[]; /** * Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated. */ administrativeArea: string; /** * Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: "zh-Hant", "ja", "ja-Latn", "en". */ languageCode: string; /** * Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines. */ locality: string; /** * Optional. The name of the organization at the address. */ organization: string; /** * Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.). */ postalCode: string; /** * Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain "care of" information. */ recipients: string[]; /** * CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for Switzerland. */ regionCode: string; /** * The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions. */ revision: number; /** * Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). */ sortingCode: string; /** * Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts. */ sublocality: string; } /** * Input only. Options for job processing. */ interface ProcessingOptionsResponse { /** * Optional. If set to `true`, the service does not attempt to resolve a more precise address for the job. */ disableStreetAddressResolution: boolean; /** * Optional. Option for job HTML content sanitization. Applied fields are: * description * applicationInfo.instruction * incentives * qualifications * responsibilities HTML tags in these fields may be stripped if sanitiazation is not disabled. Defaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY. */ htmlSanitization: string; } } namespace v4 { /** * Application related details of a job posting. */ interface ApplicationInfoResponse { /** * Use this field to specify email address(es) to which resumes or applications can be sent. The maximum number of allowed characters for each entry is 255. */ emails: string[]; /** * Use this field to provide instructions, such as "Mail your application to ...", that a candidate can follow to apply for the job. This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of allowed characters is 3,000. */ instruction: string; /** * Use this URI field to direct an applicant to a website, for example to link to an online application form. The maximum number of allowed characters for each entry is 2,000. */ uris: string[]; } /** * Derived details about the company. */ interface CompanyDerivedInfoResponse { /** * A structured headquarters location of the company, resolved from Company.headquarters_address if provided. */ headquartersLocation: outputs.jobs.v4.LocationResponse; } /** * A compensation entry that represents one component of compensation, such as base pay, bonus, or other compensation type. Annualization: One compensation entry can be annualized if - it contains valid amount or range. - and its expected_units_per_year is set or can be derived. Its annualized range is determined as (amount or range) times expected_units_per_year. */ interface CompensationEntryResponse { /** * Compensation amount. */ amount: outputs.jobs.v4.MoneyResponse; /** * Compensation description. For example, could indicate equity terms or provide additional context to an estimated bonus. */ description: string; /** * Expected number of units paid each year. If not specified, when Job.employment_types is FULLTIME, a default value is inferred based on unit. Default values: - HOURLY: 2080 - DAILY: 260 - WEEKLY: 52 - MONTHLY: 12 - ANNUAL: 1 */ expectedUnitsPerYear: number; /** * Compensation range. */ range: outputs.jobs.v4.CompensationRangeResponse; /** * Compensation type. Default is CompensationType.COMPENSATION_TYPE_UNSPECIFIED. */ type: string; /** * Frequency of the specified amount. Default is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED. */ unit: string; } /** * Job compensation details. */ interface CompensationInfoResponse { /** * Annualized base compensation range. Computed as base compensation entry's CompensationEntry.amount times CompensationEntry.expected_units_per_year. See CompensationEntry for explanation on compensation annualization. */ annualizedBaseCompensationRange: outputs.jobs.v4.CompensationRangeResponse; /** * Annualized total compensation range. Computed as all compensation entries' CompensationEntry.amount times CompensationEntry.expected_units_per_year. See CompensationEntry for explanation on compensation annualization. */ annualizedTotalCompensationRange: outputs.jobs.v4.CompensationRangeResponse; /** * Job compensation information. At most one entry can be of type CompensationInfo.CompensationType.BASE, which is referred as **base compensation entry** for the job. */ entries: outputs.jobs.v4.CompensationEntryResponse[]; } /** * Compensation range. */ interface CompensationRangeResponse { /** * The maximum amount of compensation. If left empty, the value is set to a maximal compensation value and the currency code is set to match the currency code of min_compensation. */ maxCompensation: outputs.jobs.v4.MoneyResponse; /** * The minimum amount of compensation. If left empty, the value is set to zero and the currency code is set to match the currency code of max_compensation. */ minCompensation: outputs.jobs.v4.MoneyResponse; } /** * Derived details about the job posting. */ interface JobDerivedInfoResponse { /** * Job categories derived from Job.title and Job.description. */ jobCategories: string[]; /** * Structured locations of the job, resolved from Job.addresses. locations are exactly matched to Job.addresses in the same order. */ locations: outputs.jobs.v4.LocationResponse[]; } /** * An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. */ interface LatLngResponse { /** * The latitude in degrees. It must be in the range [-90.0, +90.0]. */ latitude: number; /** * The longitude in degrees. It must be in the range [-180.0, +180.0]. */ longitude: number; } /** * A resource that represents a location with full geographic information. */ interface LocationResponse { /** * An object representing a latitude/longitude pair. */ latLng: outputs.jobs.v4.LatLngResponse; /** * The type of a location, which corresponds to the address lines field of google.type.PostalAddress. For example, "Downtown, Atlanta, GA, USA" has a type of LocationType.NEIGHBORHOOD, and "Kansas City, KS, USA" has a type of LocationType.LOCALITY. */ locationType: string; /** * Postal address of the location that includes human readable information, such as postal delivery and payments addresses. Given a postal address, a postal service can deliver items to a premises, P.O. Box, or other delivery location. */ postalAddress: outputs.jobs.v4.PostalAddressResponse; /** * Radius in miles of the job location. This value is derived from the location bounding box in which a circle with the specified radius centered from google.type.LatLng covers the area associated with the job location. For example, currently, "Mountain View, CA, USA" has a radius of 6.17 miles. */ radiusMiles: number; } /** * Represents an amount of money with its currency type. */ interface MoneyResponse { /** * The three-letter currency code defined in ISO 4217. */ currencyCode: string; /** * Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. */ nanos: number; /** * The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. */ units: string; } /** * Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 */ interface PostalAddressResponse { /** * Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. "Austin, TX"), it is important that the line order is clear. The order of address lines should be "envelope order" for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. "ja" for large-to-small ordering and "ja-Latn" or "en" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas). */ addressLines: string[]; /** * Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated. */ administrativeArea: string; /** * Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: "zh-Hant", "ja", "ja-Latn", "en". */ languageCode: string; /** * Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines. */ locality: string; /** * Optional. The name of the organization at the address. */ organization: string; /** * Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.). */ postalCode: string; /** * Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain "care of" information. */ recipients: string[]; /** * CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for Switzerland. */ regionCode: string; /** * The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions. */ revision: number; /** * Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). */ sortingCode: string; /** * Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts. */ sublocality: string; } /** * Options for job processing. */ interface ProcessingOptionsResponse { /** * If set to `true`, the service does not attempt to resolve a more precise address for the job. */ disableStreetAddressResolution: boolean; /** * Option for job HTML content sanitization. Applied fields are: * description * applicationInfo.instruction * incentives * qualifications * responsibilities HTML tags in these fields may be stripped if sanitiazation isn't disabled. Defaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY. */ htmlSanitization: string; } } } export declare namespace logging { namespace v2 { /** * Describes a BigQuery dataset that was created by a link. */ interface BigQueryDatasetResponse { /** * The full resource name of the BigQuery dataset. The DATASET_ID will match the ID of the link, so the link must match the naming restrictions of BigQuery datasets (alphanumeric characters and underscores only).The dataset will have a resource path of "bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID" */ datasetId: string; } /** * Options that change functionality of a sink exporting data to BigQuery. */ interface BigQueryOptionsResponse { /** * Optional. Whether to use BigQuery's partition tables (https://cloud.google.com/bigquery/docs/partitioned-tables). By default, Cloud Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and special query syntax (https://cloud.google.com/bigquery/docs/querying-partitioned-tables) has to be used instead. In both cases, tables are sharded based on UTC timezone. */ usePartitionedTables: boolean; /** * True if new timestamp column based partitioning is in use, false if legacy ingress-time partitioning is in use.All new sinks will have this field set true and will use timestamp column based partitioning. If use_partitioned_tables is false, this value has no meaning and will be false. Legacy sinks using partitioned tables will have this field set to false. */ usesTimestampColumnPartitioning: boolean; } /** * BucketOptions describes the bucket boundaries used to create a histogram for the distribution. The buckets can be in a linear sequence, an exponential sequence, or each bucket can be specified explicitly. BucketOptions does not include the number of values in each bucket.A bucket has an inclusive lower bound and exclusive upper bound for the values that are counted for that bucket. The upper bound of a bucket must be strictly greater than the lower bound. The sequence of N buckets for a distribution consists of an underflow bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an overflow bucket (number N - 1). The buckets are contiguous: the lower bound of bucket i (i > 0) is the same as the upper bound of bucket i - 1. The buckets span the whole range of finite values: lower bound of the underflow bucket is -infinity and the upper bound of the overflow bucket is +infinity. The finite buckets are so-called because both bounds are finite. */ interface BucketOptionsResponse { /** * The explicit buckets. */ explicitBuckets: outputs.logging.v2.ExplicitResponse; /** * The exponential buckets. */ exponentialBuckets: outputs.logging.v2.ExponentialResponse; /** * The linear bucket. */ linearBuckets: outputs.logging.v2.LinearResponse; } /** * Describes the customer-managed encryption key (CMEK) settings associated with a project, folder, organization, billing account, or flexible resource.Note: CMEK for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information. */ interface CmekSettingsResponse { /** * The resource name for the configured Cloud KMS key.KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]" For example:"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key"To enable CMEK for the Log Router, set this field to a valid kms_key_name for which the associated service account has the needed cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.The Cloud KMS key used by the Log Router can be updated by changing the kms_key_name to a new valid key name or disabled by setting the key name to an empty string. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.To disable CMEK for the Log Router, set this field to an empty string.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information. */ kmsKeyName: string; /** * The CryptoKeyVersion resource name for the configured Cloud KMS key.KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]" For example:"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"This is a read-only field used to convey the specific configured CryptoKeyVersion of kms_key that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.If this field is populated, the kms_key is tied to a specific CryptoKeyVersion. */ kmsKeyVersionName: string; /** * The resource name of the CMEK settings. */ name: string; /** * The service account that will be used by the Log Router to access your Cloud KMS key.Before enabling CMEK for Log Router, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account that the Log Router will use to access your Cloud KMS key. Use GetCmekSettings to obtain the service account ID.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information. */ serviceAccountId: string; } /** * Specifies a set of buckets with arbitrary widths.There are size(bounds) + 1 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): boundsi Lower bound (1 <= i < N); boundsi - 1The bounds field must contain at least one element. If bounds has only one element, then there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets. */ interface ExplicitResponse { /** * The values must be monotonically increasing. */ bounds: number[]; } /** * Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): scale * (growth_factor ^ i).Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)). */ interface ExponentialResponse { /** * Must be greater than 1. */ growthFactor: number; /** * Must be greater than 0. */ numFiniteBuckets: number; /** * Must be greater than 0. */ scale: number; } /** * Configuration for an indexed field. */ interface IndexConfigResponse { /** * The timestamp when the index was last modified.This is used to return the timestamp, and will be ignored if supplied during update. */ createTime: string; /** * The LogEntry field path to index.Note that some paths are automatically indexed, and other paths are not eligible for indexing. See indexing documentation( https://cloud.google.com/logging/docs/view/advanced-queries#indexed-fields) for details.For example: jsonPayload.request.status */ fieldPath: string; /** * The type of data in this index. */ type: string; } /** * A description of a label. */ interface LabelDescriptorResponse { /** * A human-readable description for the label. */ description: string; /** * The label key. */ key: string; /** * The type of data that can be assigned to the label. */ valueType: string; } /** * Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1): offset + (width * i).Lower bound (1 <= i < N): offset + (width * (i - 1)). */ interface LinearResponse { /** * Must be greater than 0. */ numFiniteBuckets: number; /** * Lower bound of the first bucket. */ offset: number; /** * Must be greater than 0. */ width: number; } /** * Specifies a set of log entries that are filtered out by a sink. If your Google Cloud resource receives a large volume of log entries, you can use exclusions to reduce your chargeable logs. Note that exclusions on organization-level and folder-level sinks don't apply to child resources. Note also that you cannot modify the _Required sink or exclude logs from it. */ interface LogExclusionResponse { /** * The creation timestamp of the exclusion.This field may not be present for older exclusions. */ createTime: string; /** * Optional. A description of this exclusion. */ description: string; /** * Optional. If set to True, then this exclusion is disabled and it does not exclude any log entries. You can update an exclusion to change the value of this field. */ disabled: boolean; /** * An advanced logs filter (https://cloud.google.com/logging/docs/view/advanced-queries) that matches the log entries to be excluded. By using the sample function (https://cloud.google.com/logging/docs/view/advanced-queries#sample), you can exclude less than 100% of the matching log entries.For example, the following query matches 99% of low-severity log entries from Google Cloud Storage buckets:resource.type=gcs_bucket severity= 1.6.8 will have their services ingested as this type. */ interface IstioCanonicalServiceResponse { /** * The name of the canonical service underlying this service. Corresponds to the destination_canonical_service_name metric label in label in Istio metrics (https://cloud.google.com/monitoring/api/metrics_istio). */ canonicalService: string; /** * The namespace of the canonical service underlying this service. Corresponds to the destination_canonical_service_namespace metric label in Istio metrics (https://cloud.google.com/monitoring/api/metrics_istio). */ canonicalServiceNamespace: string; /** * Identifier for the Istio mesh in which this canonical service is defined. Corresponds to the mesh_uid metric label in Istio metrics (https://cloud.google.com/monitoring/api/metrics_istio). */ meshUid: string; } /** * Information needed to perform a JSONPath content match. Used for ContentMatcherOption::MATCHES_JSON_PATH and ContentMatcherOption::NOT_MATCHES_JSON_PATH. */ interface JsonPathMatcherResponse { /** * The type of JSONPath match that will be applied to the JSON output (ContentMatcher.content) */ jsonMatcher: string; /** * JSONPath within the response output pointing to the expected ContentMatcher::content to match against. */ jsonPath: string; } /** * A description of a label. */ interface LabelDescriptorResponse { /** * A human-readable description for the label. */ description: string; /** * The key for this label. The key must meet the following criteria: Does not exceed 100 characters. Matches the following regular expression: [a-zA-Z][a-zA-Z0-9_]* The first character must be an upper- or lower-case letter. The remaining characters must be letters, digits, or underscores. */ key: string; /** * The type of data that can be assigned to the label. */ valueType: string; } /** * Parameters for a latency threshold SLI. */ interface LatencyCriteriaResponse { /** * Good service is defined to be the count of requests made to this service that return in no more than threshold. */ threshold: string; } /** * A condition type that checks whether a log message in the scoping project (https://cloud.google.com/monitoring/api/v3#project_name) satisfies the given filter. Logs from other projects in the metrics scope are not evaluated. */ interface LogMatchResponse { /** * A logs-based filter. See Advanced Logs Queries (https://cloud.google.com/logging/docs/view/advanced-queries) for how this filter should be constructed. */ filter: string; /** * Optional. A map from a label key to an extractor expression, which is used to extract the value for this label key. Each entry in this map is a specification for how data should be extracted from log entries that match filter. Each combination of extracted values is treated as a separate rule for the purposes of triggering notifications. Label keys and corresponding values can be used in notifications generated by this condition.Please see the documentation on logs-based metric valueExtractors (https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.metrics#LogMetric.FIELDS.value_extractor) for syntax and examples. */ labelExtractors: { [key: string]: string; }; } /** * Istio service scoped to an Istio mesh. Anthos clusters running ASM < 1.6.8 will have their services ingested as this type. */ interface MeshIstioResponse { /** * Identifier for the mesh in which this Istio service is defined. Corresponds to the mesh_uid metric label in Istio metrics. */ meshUid: string; /** * The name of the Istio service underlying this service. Corresponds to the destination_service_name metric label in Istio metrics. */ serviceName: string; /** * The namespace of the Istio service underlying this service. Corresponds to the destination_service_namespace metric label in Istio metrics. */ serviceNamespace: string; } /** * A condition type that checks that monitored resources are reporting data. The configuration defines a metric and a set of monitored resources. The predicate is considered in violation when a time series for the specified metric of a monitored resource does not include any data in the specified duration. */ interface MetricAbsenceResponse { /** * Specifies the alignment of data points in individual time series as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resources). Multiple aggregations are applied in the order specified.This field is similar to the one in the ListTimeSeries request (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). It is advisable to use the ListTimeSeries method when debugging this field. */ aggregations: outputs.monitoring.v3.AggregationResponse[]; /** * The amount of time that a time series must fail to report new data to be considered failing. The minimum value of this field is 120 seconds. Larger values that are a multiple of a minute--for example, 240 or 300 seconds--are supported. If an invalid value is given, an error will be returned. The Duration.nanos field is ignored. */ duration: string; /** * A filter (https://cloud.google.com/monitoring/api/v3/filters) that identifies which time series should be compared with the threshold.The filter is similar to the one that is specified in the ListTimeSeries request (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that call is useful to verify the time series that will be retrieved / processed). The filter must specify the metric type and the resource type. Optionally, it can specify resource labels and metric labels. This field must not exceed 2048 Unicode characters in length. */ filter: string; /** * The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by filter and aggregations. */ trigger: outputs.monitoring.v3.TriggerResponse; } /** * Additional annotations that can be used to guide the usage of a metric. */ interface MetricDescriptorMetadataResponse { /** * The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. */ ingestDelay: string; /** * Deprecated. Must use the MetricDescriptor.launch_stage instead. * * @deprecated Deprecated. Must use the MetricDescriptor.launch_stage instead. */ launchStage: string; /** * The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. */ samplePeriod: string; } /** * A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. */ interface MetricRangeResponse { /** * Range of values considered "good." For a one-sided range, set one bound to an infinite value. */ range: outputs.monitoring.v3.GoogleMonitoringV3RangeResponse; /** * A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying the TimeSeries to use for evaluating window quality. */ timeSeries: string; } /** * A condition type that compares a collection of time series against a threshold. */ interface MetricThresholdResponse { /** * Specifies the alignment of data points in individual time series as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resources). Multiple aggregations are applied in the order specified.This field is similar to the one in the ListTimeSeries request (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). It is advisable to use the ListTimeSeries method when debugging this field. */ aggregations: outputs.monitoring.v3.AggregationResponse[]; /** * The comparison to apply between the time series (indicated by filter and aggregation) and the threshold (indicated by threshold_value). The comparison is applied on each time series, with the time series on the left-hand side and the threshold on the right-hand side.Only COMPARISON_LT and COMPARISON_GT are supported currently. */ comparison: string; /** * Specifies the alignment of data points in individual time series selected by denominatorFilter as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resources).When computing ratios, the aggregations and denominator_aggregations fields must use the same alignment period and produce time series that have the same periodicity and labels. */ denominatorAggregations: outputs.monitoring.v3.AggregationResponse[]; /** * A filter (https://cloud.google.com/monitoring/api/v3/filters) that identifies a time series that should be used as the denominator of a ratio that will be compared with the threshold. If a denominator_filter is specified, the time series specified by the filter field will be used as the numerator.The filter must specify the metric type and optionally may contain restrictions on resource type, resource labels, and metric labels. This field may not exceed 2048 Unicode characters in length. */ denominatorFilter: string; /** * The amount of time that a time series must violate the threshold to be considered failing. Currently, only values that are a multiple of a minute--e.g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given, an error will be returned. When choosing a duration, it is useful to keep in mind the frequency of the underlying time series data (which may also be affected by any alignments specified in the aggregations field); a good duration is long enough so that a single outlier does not generate spurious alerts, but short enough that unhealthy states are detected and alerted on quickly. */ duration: string; /** * A condition control that determines how metric-threshold conditions are evaluated when data stops arriving. */ evaluationMissingData: string; /** * A filter (https://cloud.google.com/monitoring/api/v3/filters) that identifies which time series should be compared with the threshold.The filter is similar to the one that is specified in the ListTimeSeries request (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that call is useful to verify the time series that will be retrieved / processed). The filter must specify the metric type and the resource type. Optionally, it can specify resource labels and metric labels. This field must not exceed 2048 Unicode characters in length. */ filter: string; /** * When this field is present, the MetricThreshold condition forecasts whether the time series is predicted to violate the threshold within the forecast_horizon. When this field is not set, the MetricThreshold tests the current value of the timeseries against the threshold. */ forecastOptions: outputs.monitoring.v3.ForecastOptionsResponse; /** * A value against which to compare the time series. */ thresholdValue: number; /** * The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by filter and aggregations, or by the ratio, if denominator_filter and denominator_aggregations are specified. */ trigger: outputs.monitoring.v3.TriggerResponse; } /** * An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "project_id", "instance_id" and "zone": { "type": "gce_instance", "labels": { "project_id": "my-project", "instance_id": "12345678901234", "zone": "us-central1-a" }} */ interface MonitoredResourceResponse { /** * Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id", "instance_id", and "zone". */ labels: { [key: string]: string; }; /** * The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance. For a list of types, see Monitoring resource types (https://cloud.google.com/monitoring/api/resources) and Logging resource types (https://cloud.google.com/logging/docs/api/v2/resource-list). */ type: string; } /** * A condition type that allows alert policies to be defined using Monitoring Query Language (https://cloud.google.com/monitoring/mql). */ interface MonitoringQueryLanguageConditionResponse { /** * The amount of time that a time series must violate the threshold to be considered failing. Currently, only values that are a multiple of a minute--e.g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given, an error will be returned. When choosing a duration, it is useful to keep in mind the frequency of the underlying time series data (which may also be affected by any alignments specified in the aggregations field); a good duration is long enough so that a single outlier does not generate spurious alerts, but short enough that unhealthy states are detected and alerted on quickly. */ duration: string; /** * A condition control that determines how metric-threshold conditions are evaluated when data stops arriving. */ evaluationMissingData: string; /** * Monitoring Query Language (https://cloud.google.com/monitoring/mql) query that outputs a boolean stream. */ query: string; /** * The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by filter and aggregations, or by the ratio, if denominator_filter and denominator_aggregations are specified. */ trigger: outputs.monitoring.v3.TriggerResponse; } /** * Describes a change made to a configuration. */ interface MutationRecordResponse { /** * When the change occurred. */ mutateTime: string; /** * The email address of the user making the change. */ mutatedBy: string; } /** * Control over how the notification channels in notification_channels are notified when this alert fires, on a per-channel basis. */ interface NotificationChannelStrategyResponse { /** * The full REST resource name for the notification channels that these settings apply to. Each of these correspond to the name field in one of the NotificationChannel objects referenced in the notification_channels field of this AlertPolicy. The format is: projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID] */ notificationChannelNames: string[]; /** * The frequency at which to send reminder notifications for open incidents. */ renotifyInterval: string; } /** * Control over the rate of notifications sent to this alert policy's notification channels. */ interface NotificationRateLimitResponse { /** * Not more than one notification per period. */ period: string; } /** * A PerformanceThreshold is used when each window is good when that window has a sufficiently high performance. */ interface PerformanceThresholdResponse { /** * BasicSli to evaluate to judge window quality. */ basicSliPerformance: outputs.monitoring.v3.BasicSliResponse; /** * RequestBasedSli to evaluate to judge window quality. */ performance: outputs.monitoring.v3.RequestBasedSliResponse; /** * If window performance >= threshold, the window is counted as good. */ threshold: number; } /** * Information involved in sending ICMP pings alongside public HTTP/TCP checks. For HTTP, the pings are performed for each part of the redirect chain. */ interface PingConfigResponse { /** * Number of ICMP pings. A maximum of 3 ICMP pings is currently supported. */ pingsCount: number; } /** * A condition type that allows alert policies to be defined using Prometheus Query Language (PromQL) (https://prometheus.io/docs/prometheus/latest/querying/basics/).The PrometheusQueryLanguageCondition message contains information from a Prometheus alerting rule and its associated rule group.A Prometheus alerting rule is described here (https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/). The semantics of a Prometheus alerting rule is described here (https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule).A Prometheus rule group is described here (https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/). The semantics of a Prometheus rule group is described here (https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule_group).Because Cloud Alerting has no representation of a Prometheus rule group resource, we must embed the information of the parent rule group inside each of the conditions that refer to it. We must also update the contents of all Prometheus alerts in case the information of their rule group changes.The PrometheusQueryLanguageCondition protocol buffer combines the information of the corresponding rule group and alerting rule. The structure of the PrometheusQueryLanguageCondition protocol buffer does NOT mimic the structure of the Prometheus rule group and alerting rule YAML declarations. The PrometheusQueryLanguageCondition protocol buffer may change in the future to support future rule group and/or alerting rule features. There are no new such features at the present time (2023-06-26). */ interface PrometheusQueryLanguageConditionResponse { /** * Optional. The alerting rule name of this alert in the corresponding Prometheus configuration file.Some external tools may require this field to be populated correctly in order to refer to the original Prometheus configuration file. The rule group name and the alert name are necessary to update the relevant AlertPolicies in case the definition of the rule group changes in the future.This field is optional. If this field is not empty, then it must be a valid Prometheus label name (https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). This field may not exceed 2048 Unicode characters in length. */ alertRule: string; /** * Optional. Alerts are considered firing once their PromQL expression was evaluated to be "true" for this long. Alerts whose PromQL expression was not evaluated to be "true" for long enough are considered pending. Must be a non-negative duration or missing. This field is optional. Its default value is zero. */ duration: string; /** * Optional. How often this rule should be evaluated. Must be a positive multiple of 30 seconds or missing. This field is optional. Its default value is 30 seconds. If this PrometheusQueryLanguageCondition was generated from a Prometheus alerting rule, then this value should be taken from the enclosing rule group. */ evaluationInterval: string; /** * Optional. Labels to add to or overwrite in the PromQL query result. Label names must be valid (https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). Label values can be templatized by using variables (https://cloud.google.com/monitoring/alerts/doc-variables). The only available variable names are the names of the labels in the PromQL result, including "__name__" and "value". "labels" may be empty. */ labels: { [key: string]: string; }; /** * The PromQL expression to evaluate. Every evaluation cycle this expression is evaluated at the current time, and all resultant time series become pending/firing alerts. This field must not be empty. */ query: string; /** * Optional. The rule group name of this alert in the corresponding Prometheus configuration file.Some external tools may require this field to be populated correctly in order to refer to the original Prometheus configuration file. The rule group name and the alert name are necessary to update the relevant AlertPolicies in case the definition of the rule group changes in the future.This field is optional. If this field is not empty, then it must contain a valid UTF-8 string. This field may not exceed 2048 Unicode characters in length. */ ruleGroup: string; } /** * Service Level Indicators for which atomic units of service are counted directly. */ interface RequestBasedSliResponse { /** * distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. */ distributionCut: outputs.monitoring.v3.DistributionCutResponse; /** * good_total_ratio is used when the ratio of good_service to total_service is computed from two TimeSeries. */ goodTotalRatio: outputs.monitoring.v3.TimeSeriesRatioResponse; } /** * The resource submessage for group checks. It can be used instead of a monitored resource, when multiple resources are being monitored. */ interface ResourceGroupResponse { /** * The group of resources being monitored. Should be only the [GROUP_ID], and not the full-path projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]. */ groupId: string; /** * The resource type of the group members. */ resourceType: string; } /** * A status to accept. Either a status code class like "2xx", or an integer status code like "200". */ interface ResponseStatusCodeResponse { /** * A class of status codes to accept. */ statusClass: string; /** * A status code to accept. */ statusValue: number; } /** * A Service-Level Indicator (SLI) describes the "performance" of a service. For some services, the SLI is well-defined. In such cases, the SLI can be described easily by referencing the well-known SLI and providing the needed parameters. Alternatively, a "custom" SLI can be defined with a query to the underlying metric store. An SLI is defined to be good_service / total_service over any queried time interval. The value of performance always falls into the range 0 <= performance <= 1. A custom SLI describes how to compute this ratio, whether this is by dividing values from a pair of time series, cutting a Distribution into good and bad counts, or counting time windows in which the service complies with a criterion. For separation of concerns, a single Service-Level Indicator measures performance for only one aspect of service quality, such as fraction of successful queries or fast-enough queries. */ interface ServiceLevelIndicatorResponse { /** * Basic SLI on a well-known service type. */ basicSli: outputs.monitoring.v3.BasicSliResponse; /** * Request-based SLIs */ requestBased: outputs.monitoring.v3.RequestBasedSliResponse; /** * Windows-based SLIs */ windowsBased: outputs.monitoring.v3.WindowsBasedSliResponse; } /** * The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Describes a Synthetic Monitor to be invoked by Uptime. */ interface SyntheticMonitorTargetResponse { /** * Target a Synthetic Monitor GCFv2 instance. */ cloudFunctionV2: outputs.monitoring.v3.CloudFunctionV2TargetResponse; } /** * Information required for a TCP Uptime check request. */ interface TcpCheckResponse { /** * Contains information needed to add pings to a TCP check. */ pingConfig: outputs.monitoring.v3.PingConfigResponse; /** * The TCP port on the server against which to run the check. Will be combined with host (specified within the monitored_resource) to construct the full URL. Required. */ port: number; } /** * Configuration for how to query telemetry on a Service. */ interface TelemetryResponse { /** * The full name of the resource that defines this service. Formatted as described in https://cloud.google.com/apis/design/resource_names. */ resourceName: string; } /** * Describes a time interval: Reads: A half-open time interval. It includes the end time but excludes the start time: (startTime, endTime]. The start time must be specified, must be earlier than the end time, and should be no older than the data retention period for the metric. Writes: A closed time interval. It extends from the start time to the end time, and includes both: [startTime, endTime]. Valid time intervals depend on the MetricKind (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors#MetricKind) of the metric value. The end time must not be earlier than the start time, and the end time must not be more than 25 hours in the past or more than five minutes in the future. For GAUGE metrics, the startTime value is technically optional; if no value is specified, the start time defaults to the value of the end time, and the interval represents a single point in time. If both start and end times are specified, they must be identical. Such an interval is valid only for GAUGE metrics, which are point-in-time measurements. The end time of a new interval must be at least a millisecond after the end time of the previous interval. For DELTA metrics, the start time and end time must specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For DELTA metrics, the start time of the next interval must be at least a millisecond after the end time of the previous interval. For CUMULATIVE metrics, the start time and end time must specify a non-zero interval, with subsequent points specifying the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points. The new start time must be at least a millisecond after the end time of the previous interval. The start time of a new interval must be at least a millisecond after the end time of the previous interval because intervals are closed. If the start time of a new interval is the same as the end time of the previous interval, then data written at the new start time could overwrite data written at the previous end time. */ interface TimeIntervalResponse { /** * The end of the time interval. */ endTime: string; /** * Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time. */ startTime: string; } /** * A TimeSeriesRatio specifies two TimeSeries to use for computing the good_service / total_service ratio. The specified TimeSeries must have ValueType = DOUBLE or ValueType = INT64 and must have MetricKind = DELTA or MetricKind = CUMULATIVE. The TimeSeriesRatio must specify exactly two of good, bad, and total, and the relationship good_service + bad_service = total_service will be assumed. */ interface TimeSeriesRatioResponse { /** * A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries quantifying bad service, either demanded service that was not provided or demanded service that was of inadequate quality. Must have ValueType = DOUBLE or ValueType = INT64 and must have MetricKind = DELTA or MetricKind = CUMULATIVE. */ badServiceFilter: string; /** * A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries quantifying good service provided. Must have ValueType = DOUBLE or ValueType = INT64 and must have MetricKind = DELTA or MetricKind = CUMULATIVE. */ goodServiceFilter: string; /** * A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries quantifying total demanded service. Must have ValueType = DOUBLE or ValueType = INT64 and must have MetricKind = DELTA or MetricKind = CUMULATIVE. */ totalServiceFilter: string; } /** * Specifies how many time series must fail a predicate to trigger a condition. If not specified, then a {count: 1} trigger is used. */ interface TriggerResponse { /** * The absolute number of time series that must fail the predicate for the condition to be triggered. */ count: number; /** * The percentage of time series that must fail the predicate for the condition to be triggered. */ percent: number; } /** * A WindowsBasedSli defines good_service as the count of time windows for which the provided service was of good quality. Criteria for determining if service was good are embedded in the window_criterion. */ interface WindowsBasedSliResponse { /** * A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries with ValueType = BOOL. The window is good if any true values appear in the window. */ goodBadMetricFilter: string; /** * A window is good if its performance is high enough. */ goodTotalRatioThreshold: outputs.monitoring.v3.PerformanceThresholdResponse; /** * A window is good if the metric's value is in a good range, averaged across returned streams. */ metricMeanInRange: outputs.monitoring.v3.MetricRangeResponse; /** * A window is good if the metric's value is in a good range, summed across returned streams. */ metricSumInRange: outputs.monitoring.v3.MetricRangeResponse; /** * Duration over which window quality is evaluated. Must be an integer fraction of a day and at least 60s. */ windowPeriod: string; } } } export declare namespace networkconnectivity { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.networkconnectivity.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.networkconnectivity.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Allow the producer to specify which consumers can connect to it. */ interface ConsumerPscConfigResponse { /** * This is used in PSC consumer ForwardingRule to control whether the PSC endpoint can be accessed from another region. */ disableGlobalAccess: boolean; /** * The resource path of the consumer network where PSC connections are allowed to be created in. Note, this network does not need be in the ConsumerPscConfig.project in the case of SharedVPC. Example: projects/{projectNumOrId}/global/networks/{networkId}. */ network: string; /** * The consumer project where PSC connections are allowed to be created in. */ project: string; /** * Overall state of PSC Connections management for this consumer psc config. */ state: string; } /** * PSC connection details on consumer side. */ interface ConsumerPscConnectionResponse { /** * The most recent error during operating this connection. */ error: outputs.networkconnectivity.v1.GoogleRpcStatusResponse; /** * The error info for the latest error during operating this connection. */ errorInfo: outputs.networkconnectivity.v1.GoogleRpcErrorInfoResponse; /** * The error type indicates whether the error is consumer facing, producer facing or system internal. */ errorType: string; /** * The URI of the consumer forwarding rule created. Example: projects/{projectNumOrId}/regions/us-east1/networks/{resourceId}. */ forwardingRule: string; /** * The last Compute Engine operation to setup PSC connection. */ gceOperation: string; /** * The IP literal allocated on the consumer network for the PSC forwarding rule that is created to connect to the producer service attachment in this service connection map. */ ip: string; /** * The consumer network whose PSC forwarding rule is connected to the service attachments in this service connection map. Note that the network could be on a different project (shared VPC). */ network: string; /** * The consumer project whose PSC forwarding rule is connected to the service attachments in this service connection map. */ project: string; /** * The PSC connection id of the PSC forwarding rule connected to the service attachments in this service connection map. */ pscConnectionId: string; /** * The URI of a service attachment which is the target of the PSC connection. */ serviceAttachmentUri: string; /** * The state of the PSC connection. */ state: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Filter matches L4 traffic. */ interface FilterResponse { /** * Optional. The destination IP range of outgoing packets that this policy-based route applies to. Default is "0.0.0.0/0" if protocol version is IPv4. */ destRange: string; /** * Optional. The IP protocol that this policy-based route applies to. Valid values are 'TCP', 'UDP', and 'ALL'. Default is 'ALL'. */ ipProtocol: string; /** * Internet protocol versions this policy-based route applies to. For this version, only IPV4 is supported. */ protocolVersion: string; /** * Optional. The source IP range of outgoing packets that this policy-based route applies to. Default is "0.0.0.0/0" if protocol version is IPv4. */ srcRange: string; } /** * Describes the cause of the error with structured details. Example of an error when contacting the "pubsub.googleapis.com" API when it is not enabled: { "reason": "API_DISABLED" "domain": "googleapis.com" "metadata": { "resource": "projects/123", "service": "pubsub.googleapis.com" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata": { "availableRegions": "us-central1,us-east2" } } */ interface GoogleRpcErrorInfoResponse { /** * The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". */ domain: string; /** * Additional structured details about this error. Keys should match /[a-zA-Z0-9-_]/ and be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. */ metadata: { [key: string]: string; }; /** * The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE. */ reason: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface GoogleRpcStatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * InterconnectAttachment that this route applies to. */ interface InterconnectAttachmentResponse { /** * Optional. Cloud region to install this policy-based route on interconnect attachment. Use `all` to install it on all interconnect attachments. */ region: string; } /** * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. */ interface LinkedInterconnectAttachmentsResponse { /** * A value that controls whether site-to-site data transfer is enabled for these resources. Data transfer is available only in [supported locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). */ siteToSiteDataTransfer: boolean; /** * The URIs of linked interconnect attachment resources */ uris: string[]; /** * The VPC network where these VLAN attachments are located. */ vpcNetwork: string; } /** * A collection of router appliance instances. If you configure multiple router appliance instances to receive data from the same set of sites outside of Google Cloud, we recommend that you associate those instances with the same spoke. */ interface LinkedRouterApplianceInstancesResponse { /** * The list of router appliance instances. */ instances: outputs.networkconnectivity.v1.RouterApplianceInstanceResponse[]; /** * A value that controls whether site-to-site data transfer is enabled for these resources. Data transfer is available only in [supported locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). */ siteToSiteDataTransfer: boolean; /** * The VPC network where these router appliance instances are located. */ vpcNetwork: string; } /** * An existing VPC network. */ interface LinkedVpcNetworkResponse { /** * Optional. IP ranges encompassing the subnets to be excluded from peering. */ excludeExportRanges: string[]; /** * The URI of the VPC network resource. */ uri: string; } /** * A collection of Cloud VPN tunnel resources. These resources should be redundant HA VPN tunnels that all advertise the same prefixes to Google Cloud. Alternatively, in a passive/active configuration, all tunnels should be capable of advertising the same prefixes. */ interface LinkedVpnTunnelsResponse { /** * A value that controls whether site-to-site data transfer is enabled for these resources. Data transfer is available only in [supported locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). */ siteToSiteDataTransfer: boolean; /** * The URIs of linked VPN tunnel resources. */ uris: string[]; /** * The VPC network where these VPN tunnels are located. */ vpcNetwork: string; } /** * The PSC configurations on producer side. */ interface ProducerPscConfigResponse { /** * The resource path of a service attachment. Example: projects/{projectNumOrId}/regions/{region}/serviceAttachments/{resourceId}. */ serviceAttachmentUri: string; } /** * Configuration used for Private Service Connect connections. Used when Infrastructure is PSC. */ interface PscConfigResponse { /** * Optional. Max number of PSC connections for this policy. */ limit: string; /** * The resource paths of subnetworks to use for IP address management. Example: projects/{projectNumOrId}/regions/{region}/subnetworks/{resourceId}. */ subnetworks: string[]; } /** * Information about a specific Private Service Connect connection. */ interface PscConnectionResponse { /** * The resource reference of the consumer address. */ consumerAddress: string; /** * The resource reference of the PSC Forwarding Rule within the consumer VPC. */ consumerForwardingRule: string; /** * The project where the PSC connection is created. */ consumerTargetProject: string; /** * The most recent error during operating this connection. */ error: outputs.networkconnectivity.v1.GoogleRpcStatusResponse; /** * The error info for the latest error during operating this connection. */ errorInfo: outputs.networkconnectivity.v1.GoogleRpcErrorInfoResponse; /** * The error type indicates whether the error is consumer facing, producer facing or system internal. */ errorType: string; /** * The last Compute Engine operation to setup PSC connection. */ gceOperation: string; /** * The PSC connection id of the PSC forwarding rule. */ pscConnectionId: string; /** * State of the PSC Connection */ state: string; } /** * A router appliance instance is a Compute Engine virtual machine (VM) instance that acts as a BGP speaker. A router appliance instance is specified by the URI of the VM and the internal IP address of one of the VM's network interfaces. */ interface RouterApplianceInstanceResponse { /** * The IP address on the VM to use for peering. */ ipAddress: string; /** * The URI of the VM. */ virtualMachine: string; } /** * RoutingVPC contains information about the VPC networks associated with the spokes of a Network Connectivity Center hub. */ interface RoutingVPCResponse { /** * If true, indicates that this VPC network is currently associated with spokes that use the data transfer feature (spokes where the site_to_site_data_transfer field is set to true). If you create new spokes that use data transfer, they must be associated with this VPC network. At most, one VPC network will have this field set to true. */ requiredForNewSiteToSiteDataTransferSpokes: boolean; /** * The URI of the VPC network. */ uri: string; } /** * The number of spokes that are in a particular state and associated with a given hub. */ interface SpokeStateCountResponse { /** * The total number of spokes that are in this state and associated with a given hub. */ count: string; /** * The state of the spokes. */ state: string; } /** * The number of spokes in the hub that are inactive for this reason. */ interface SpokeStateReasonCountResponse { /** * The total number of spokes that are inactive for a particular reason and associated with a given hub. */ count: string; /** * The reason that a spoke is inactive. */ stateReasonCode: string; } /** * Summarizes information about the spokes associated with a hub. The summary includes a count of spokes according to type and according to state. If any spokes are inactive, the summary also lists the reasons they are inactive, including a count for each reason. */ interface SpokeSummaryResponse { /** * Counts the number of spokes that are in each state and associated with a given hub. */ spokeStateCounts: outputs.networkconnectivity.v1.SpokeStateCountResponse[]; /** * Counts the number of spokes that are inactive for each possible reason and associated with a given hub. */ spokeStateReasonCounts: outputs.networkconnectivity.v1.SpokeStateReasonCountResponse[]; /** * Counts the number of spokes of each type that are associated with a specific hub. */ spokeTypeCounts: outputs.networkconnectivity.v1.SpokeTypeCountResponse[]; } /** * The number of spokes of a given type that are associated with a specific hub. The type indicates what kind of resource is associated with the spoke. */ interface SpokeTypeCountResponse { /** * The total number of spokes of this type that are associated with the hub. */ count: string; /** * The type of the spokes. */ spokeType: string; } /** * The reason a spoke is inactive. */ interface StateReasonResponse { /** * The code associated with this reason. */ code: string; /** * Human-readable details about this reason. */ message: string; /** * Additional information provided by the user in the RejectSpoke call. */ userDetails: string; } /** * VM instances to which this policy-based route applies to. */ interface VirtualMachineResponse { /** * Optional. A list of VM instance tags the this policy-based route applies to. VM instances that have ANY of tags specified here will install this PBR. */ tags: string[]; } /** * Informational warning message. */ interface WarningsResponse { /** * A warning code, if applicable. */ code: string; /** * Metadata about this warning in key: value format. The key should provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement. */ data: { [key: string]: string; }; /** * A human-readable description of the warning code. */ warningMessage: string; } } namespace v1alpha1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.networkconnectivity.v1alpha1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.networkconnectivity.v1alpha1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * RouterAppliance represents a Router appliance which is specified by a VM URI and a NIC address. */ interface RouterApplianceInstanceResponse { /** * The IP address of the network interface to use for peering. */ ipAddress: string; networkInterface: string; /** * The URI of the virtual machine resource */ virtualMachine: string; } } } export declare namespace networkmanagement { namespace v1 { /** * Details of the final state "abort" and associated resource. */ interface AbortInfoResponse { /** * Causes that the analysis is aborted. */ cause: string; /** * List of project IDs that the user has specified in the request but does not have permission to access network configs. Analysis is aborted in this case with the PERMISSION_DENIED cause. */ projectsMissingPermission: string[]; /** * URI of the resource that caused the abort. */ resourceUri: string; } /** * Wrapper for the App Engine service version attributes. */ interface AppEngineVersionEndpointResponse { /** * An [App Engine](https://cloud.google.com/appengine) [service version](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions) name. */ uri: string; } /** * For display only. Metadata associated with an App Engine version. */ interface AppEngineVersionInfoResponse { /** * Name of an App Engine version. */ displayName: string; /** * App Engine execution environment for a version. */ environment: string; /** * Runtime of the App Engine version. */ runtime: string; /** * URI of an App Engine version. */ uri: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.networkmanagement.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.networkmanagement.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Wrapper for Cloud Function attributes. */ interface CloudFunctionEndpointResponse { /** * A [Cloud Function](https://cloud.google.com/functions) name. */ uri: string; } /** * For display only. Metadata associated with a Cloud Function. */ interface CloudFunctionInfoResponse { /** * Name of a Cloud Function. */ displayName: string; /** * Location in which the Cloud Function is deployed. */ location: string; /** * URI of a Cloud Function. */ uri: string; /** * Latest successfully deployed version id of the Cloud Function. */ versionId: string; } /** * Wrapper for Cloud Run revision attributes. */ interface CloudRunRevisionEndpointResponse { /** * A [Cloud Run](https://cloud.google.com/run) [revision](https://cloud.google.com/run/docs/reference/rest/v1/namespaces.revisions/get) URI. The format is: projects/{project}/locations/{location}/revisions/{revision} */ uri: string; } /** * For display only. Metadata associated with a Cloud Run revision. */ interface CloudRunRevisionInfoResponse { /** * Name of a Cloud Run revision. */ displayName: string; /** * Location in which this revision is deployed. */ location: string; /** * URI of Cloud Run service this revision belongs to. */ serviceUri: string; /** * URI of a Cloud Run revision. */ uri: string; } /** * For display only. Metadata associated with a Cloud SQL instance. */ interface CloudSQLInstanceInfoResponse { /** * Name of a Cloud SQL instance. */ displayName: string; /** * External IP address of a Cloud SQL instance. */ externalIp: string; /** * Internal IP address of a Cloud SQL instance. */ internalIp: string; /** * URI of a Cloud SQL instance network or empty string if the instance does not have one. */ networkUri: string; /** * Region in which the Cloud SQL instance is running. */ region: string; /** * URI of a Cloud SQL instance. */ uri: string; } /** * Details of the final state "deliver" and associated resource. */ interface DeliverInfoResponse { /** * URI of the resource that the packet is delivered to. */ resourceUri: string; /** * Target type where the packet is delivered to. */ target: string; } /** * Details of the final state "drop" and associated resource. */ interface DropInfoResponse { /** * Cause that the packet is dropped. */ cause: string; /** * URI of the resource that caused the drop. */ resourceUri: string; } /** * Representation of a network edge location as per https://cloud.google.com/vpc/docs/edge-locations. */ interface EdgeLocationResponse { /** * Name of the metropolitan area. */ metropolitanArea: string; } /** * For display only. The specification of the endpoints for the test. EndpointInfo is derived from source and destination Endpoint and validated by the backend data plane model. */ interface EndpointInfoResponse { /** * Destination IP address. */ destinationIp: string; /** * URI of the network where this packet is sent to. */ destinationNetworkUri: string; /** * Destination port. Only valid when protocol is TCP or UDP. */ destinationPort: number; /** * IP protocol in string format, for example: "TCP", "UDP", "ICMP". */ protocol: string; /** * URI of the source telemetry agent this packet originates from. */ sourceAgentUri: string; /** * Source IP address. */ sourceIp: string; /** * URI of the network where this packet originates from. */ sourceNetworkUri: string; /** * Source port. Only valid when protocol is TCP or UDP. */ sourcePort: number; } /** * Source or destination of the Connectivity Test. */ interface EndpointResponse { /** * An [App Engine](https://cloud.google.com/appengine) [service version](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions). */ appEngineVersion: outputs.networkmanagement.v1.AppEngineVersionEndpointResponse; /** * A [Cloud Function](https://cloud.google.com/functions). */ cloudFunction: outputs.networkmanagement.v1.CloudFunctionEndpointResponse; /** * A [Cloud Run](https://cloud.google.com/run) [revision](https://cloud.google.com/run/docs/reference/rest/v1/namespaces.revisions/get) */ cloudRunRevision: outputs.networkmanagement.v1.CloudRunRevisionEndpointResponse; /** * A [Cloud SQL](https://cloud.google.com/sql) instance URI. */ cloudSqlInstance: string; /** * A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud load balancer. Forwarding rules are also used for protocol forwarding, Private Service Connect and other network services to provide forwarding information in the control plane. Format: projects/{project}/global/forwardingRules/{id} or projects/{project}/regions/{region}/forwardingRules/{id} */ forwardingRule: string; /** * Specifies the type of the target of the forwarding rule. */ forwardingRuleTarget: string; /** * A cluster URI for [Google Kubernetes Engine master](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture). */ gkeMasterCluster: string; /** * A Compute Engine instance URI. */ instance: string; /** * The IP address of the endpoint, which can be an external or internal IP. An IPv6 address is only allowed when the test's destination is a [global load balancer VIP](https://cloud.google.com/load-balancing/docs/load-balancing-overview). */ ipAddress: string; /** * ID of the load balancer the forwarding rule points to. Empty for forwarding rules not related to load balancers. */ loadBalancerId: string; /** * Type of the load balancer the forwarding rule points to. */ loadBalancerType: string; /** * A Compute Engine network URI. */ network: string; /** * Type of the network where the endpoint is located. Applicable only to source endpoint, as destination network type can be inferred from the source. */ networkType: string; /** * The IP protocol port of the endpoint. Only applicable when protocol is TCP or UDP. */ port: number; /** * Project ID where the endpoint is located. The Project ID can be derived from the URI if you provide a VM instance or network URI. The following are two cases where you must provide the project ID: 1. Only the IP address is specified, and the IP address is within a Google Cloud project. 2. When you are using Shared VPC and the IP address that you provide is from the service project. In this case, the network that the IP address resides in is defined in the host project. */ project: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * For display only. Metadata associated with a VPC firewall rule, an implied VPC firewall rule, or a hierarchical firewall policy rule. */ interface FirewallInfoResponse { /** * Possible values: ALLOW, DENY */ action: string; /** * Possible values: INGRESS, EGRESS */ direction: string; /** * The display name of the VPC firewall rule. This field is not applicable to hierarchical firewall policy rules. */ displayName: string; /** * The firewall rule's type. */ firewallRuleType: string; /** * The URI of the VPC network that the firewall rule is associated with. This field is not applicable to hierarchical firewall policy rules. */ networkUri: string; /** * The hierarchical firewall policy that this rule is associated with. This field is not applicable to VPC firewall rules. */ policy: string; /** * The priority of the firewall rule. */ priority: number; /** * The target service accounts specified by the firewall rule. */ targetServiceAccounts: string[]; /** * The target tags defined by the VPC firewall rule. This field is not applicable to hierarchical firewall policy rules. */ targetTags: string[]; /** * The URI of the VPC firewall rule. This field is not applicable to implied firewall rules or hierarchical firewall policy rules. */ uri: string; } /** * Details of the final state "forward" and associated resource. */ interface ForwardInfoResponse { /** * URI of the resource that the packet is forwarded to. */ resourceUri: string; /** * Target type where this packet is forwarded to. */ target: string; } /** * For display only. Metadata associated with a Compute Engine forwarding rule. */ interface ForwardingRuleInfoResponse { /** * Name of a Compute Engine forwarding rule. */ displayName: string; /** * Port range defined in the forwarding rule that matches the test. */ matchedPortRange: string; /** * Protocol defined in the forwarding rule that matches the test. */ matchedProtocol: string; /** * Network URI. Only valid for Internal Load Balancer. */ networkUri: string; /** * Target type of the forwarding rule. */ target: string; /** * URI of a Compute Engine forwarding rule. */ uri: string; /** * VIP of the forwarding rule. */ vip: string; } /** * For display only. Metadata associated with a Google Kubernetes Engine (GKE) cluster master. */ interface GKEMasterInfoResponse { /** * URI of a GKE cluster network. */ clusterNetworkUri: string; /** * URI of a GKE cluster. */ clusterUri: string; /** * External IP address of a GKE cluster master. */ externalIp: string; /** * Internal IP address of a GKE cluster master. */ internalIp: string; } /** * For display only. Details of a Google Service sending packets to a VPC network. Although the source IP might be a publicly routable address, some Google Services use special routes within Google production infrastructure to reach Compute Engine Instances. https://cloud.google.com/vpc/docs/routes#special_return_paths */ interface GoogleServiceInfoResponse { /** * Recognized type of a Google Service. */ googleServiceType: string; /** * Source IP address. */ sourceIp: string; } /** * For display only. Metadata associated with a Compute Engine instance. */ interface InstanceInfoResponse { /** * Name of a Compute Engine instance. */ displayName: string; /** * External IP address of the network interface. */ externalIp: string; /** * Name of the network interface of a Compute Engine instance. */ interface: string; /** * Internal IP address of the network interface. */ internalIp: string; /** * Network tags configured on the instance. */ networkTags: string[]; /** * URI of a Compute Engine network. */ networkUri: string; /** * Service account authorized for the instance. */ serviceAccount: string; /** * URI of a Compute Engine instance. */ uri: string; } /** * Describes measured latency distribution. */ interface LatencyDistributionResponse { /** * Representative latency percentiles. */ latencyPercentiles: outputs.networkmanagement.v1.LatencyPercentileResponse[]; } /** * Latency percentile rank and value. */ interface LatencyPercentileResponse { /** * percent-th percentile of latency observed, in microseconds. Fraction of percent/100 of samples have latency lower or equal to the value of this field. */ latencyMicros: string; /** * Percentage of samples this data point applies to. */ percent: number; } /** * For display only. Metadata associated with a specific load balancer backend. */ interface LoadBalancerBackendResponse { /** * Name of a Compute Engine instance or network endpoint. */ displayName: string; /** * A list of firewall rule URIs allowing probes from health check IP ranges. */ healthCheckAllowingFirewallRules: string[]; /** * A list of firewall rule URIs blocking probes from health check IP ranges. */ healthCheckBlockingFirewallRules: string[]; /** * State of the health check firewall configuration. */ healthCheckFirewallState: string; /** * URI of a Compute Engine instance or network endpoint. */ uri: string; } /** * For display only. Metadata associated with a load balancer. */ interface LoadBalancerInfoResponse { /** * Type of load balancer's backend configuration. */ backendType: string; /** * Backend configuration URI. */ backendUri: string; /** * Information for the loadbalancer backends. */ backends: outputs.networkmanagement.v1.LoadBalancerBackendResponse[]; /** * URI of the health check for the load balancer. Deprecated and no longer populated as different load balancer backends might have different health checks. * * @deprecated URI of the health check for the load balancer. Deprecated and no longer populated as different load balancer backends might have different health checks. */ healthCheckUri: string; /** * Type of the load balancer. */ loadBalancerType: string; } /** * For display only. Metadata associated with a Compute Engine network. */ interface NetworkInfoResponse { /** * Name of a Compute Engine network. */ displayName: string; /** * The IP range that matches the test. */ matchedIpRange: string; /** * URI of a Compute Engine network. */ uri: string; } /** * Results of active probing from the last run of the test. */ interface ProbingDetailsResponse { /** * The reason probing was aborted. */ abortCause: string; /** * The EdgeLocation from which a packet destined for/originating from the internet will egress/ingress the Google network. This will only be populated for a connectivity test which has an internet destination/source address. The absence of this field *must not* be used as an indication that the destination/source is part of the Google network. */ destinationEgressLocation: outputs.networkmanagement.v1.EdgeLocationResponse; /** * The source and destination endpoints derived from the test input and used for active probing. */ endpointInfo: outputs.networkmanagement.v1.EndpointInfoResponse; /** * Details about an internal failure or the cancellation of active probing. */ error: outputs.networkmanagement.v1.StatusResponse; /** * Latency as measured by active probing in one direction: from the source to the destination endpoint. */ probingLatency: outputs.networkmanagement.v1.LatencyDistributionResponse; /** * The overall result of active probing. */ result: string; /** * Number of probes sent. */ sentProbeCount: number; /** * Number of probes that reached the destination. */ successfulProbeCount: number; /** * The time that reachability was assessed through active probing. */ verifyTime: string; } /** * Results of the configuration analysis from the last run of the test. */ interface ReachabilityDetailsResponse { /** * The details of a failure or a cancellation of reachability analysis. */ error: outputs.networkmanagement.v1.StatusResponse; /** * The overall result of the test's configuration analysis. */ result: string; /** * Result may contain a list of traces if a test has multiple possible paths in the network, such as when destination endpoint is a load balancer with multiple backends. */ traces: outputs.networkmanagement.v1.TraceResponse[]; /** * The time of the configuration analysis. */ verifyTime: string; } /** * For display only. Metadata associated with a Compute Engine route. */ interface RouteInfoResponse { /** * Destination IP range of the route. */ destIpRange: string; /** * Destination port ranges of the route. Policy based routes only. */ destPortRanges: string[]; /** * Name of a route. */ displayName: string; /** * Instance tags of the route. */ instanceTags: string[]; /** * URI of a NCC Hub. NCC_HUB routes only. */ nccHubUri: string; /** * URI of a NCC Spoke. NCC_HUB routes only. */ nccSpokeUri: string; /** * URI of a Compute Engine network. NETWORK routes only. */ networkUri: string; /** * Next hop of the route. */ nextHop: string; /** * Type of next hop. */ nextHopType: string; /** * Priority of the route. */ priority: number; /** * Protocols of the route. Policy based routes only. */ protocols: string[]; /** * Indicates where route is applicable. */ routeScope: string; /** * Type of route. */ routeType: string; /** * Source IP address range of the route. Policy based routes only. */ srcIpRange: string; /** * Source port ranges of the route. Policy based routes only. */ srcPortRanges: string[]; /** * URI of a route. Dynamic, peering static and peering dynamic routes do not have an URI. Advertised route from Google Cloud VPC to on-premises network also does not have an URI. */ uri: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * A simulated forwarding path is composed of multiple steps. Each step has a well-defined state and an associated configuration. */ interface StepResponse { /** * Display information of the final state "abort" and reason. */ abort: outputs.networkmanagement.v1.AbortInfoResponse; /** * Display information of an App Engine service version. */ appEngineVersion: outputs.networkmanagement.v1.AppEngineVersionInfoResponse; /** * This is a step that leads to the final state Drop. */ causesDrop: boolean; /** * Display information of a Cloud Function. */ cloudFunction: outputs.networkmanagement.v1.CloudFunctionInfoResponse; /** * Display information of a Cloud Run revision. */ cloudRunRevision: outputs.networkmanagement.v1.CloudRunRevisionInfoResponse; /** * Display information of a Cloud SQL instance. */ cloudSqlInstance: outputs.networkmanagement.v1.CloudSQLInstanceInfoResponse; /** * Display information of the final state "deliver" and reason. */ deliver: outputs.networkmanagement.v1.DeliverInfoResponse; /** * A description of the step. Usually this is a summary of the state. */ description: string; /** * Display information of the final state "drop" and reason. */ drop: outputs.networkmanagement.v1.DropInfoResponse; /** * Display information of the source and destination under analysis. The endpoint information in an intermediate state may differ with the initial input, as it might be modified by state like NAT, or Connection Proxy. */ endpoint: outputs.networkmanagement.v1.EndpointInfoResponse; /** * Display information of a Compute Engine firewall rule. */ firewall: outputs.networkmanagement.v1.FirewallInfoResponse; /** * Display information of the final state "forward" and reason. */ forward: outputs.networkmanagement.v1.ForwardInfoResponse; /** * Display information of a Compute Engine forwarding rule. */ forwardingRule: outputs.networkmanagement.v1.ForwardingRuleInfoResponse; /** * Display information of a Google Kubernetes Engine cluster master. */ gkeMaster: outputs.networkmanagement.v1.GKEMasterInfoResponse; /** * Display information of a Google service */ googleService: outputs.networkmanagement.v1.GoogleServiceInfoResponse; /** * Display information of a Compute Engine instance. */ instance: outputs.networkmanagement.v1.InstanceInfoResponse; /** * Display information of the load balancers. */ loadBalancer: outputs.networkmanagement.v1.LoadBalancerInfoResponse; /** * Display information of a Google Cloud network. */ network: outputs.networkmanagement.v1.NetworkInfoResponse; /** * Project ID that contains the configuration this step is validating. */ project: string; /** * Display information of a Compute Engine route. */ route: outputs.networkmanagement.v1.RouteInfoResponse; /** * Each step is in one of the pre-defined states. */ state: string; /** * Display information of a VPC connector. */ vpcConnector: outputs.networkmanagement.v1.VpcConnectorInfoResponse; /** * Display information of a Compute Engine VPN gateway. */ vpnGateway: outputs.networkmanagement.v1.VpnGatewayInfoResponse; /** * Display information of a Compute Engine VPN tunnel. */ vpnTunnel: outputs.networkmanagement.v1.VpnTunnelInfoResponse; } /** * Trace represents one simulated packet forwarding path. * Each trace contains multiple ordered steps. * Each step is in a particular state with associated configuration. * State is categorized as final or non-final states. * Each final state has a reason associated. * Each trace must end with a final state (the last step). ``` |---------------------Trace----------------------| Step1(State) Step2(State) --- StepN(State(final)) ``` */ interface TraceResponse { /** * Derived from the source and destination endpoints definition specified by user request, and validated by the data plane model. If there are multiple traces starting from different source locations, then the endpoint_info may be different between traces. */ endpointInfo: outputs.networkmanagement.v1.EndpointInfoResponse; /** * A trace of a test contains multiple steps from the initial state to the final state (delivered, dropped, forwarded, or aborted). The steps are ordered by the processing sequence within the simulated network state machine. It is critical to preserve the order of the steps and avoid reordering or sorting them. */ steps: outputs.networkmanagement.v1.StepResponse[]; } /** * For display only. Metadata associated with a VPC connector. */ interface VpcConnectorInfoResponse { /** * Name of a VPC connector. */ displayName: string; /** * Location in which the VPC connector is deployed. */ location: string; /** * URI of a VPC connector. */ uri: string; } /** * For display only. Metadata associated with a Compute Engine VPN gateway. */ interface VpnGatewayInfoResponse { /** * Name of a VPN gateway. */ displayName: string; /** * IP address of the VPN gateway. */ ipAddress: string; /** * URI of a Compute Engine network where the VPN gateway is configured. */ networkUri: string; /** * Name of a Google Cloud region where this VPN gateway is configured. */ region: string; /** * URI of a VPN gateway. */ uri: string; /** * A VPN tunnel that is associated with this VPN gateway. There may be multiple VPN tunnels configured on a VPN gateway, and only the one relevant to the test is displayed. */ vpnTunnelUri: string; } /** * For display only. Metadata associated with a Compute Engine VPN tunnel. */ interface VpnTunnelInfoResponse { /** * Name of a VPN tunnel. */ displayName: string; /** * URI of a Compute Engine network where the VPN tunnel is configured. */ networkUri: string; /** * Name of a Google Cloud region where this VPN tunnel is configured. */ region: string; /** * URI of a VPN gateway at remote end of the tunnel. */ remoteGateway: string; /** * Remote VPN gateway's IP address. */ remoteGatewayIp: string; /** * Type of the routing policy. */ routingType: string; /** * URI of the VPN gateway at local end of the tunnel. */ sourceGateway: string; /** * Local VPN gateway's IP address. */ sourceGatewayIp: string; /** * URI of a VPN tunnel. */ uri: string; } } namespace v1beta1 { /** * Details of the final state "abort" and associated resource. */ interface AbortInfoResponse { /** * Causes that the analysis is aborted. */ cause: string; /** * List of project IDs that the user has specified in the request but does not have permission to access network configs. Analysis is aborted in this case with the PERMISSION_DENIED cause. */ projectsMissingPermission: string[]; /** * URI of the resource that caused the abort. */ resourceUri: string; } /** * Wrapper for the App Engine service version attributes. */ interface AppEngineVersionEndpointResponse { /** * An [App Engine](https://cloud.google.com/appengine) [service version](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions) name. */ uri: string; } /** * For display only. Metadata associated with an App Engine version. */ interface AppEngineVersionInfoResponse { /** * Name of an App Engine version. */ displayName: string; /** * App Engine execution environment for a version. */ environment: string; /** * Runtime of the App Engine version. */ runtime: string; /** * URI of an App Engine version. */ uri: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.networkmanagement.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.networkmanagement.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Wrapper for Cloud Function attributes. */ interface CloudFunctionEndpointResponse { /** * A [Cloud Function](https://cloud.google.com/functions) name. */ uri: string; } /** * For display only. Metadata associated with a Cloud Function. */ interface CloudFunctionInfoResponse { /** * Name of a Cloud Function. */ displayName: string; /** * Location in which the Cloud Function is deployed. */ location: string; /** * URI of a Cloud Function. */ uri: string; /** * Latest successfully deployed version id of the Cloud Function. */ versionId: string; } /** * Wrapper for Cloud Run revision attributes. */ interface CloudRunRevisionEndpointResponse { /** * A [Cloud Run](https://cloud.google.com/run) [revision](https://cloud.google.com/run/docs/reference/rest/v1/namespaces.revisions/get) URI. The format is: projects/{project}/locations/{location}/revisions/{revision} */ uri: string; } /** * For display only. Metadata associated with a Cloud Run revision. */ interface CloudRunRevisionInfoResponse { /** * Name of a Cloud Run revision. */ displayName: string; /** * Location in which this revision is deployed. */ location: string; /** * ID of Cloud Run Service this revision belongs to. */ serviceName: string; /** * URI of Cloud Run service this revision belongs to. */ serviceUri: string; /** * URI of a Cloud Run revision. */ uri: string; } /** * For display only. Metadata associated with a Cloud SQL instance. */ interface CloudSQLInstanceInfoResponse { /** * Name of a Cloud SQL instance. */ displayName: string; /** * External IP address of a Cloud SQL instance. */ externalIp: string; /** * Internal IP address of a Cloud SQL instance. */ internalIp: string; /** * URI of a Cloud SQL instance network or empty string if the instance does not have one. */ networkUri: string; /** * Region in which the Cloud SQL instance is running. */ region: string; /** * URI of a Cloud SQL instance. */ uri: string; } /** * Details of the final state "deliver" and associated resource. */ interface DeliverInfoResponse { /** * URI of the resource that the packet is delivered to. */ resourceUri: string; /** * Target type where the packet is delivered to. */ target: string; } /** * Details of the final state "drop" and associated resource. */ interface DropInfoResponse { /** * Cause that the packet is dropped. */ cause: string; /** * URI of the resource that caused the drop. */ resourceUri: string; } /** * Representation of a network edge location as per https://cloud.google.com/vpc/docs/edge-locations. */ interface EdgeLocationResponse { /** * Name of the metropolitan area. */ metropolitanArea: string; } /** * For display only. The specification of the endpoints for the test. EndpointInfo is derived from source and destination Endpoint and validated by the backend data plane model. */ interface EndpointInfoResponse { /** * Destination IP address. */ destinationIp: string; /** * URI of the network where this packet is sent to. */ destinationNetworkUri: string; /** * Destination port. Only valid when protocol is TCP or UDP. */ destinationPort: number; /** * IP protocol in string format, for example: "TCP", "UDP", "ICMP". */ protocol: string; /** * URI of the source telemetry agent this packet originates from. */ sourceAgentUri: string; /** * Source IP address. */ sourceIp: string; /** * URI of the network where this packet originates from. */ sourceNetworkUri: string; /** * Source port. Only valid when protocol is TCP or UDP. */ sourcePort: number; } /** * Source or destination of the Connectivity Test. */ interface EndpointResponse { /** * An [App Engine](https://cloud.google.com/appengine) [service version](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions). */ appEngineVersion: outputs.networkmanagement.v1beta1.AppEngineVersionEndpointResponse; /** * A [Cloud Function](https://cloud.google.com/functions). */ cloudFunction: outputs.networkmanagement.v1beta1.CloudFunctionEndpointResponse; /** * A [Cloud Run](https://cloud.google.com/run) [revision](https://cloud.google.com/run/docs/reference/rest/v1/namespaces.revisions/get) */ cloudRunRevision: outputs.networkmanagement.v1beta1.CloudRunRevisionEndpointResponse; /** * A [Cloud SQL](https://cloud.google.com/sql) instance URI. */ cloudSqlInstance: string; /** * A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud load balancer. Forwarding rules are also used for protocol forwarding, Private Service Connect and other network services to provide forwarding information in the control plane. Format: projects/{project}/global/forwardingRules/{id} or projects/{project}/regions/{region}/forwardingRules/{id} */ forwardingRule: string; /** * Specifies the type of the target of the forwarding rule. */ forwardingRuleTarget: string; /** * A cluster URI for [Google Kubernetes Engine master](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture). */ gkeMasterCluster: string; /** * A Compute Engine instance URI. */ instance: string; /** * The IP address of the endpoint, which can be an external or internal IP. An IPv6 address is only allowed when the test's destination is a [global load balancer VIP](https://cloud.google.com/load-balancing/docs/load-balancing-overview). */ ipAddress: string; /** * ID of the load balancer the forwarding rule points to. Empty for forwarding rules not related to load balancers. */ loadBalancerId: string; /** * Type of the load balancer the forwarding rule points to. */ loadBalancerType: string; /** * A Compute Engine network URI. */ network: string; /** * Type of the network where the endpoint is located. Applicable only to source endpoint, as destination network type can be inferred from the source. */ networkType: string; /** * The IP protocol port of the endpoint. Only applicable when protocol is TCP or UDP. */ port: number; /** * Project ID where the endpoint is located. The Project ID can be derived from the URI if you provide a VM instance or network URI. The following are two cases where you must provide the project ID: 1. Only the IP address is specified, and the IP address is within a Google Cloud project. 2. When you are using Shared VPC and the IP address that you provide is from the service project. In this case, the network that the IP address resides in is defined in the host project. */ project: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * For display only. Metadata associated with a VPC firewall rule, an implied VPC firewall rule, or a hierarchical firewall policy rule. */ interface FirewallInfoResponse { /** * Possible values: ALLOW, DENY */ action: string; /** * Possible values: INGRESS, EGRESS */ direction: string; /** * The display name of the VPC firewall rule. This field is not applicable to hierarchical firewall policy rules. */ displayName: string; /** * The firewall rule's type. */ firewallRuleType: string; /** * The URI of the VPC network that the firewall rule is associated with. This field is not applicable to hierarchical firewall policy rules. */ networkUri: string; /** * The hierarchical firewall policy that this rule is associated with. This field is not applicable to VPC firewall rules. */ policy: string; /** * The priority of the firewall rule. */ priority: number; /** * The target service accounts specified by the firewall rule. */ targetServiceAccounts: string[]; /** * The target tags defined by the VPC firewall rule. This field is not applicable to hierarchical firewall policy rules. */ targetTags: string[]; /** * The URI of the VPC firewall rule. This field is not applicable to implied firewall rules or hierarchical firewall policy rules. */ uri: string; } /** * Details of the final state "forward" and associated resource. */ interface ForwardInfoResponse { /** * URI of the resource that the packet is forwarded to. */ resourceUri: string; /** * Target type where this packet is forwarded to. */ target: string; } /** * For display only. Metadata associated with a Compute Engine forwarding rule. */ interface ForwardingRuleInfoResponse { /** * Name of a Compute Engine forwarding rule. */ displayName: string; /** * Port range defined in the forwarding rule that matches the test. */ matchedPortRange: string; /** * Protocol defined in the forwarding rule that matches the test. */ matchedProtocol: string; /** * Network URI. Only valid for Internal Load Balancer. */ networkUri: string; /** * Target type of the forwarding rule. */ target: string; /** * URI of a Compute Engine forwarding rule. */ uri: string; /** * VIP of the forwarding rule. */ vip: string; } /** * For display only. Metadata associated with a Google Kubernetes Engine (GKE) cluster master. */ interface GKEMasterInfoResponse { /** * URI of a GKE cluster network. */ clusterNetworkUri: string; /** * URI of a GKE cluster. */ clusterUri: string; /** * External IP address of a GKE cluster master. */ externalIp: string; /** * Internal IP address of a GKE cluster master. */ internalIp: string; } /** * For display only. Details of a Google Service sending packets to a VPC network. Although the source IP might be a publicly routable address, some Google Services use special routes within Google production infrastructure to reach Compute Engine Instances. https://cloud.google.com/vpc/docs/routes#special_return_paths */ interface GoogleServiceInfoResponse { /** * Recognized type of a Google Service. */ googleServiceType: string; /** * Source IP address. */ sourceIp: string; } /** * For display only. Metadata associated with a Compute Engine instance. */ interface InstanceInfoResponse { /** * Name of a Compute Engine instance. */ displayName: string; /** * External IP address of the network interface. */ externalIp: string; /** * Name of the network interface of a Compute Engine instance. */ interface: string; /** * Internal IP address of the network interface. */ internalIp: string; /** * Network tags configured on the instance. */ networkTags: string[]; /** * URI of a Compute Engine network. */ networkUri: string; /** * Service account authorized for the instance. */ serviceAccount: string; /** * URI of a Compute Engine instance. */ uri: string; } /** * Describes measured latency distribution. */ interface LatencyDistributionResponse { /** * Representative latency percentiles. */ latencyPercentiles: outputs.networkmanagement.v1beta1.LatencyPercentileResponse[]; } /** * Latency percentile rank and value. */ interface LatencyPercentileResponse { /** * percent-th percentile of latency observed, in microseconds. Fraction of percent/100 of samples have latency lower or equal to the value of this field. */ latencyMicros: string; /** * Percentage of samples this data point applies to. */ percent: number; } /** * For display only. Metadata associated with a specific load balancer backend. */ interface LoadBalancerBackendResponse { /** * Name of a Compute Engine instance or network endpoint. */ displayName: string; /** * A list of firewall rule URIs allowing probes from health check IP ranges. */ healthCheckAllowingFirewallRules: string[]; /** * A list of firewall rule URIs blocking probes from health check IP ranges. */ healthCheckBlockingFirewallRules: string[]; /** * State of the health check firewall configuration. */ healthCheckFirewallState: string; /** * URI of a Compute Engine instance or network endpoint. */ uri: string; } /** * For display only. Metadata associated with a load balancer. */ interface LoadBalancerInfoResponse { /** * Type of load balancer's backend configuration. */ backendType: string; /** * Backend configuration URI. */ backendUri: string; /** * Information for the loadbalancer backends. */ backends: outputs.networkmanagement.v1beta1.LoadBalancerBackendResponse[]; /** * URI of the health check for the load balancer. Deprecated and no longer populated as different load balancer backends might have different health checks. * * @deprecated URI of the health check for the load balancer. Deprecated and no longer populated as different load balancer backends might have different health checks. */ healthCheckUri: string; /** * Type of the load balancer. */ loadBalancerType: string; } /** * For display only. Metadata associated with a Compute Engine network. */ interface NetworkInfoResponse { /** * Name of a Compute Engine network. */ displayName: string; /** * The IP range that matches the test. */ matchedIpRange: string; /** * URI of a Compute Engine network. */ uri: string; } /** * Results of active probing from the last run of the test. */ interface ProbingDetailsResponse { /** * The reason probing was aborted. */ abortCause: string; /** * The EdgeLocation from which a packet destined for/originating from the internet will egress/ingress the Google network. This will only be populated for a connectivity test which has an internet destination/source address. The absence of this field *must not* be used as an indication that the destination/source is part of the Google network. */ destinationEgressLocation: outputs.networkmanagement.v1beta1.EdgeLocationResponse; /** * The source and destination endpoints derived from the test input and used for active probing. */ endpointInfo: outputs.networkmanagement.v1beta1.EndpointInfoResponse; /** * Details about an internal failure or the cancellation of active probing. */ error: outputs.networkmanagement.v1beta1.StatusResponse; /** * Latency as measured by active probing in one direction: from the source to the destination endpoint. */ probingLatency: outputs.networkmanagement.v1beta1.LatencyDistributionResponse; /** * The overall result of active probing. */ result: string; /** * Number of probes sent. */ sentProbeCount: number; /** * Number of probes that reached the destination. */ successfulProbeCount: number; /** * The time that reachability was assessed through active probing. */ verifyTime: string; } /** * Results of the configuration analysis from the last run of the test. */ interface ReachabilityDetailsResponse { /** * The details of a failure or a cancellation of reachability analysis. */ error: outputs.networkmanagement.v1beta1.StatusResponse; /** * The overall result of the test's configuration analysis. */ result: string; /** * Result may contain a list of traces if a test has multiple possible paths in the network, such as when destination endpoint is a load balancer with multiple backends. */ traces: outputs.networkmanagement.v1beta1.TraceResponse[]; /** * The time of the configuration analysis. */ verifyTime: string; } /** * For display only. Metadata associated with a Compute Engine route. */ interface RouteInfoResponse { /** * Destination IP range of the route. */ destIpRange: string; /** * Destination port ranges of the route. Policy based routes only. */ destPortRanges: string[]; /** * Name of a route. */ displayName: string; /** * Instance tags of the route. */ instanceTags: string[]; /** * URI of a NCC Hub. NCC_HUB routes only. */ nccHubUri: string; /** * URI of a NCC Spoke. NCC_HUB routes only. */ nccSpokeUri: string; /** * URI of a Compute Engine network. NETWORK routes only. */ networkUri: string; /** * Next hop of the route. */ nextHop: string; /** * Type of next hop. */ nextHopType: string; /** * Priority of the route. */ priority: number; /** * Protocols of the route. Policy based routes only. */ protocols: string[]; /** * Indicates where route is applicable. */ routeScope: string; /** * Type of route. */ routeType: string; /** * Source IP address range of the route. Policy based routes only. */ srcIpRange: string; /** * Source port ranges of the route. Policy based routes only. */ srcPortRanges: string[]; /** * URI of a route. Dynamic, peering static and peering dynamic routes do not have an URI. Advertised route from Google Cloud VPC to on-premises network also does not have an URI. */ uri: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * A simulated forwarding path is composed of multiple steps. Each step has a well-defined state and an associated configuration. */ interface StepResponse { /** * Display information of the final state "abort" and reason. */ abort: outputs.networkmanagement.v1beta1.AbortInfoResponse; /** * Display information of an App Engine service version. */ appEngineVersion: outputs.networkmanagement.v1beta1.AppEngineVersionInfoResponse; /** * This is a step that leads to the final state Drop. */ causesDrop: boolean; /** * Display information of a Cloud Function. */ cloudFunction: outputs.networkmanagement.v1beta1.CloudFunctionInfoResponse; /** * Display information of a Cloud Run revision. */ cloudRunRevision: outputs.networkmanagement.v1beta1.CloudRunRevisionInfoResponse; /** * Display information of a Cloud SQL instance. */ cloudSqlInstance: outputs.networkmanagement.v1beta1.CloudSQLInstanceInfoResponse; /** * Display information of the final state "deliver" and reason. */ deliver: outputs.networkmanagement.v1beta1.DeliverInfoResponse; /** * A description of the step. Usually this is a summary of the state. */ description: string; /** * Display information of the final state "drop" and reason. */ drop: outputs.networkmanagement.v1beta1.DropInfoResponse; /** * Display information of the source and destination under analysis. The endpoint information in an intermediate state may differ with the initial input, as it might be modified by state like NAT, or Connection Proxy. */ endpoint: outputs.networkmanagement.v1beta1.EndpointInfoResponse; /** * Display information of a Compute Engine firewall rule. */ firewall: outputs.networkmanagement.v1beta1.FirewallInfoResponse; /** * Display information of the final state "forward" and reason. */ forward: outputs.networkmanagement.v1beta1.ForwardInfoResponse; /** * Display information of a Compute Engine forwarding rule. */ forwardingRule: outputs.networkmanagement.v1beta1.ForwardingRuleInfoResponse; /** * Display information of a Google Kubernetes Engine cluster master. */ gkeMaster: outputs.networkmanagement.v1beta1.GKEMasterInfoResponse; /** * Display information of a Google service */ googleService: outputs.networkmanagement.v1beta1.GoogleServiceInfoResponse; /** * Display information of a Compute Engine instance. */ instance: outputs.networkmanagement.v1beta1.InstanceInfoResponse; /** * Display information of the load balancers. */ loadBalancer: outputs.networkmanagement.v1beta1.LoadBalancerInfoResponse; /** * Display information of a Google Cloud network. */ network: outputs.networkmanagement.v1beta1.NetworkInfoResponse; /** * Project ID that contains the configuration this step is validating. */ project: string; /** * Display information of a Compute Engine route. */ route: outputs.networkmanagement.v1beta1.RouteInfoResponse; /** * Each step is in one of the pre-defined states. */ state: string; /** * Display information of a VPC connector. */ vpcConnector: outputs.networkmanagement.v1beta1.VpcConnectorInfoResponse; /** * Display information of a Compute Engine VPN gateway. */ vpnGateway: outputs.networkmanagement.v1beta1.VpnGatewayInfoResponse; /** * Display information of a Compute Engine VPN tunnel. */ vpnTunnel: outputs.networkmanagement.v1beta1.VpnTunnelInfoResponse; } /** * Trace represents one simulated packet forwarding path. * Each trace contains multiple ordered steps. * Each step is in a particular state with associated configuration. * State is categorized as final or non-final states. * Each final state has a reason associated. * Each trace must end with a final state (the last step). ``` |---------------------Trace----------------------| Step1(State) Step2(State) --- StepN(State(final)) ``` */ interface TraceResponse { /** * Derived from the source and destination endpoints definition specified by user request, and validated by the data plane model. If there are multiple traces starting from different source locations, then the endpoint_info may be different between traces. */ endpointInfo: outputs.networkmanagement.v1beta1.EndpointInfoResponse; /** * A trace of a test contains multiple steps from the initial state to the final state (delivered, dropped, forwarded, or aborted). The steps are ordered by the processing sequence within the simulated network state machine. It is critical to preserve the order of the steps and avoid reordering or sorting them. */ steps: outputs.networkmanagement.v1beta1.StepResponse[]; } /** * For display only. Metadata associated with a VPC connector. */ interface VpcConnectorInfoResponse { /** * Name of a VPC connector. */ displayName: string; /** * Location in which the VPC connector is deployed. */ location: string; /** * URI of a VPC connector. */ uri: string; } /** * For display only. Metadata associated with a Compute Engine VPN gateway. */ interface VpnGatewayInfoResponse { /** * Name of a VPN gateway. */ displayName: string; /** * IP address of the VPN gateway. */ ipAddress: string; /** * URI of a Compute Engine network where the VPN gateway is configured. */ networkUri: string; /** * Name of a Google Cloud region where this VPN gateway is configured. */ region: string; /** * URI of a VPN gateway. */ uri: string; /** * A VPN tunnel that is associated with this VPN gateway. There may be multiple VPN tunnels configured on a VPN gateway, and only the one relevant to the test is displayed. */ vpnTunnelUri: string; } /** * For display only. Metadata associated with a Compute Engine VPN tunnel. */ interface VpnTunnelInfoResponse { /** * Name of a VPN tunnel. */ displayName: string; /** * URI of a Compute Engine network where the VPN tunnel is configured. */ networkUri: string; /** * Name of a Google Cloud region where this VPN tunnel is configured. */ region: string; /** * URI of a VPN gateway at remote end of the tunnel. */ remoteGateway: string; /** * Remote VPN gateway's IP address. */ remoteGatewayIp: string; /** * Type of the routing policy. */ routingType: string; /** * URI of the VPN gateway at local end of the tunnel. */ sourceGateway: string; /** * Local VPN gateway's IP address. */ sourceGatewayIp: string; /** * URI of a VPN tunnel. */ uri: string; } } } export declare namespace networksecurity { namespace v1 { /** * Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. */ interface CertificateProviderInstanceResponse { /** * Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance. */ pluginInstance: string; } /** * Specification of traffic destination attributes. */ interface DestinationResponse { /** * List of host names to match. Matched against the ":authority" header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example "mydomain.*") or a suffix match (example "*.myorg.com") or a presence (any) match "*". */ hosts: string[]; /** * Optional. Match against key:value pair in http header. Provides a flexible match based on HTTP headers, for potentially advanced use cases. At least one header should match. Avoid using header matches to make authorization decisions unless there is a strong guarantee that requests arrive through a trusted client or proxy. */ httpHeaderMatch: outputs.networksecurity.v1.HttpHeaderMatchResponse; /** * Optional. A list of HTTP methods to match. At least one method should match. Should not be set for gRPC services. */ methods: string[]; /** * List of destination ports to match. At least one port should match. */ ports: number[]; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication. */ interface GoogleCloudNetworksecurityV1CertificateProviderResponse { /** * The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information. */ certificateProviderInstance: outputs.networksecurity.v1.CertificateProviderInstanceResponse; /** * gRPC specific configuration to access the gRPC server to obtain the cert and private key. */ grpcEndpoint: outputs.networksecurity.v1.GoogleCloudNetworksecurityV1GrpcEndpointResponse; } /** * Specification of the GRPC Endpoint. */ interface GoogleCloudNetworksecurityV1GrpcEndpointResponse { /** * The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:". */ targetUri: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.networksecurity.v1.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.networksecurity.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Specification of HTTP header match attributes. */ interface HttpHeaderMatchResponse { /** * The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name ":authority". For matching a request's method, use the headerName ":method". */ headerName: string; /** * The value of the header must match the regular expression specified in regexMatch. For regular expression grammar, please see: en.cppreference.com/w/cpp/regex/ecmascript For matching against a port specified in the HTTP request, use a headerMatch with headerName set to Host and a regular expression that satisfies the RFC2616 Host header's port specifier. */ regexMatch: string; } /** * Specification of the MTLSPolicy. */ interface MTLSPolicyResponse { /** * Required if the policy is to be used with Traffic Director. For external HTTPS load balancers it must be empty. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate. */ clientValidationCa: outputs.networksecurity.v1.ValidationCAResponse[]; /** * When the client presents an invalid certificate or no certificate to the load balancer, the `client_validation_mode` specifies how the client connection is handled. Required if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty. */ clientValidationMode: string; /** * Reference to the TrustConfig from certificatemanager.googleapis.com namespace. If specified, the chain validation will be performed against certificates configured in the given TrustConfig. Allowed only if the policy is to be used with external HTTPS load balancers. */ clientValidationTrustConfig: string; } /** * Specification of rules. */ interface RuleResponse { /** * Optional. List of attributes for the traffic destination. All of the destinations must match. A destination is a match if a request matches all the specified hosts, ports, methods and headers. If not set, the action specified in the 'action' field will be applied without any rule checks for the destination. */ destinations: outputs.networksecurity.v1.DestinationResponse[]; /** * Optional. List of attributes for the traffic source. All of the sources must match. A source is a match if both principals and ip_blocks match. If not set, the action specified in the 'action' field will be applied without any rule checks for the source. */ sources: outputs.networksecurity.v1.SourceResponse[]; } /** * Specification of traffic source attributes. */ interface SourceResponse { /** * Optional. List of CIDR ranges to match based on source IP address. At least one IP block should match. Single IP (e.g., "1.2.3.4") and CIDR (e.g., "1.2.3.0/24") are supported. Authorization based on source IP alone should be avoided. The IP addresses of any load balancers or proxies should be considered untrusted. */ ipBlocks: string[]; /** * Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, "namespace/*") or a suffix match (example, "*/service-account") or a presence match "*". Authorization based on the principal name without certificate validation (configured by ServerTlsPolicy resource) is considered insecure. */ principals: string[]; } /** * Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate. */ interface ValidationCAResponse { /** * The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information. */ certificateProviderInstance: outputs.networksecurity.v1.CertificateProviderInstanceResponse; /** * gRPC specific configuration to access the gRPC server to obtain the CA certificate. */ grpcEndpoint: outputs.networksecurity.v1.GoogleCloudNetworksecurityV1GrpcEndpointResponse; } } namespace v1beta1 { /** * Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. */ interface CertificateProviderInstanceResponse { /** * Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to "google_cloud_private_spiffe" to use Certificate Authority Service certificate provider instance. */ pluginInstance: string; } /** * Specification of traffic destination attributes. */ interface DestinationResponse { /** * List of host names to match. Matched against the ":authority" header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example "mydomain.*") or a suffix match (example "*.myorg.com") or a presence (any) match "*". */ hosts: string[]; /** * Optional. Match against key:value pair in http header. Provides a flexible match based on HTTP headers, for potentially advanced use cases. At least one header should match. Avoid using header matches to make authorization decisions unless there is a strong guarantee that requests arrive through a trusted client or proxy. */ httpHeaderMatch: outputs.networksecurity.v1beta1.HttpHeaderMatchResponse; /** * Optional. A list of HTTP methods to match. At least one method should match. Should not be set for gRPC services. */ methods: string[]; /** * List of destination ports to match. At least one port should match. */ ports: number[]; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication. */ interface GoogleCloudNetworksecurityV1beta1CertificateProviderResponse { /** * The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information. */ certificateProviderInstance: outputs.networksecurity.v1beta1.CertificateProviderInstanceResponse; /** * gRPC specific configuration to access the gRPC server to obtain the cert and private key. */ grpcEndpoint: outputs.networksecurity.v1beta1.GoogleCloudNetworksecurityV1beta1GrpcEndpointResponse; } /** * Specification of the GRPC Endpoint. */ interface GoogleCloudNetworksecurityV1beta1GrpcEndpointResponse { /** * The target URI of the gRPC endpoint. Only UDS path is supported, and should start with "unix:". */ targetUri: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.networksecurity.v1beta1.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.networksecurity.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Specification of HTTP header match attributes. */ interface HttpHeaderMatchResponse { /** * The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name ":authority". For matching a request's method, use the headerName ":method". */ headerName: string; /** * The value of the header must match the regular expression specified in regexMatch. For regular expression grammar, please see: en.cppreference.com/w/cpp/regex/ecmascript For matching against a port specified in the HTTP request, use a headerMatch with headerName set to Host and a regular expression that satisfies the RFC2616 Host header's port specifier. */ regexMatch: string; } /** * Specification of the MTLSPolicy. */ interface MTLSPolicyResponse { /** * Required if the policy is to be used with Traffic Director. For external HTTPS load balancers it must be empty. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate. */ clientValidationCa: outputs.networksecurity.v1beta1.ValidationCAResponse[]; /** * When the client presents an invalid certificate or no certificate to the load balancer, the `client_validation_mode` specifies how the client connection is handled. Required if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty. */ clientValidationMode: string; /** * Reference to the TrustConfig from certificatemanager.googleapis.com namespace. If specified, the chain validation will be performed against certificates configured in the given TrustConfig. Allowed only if the policy is to be used with external HTTPS load balancers. */ clientValidationTrustConfig: string; } /** * Specification of rules. */ interface RuleResponse { /** * Optional. List of attributes for the traffic destination. All of the destinations must match. A destination is a match if a request matches all the specified hosts, ports, methods and headers. If not set, the action specified in the 'action' field will be applied without any rule checks for the destination. */ destinations: outputs.networksecurity.v1beta1.DestinationResponse[]; /** * Optional. List of attributes for the traffic source. All of the sources must match. A source is a match if both principals and ip_blocks match. If not set, the action specified in the 'action' field will be applied without any rule checks for the source. */ sources: outputs.networksecurity.v1beta1.SourceResponse[]; } /** * Defines what action to take for a specific severity match. */ interface SeverityOverrideResponse { /** * Threat action override. */ action: string; /** * Severity level to match. */ severity: string; } /** * Specification of traffic source attributes. */ interface SourceResponse { /** * Optional. List of CIDR ranges to match based on source IP address. At least one IP block should match. Single IP (e.g., "1.2.3.4") and CIDR (e.g., "1.2.3.0/24") are supported. Authorization based on source IP alone should be avoided. The IP addresses of any load balancers or proxies should be considered untrusted. */ ipBlocks: string[]; /** * Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, "namespace/*") or a suffix match (example, "*/service-account") or a presence match "*". Authorization based on the principal name without certificate validation (configured by ServerTlsPolicy resource) is considered insecure. */ principals: string[]; } /** * Defines what action to take for a specific threat_id match. */ interface ThreatOverrideResponse { /** * Threat action override. For some threat types, only a subset of actions applies. */ action: string; /** * Vendor-specific ID of a threat to override. */ threatId: string; /** * Type of the threat (read only). */ type: string; } /** * ThreatPreventionProfile defines an action for specific threat signatures or severity levels. */ interface ThreatPreventionProfileResponse { /** * Optional. Configuration for overriding threats actions by severity match. */ severityOverrides: outputs.networksecurity.v1beta1.SeverityOverrideResponse[]; /** * Optional. Configuration for overriding threats actions by threat_id match. If a threat is matched both by configuration provided in severity_overrides and threat_overrides, the threat_overrides action is applied. */ threatOverrides: outputs.networksecurity.v1beta1.ThreatOverrideResponse[]; } /** * Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate. */ interface ValidationCAResponse { /** * The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information. */ certificateProviderInstance: outputs.networksecurity.v1beta1.CertificateProviderInstanceResponse; /** * gRPC specific configuration to access the gRPC server to obtain the CA certificate. */ grpcEndpoint: outputs.networksecurity.v1beta1.GoogleCloudNetworksecurityV1beta1GrpcEndpointResponse; } } } export declare namespace networkservices { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.networkservices.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.networkservices.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Defines a name-pair value for a single label. */ interface EndpointMatcherMetadataLabelMatcherMetadataLabelsResponse { /** * Label name presented as key in xDS Node Metadata. */ labelName: string; /** * Label value presented as value corresponding to the above key, in xDS Node Metadata. */ labelValue: string; } /** * The matcher that is based on node metadata presented by xDS clients. */ interface EndpointMatcherMetadataLabelMatcherResponse { /** * Specifies how matching should be done. Supported values are: MATCH_ANY: At least one of the Labels specified in the matcher should match the metadata presented by xDS client. MATCH_ALL: The metadata presented by the xDS client should contain all of the labels specified here. The selection is determined based on the best match. For example, suppose there are three EndpointPolicy resources P1, P2 and P3 and if P1 has a the matcher as MATCH_ANY , P2 has MATCH_ALL , and P3 has MATCH_ALL . If a client with label connects, the config from P1 will be selected. If a client with label connects, the config from P2 will be selected. If a client with label connects, the config from P3 will be selected. If there is more than one best match, (for example, if a config P4 with selector exists and if a client with label connects), an error will be thrown. */ metadataLabelMatchCriteria: string; /** * The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list can have at most 64 entries. The list can be empty if the match criteria is MATCH_ANY, to specify a wildcard match (i.e this matches any client). */ metadataLabels: outputs.networkservices.v1.EndpointMatcherMetadataLabelMatcherMetadataLabelsResponse[]; } /** * A definition of a matcher that selects endpoints to which the policies should be applied. */ interface EndpointMatcherResponse { /** * The matcher is based on node metadata presented by xDS clients. */ metadataLabelMatcher: outputs.networkservices.v1.EndpointMatcherMetadataLabelMatcherResponse; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * The destination to which traffic will be routed. */ interface GrpcRouteDestinationResponse { /** * The URL of a destination service to which to route traffic. Must refer to either a BackendService or ServiceDirectoryService. */ serviceName: string; /** * Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them. */ weight: number; } /** * Specification of how client requests are aborted as part of fault injection before being sent to a destination. */ interface GrpcRouteFaultInjectionPolicyAbortResponse { /** * The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive. */ httpStatus: number; /** * The percentage of traffic which will be aborted. The value must be between [0, 100] */ percentage: number; } /** * Specification of how client requests are delayed as part of fault injection before being sent to a destination. */ interface GrpcRouteFaultInjectionPolicyDelayResponse { /** * Specify a fixed delay before forwarding the request. */ fixedDelay: string; /** * The percentage of traffic on which delay will be injected. The value must be between [0, 100] */ percentage: number; } /** * The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. */ interface GrpcRouteFaultInjectionPolicyResponse { /** * The specification for aborting to client requests. */ abort: outputs.networkservices.v1.GrpcRouteFaultInjectionPolicyAbortResponse; /** * The specification for injecting delay to client requests. */ delay: outputs.networkservices.v1.GrpcRouteFaultInjectionPolicyDelayResponse; } /** * A match against a collection of headers. */ interface GrpcRouteHeaderMatchResponse { /** * The key of the header. */ key: string; /** * Optional. Specifies how to match against the value of the header. If not specified, a default value of EXACT is used. */ type: string; /** * The value of the header. */ value: string; } /** * Specifies a match against a method. */ interface GrpcRouteMethodMatchResponse { /** * Optional. Specifies that matches are case sensitive. The default value is true. case_sensitive must not be used with a type of REGULAR_EXPRESSION. */ caseSensitive: boolean; /** * Name of the method to match against. If unspecified, will match all methods. */ grpcMethod: string; /** * Name of the service to match against. If unspecified, will match all services. */ grpcService: string; /** * Optional. Specifies how to match against the name. If not specified, a default value of "EXACT" is used. */ type: string; } /** * The specifications for retries. */ interface GrpcRouteRetryPolicyResponse { /** * Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1. */ numRetries: number; /** * - connect-failure: Router will retry on failures connecting to Backend Services, for example due to connection timeouts. - refused-stream: Router will retry if the backend service resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: Router will retry if the gRPC status code in the response header is set to cancelled - deadline-exceeded: Router will retry if the gRPC status code in the response header is set to deadline-exceeded - resource-exhausted: Router will retry if the gRPC status code in the response header is set to resource-exhausted - unavailable: Router will retry if the gRPC status code in the response header is set to unavailable */ retryConditions: string[]; } /** * Specifies how to route matched traffic. */ interface GrpcRouteRouteActionResponse { /** * Optional. The destination services to which traffic should be forwarded. If multiple destinations are specified, traffic will be split between Backend Service(s) according to the weight field of these destinations. */ destinations: outputs.networkservices.v1.GrpcRouteDestinationResponse[]; /** * Optional. The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy */ faultInjectionPolicy: outputs.networkservices.v1.GrpcRouteFaultInjectionPolicyResponse; /** * Optional. Specifies the retry policy associated with this route. */ retryPolicy: outputs.networkservices.v1.GrpcRouteRetryPolicyResponse; /** * Optional. Specifies cookie-based stateful session affinity. */ statefulSessionAffinity: outputs.networkservices.v1.GrpcRouteStatefulSessionAffinityPolicyResponse; /** * Optional. Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries. */ timeout: string; } /** * Criteria for matching traffic. A RouteMatch will be considered to match when all supplied fields match. */ interface GrpcRouteRouteMatchResponse { /** * Optional. Specifies a collection of headers to match. */ headers: outputs.networkservices.v1.GrpcRouteHeaderMatchResponse[]; /** * Optional. A gRPC method to match against. If this field is empty or omitted, will match all methods. */ method: outputs.networkservices.v1.GrpcRouteMethodMatchResponse; } /** * Describes how to route traffic. */ interface GrpcRouteRouteRuleResponse { /** * A detailed rule defining how to route traffic. This field is required. */ action: outputs.networkservices.v1.GrpcRouteRouteActionResponse; /** * Optional. Matches define conditions used for matching the rule against incoming gRPC requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic. */ matches: outputs.networkservices.v1.GrpcRouteRouteMatchResponse[]; } /** * The specification for cookie-based stateful session affinity where the date plane supplies a “session cookie” with the name "GSSA" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next. */ interface GrpcRouteStatefulSessionAffinityPolicyResponse { /** * The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive. */ cookieTtl: string; } /** * The Specification for allowing client side cross-origin requests. */ interface HttpRouteCorsPolicyResponse { /** * In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This translates to the Access-Control-Allow-Credentials header. Default value is false. */ allowCredentials: boolean; /** * Specifies the content for Access-Control-Allow-Headers header. */ allowHeaders: string[]; /** * Specifies the content for Access-Control-Allow-Methods header. */ allowMethods: string[]; /** * Specifies the regular expression patterns that match allowed origins. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax. */ allowOriginRegexes: string[]; /** * Specifies the list of origins that will be allowed to do CORS requests. An origin is allowed if it matches either an item in allow_origins or an item in allow_origin_regexes. */ allowOrigins: string[]; /** * If true, the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. */ disabled: boolean; /** * Specifies the content for Access-Control-Expose-Headers header. */ exposeHeaders: string[]; /** * Specifies how long result of a preflight request can be cached in seconds. This translates to the Access-Control-Max-Age header. */ maxAge: string; } /** * Specifications of a destination to which the request should be routed to. */ interface HttpRouteDestinationResponse { /** * The URL of a BackendService to route traffic to. */ serviceName: string; /** * Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them. */ weight: number; } /** * Specification of how client requests are aborted as part of fault injection before being sent to a destination. */ interface HttpRouteFaultInjectionPolicyAbortResponse { /** * The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive. */ httpStatus: number; /** * The percentage of traffic which will be aborted. The value must be between [0, 100] */ percentage: number; } /** * Specification of how client requests are delayed as part of fault injection before being sent to a destination. */ interface HttpRouteFaultInjectionPolicyDelayResponse { /** * Specify a fixed delay before forwarding the request. */ fixedDelay: string; /** * The percentage of traffic on which delay will be injected. The value must be between [0, 100] */ percentage: number; } /** * The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced by client proxy on a percentage of requests before sending those requests to the destination service. Similarly requests can be aborted by client proxy for a percentage of requests. */ interface HttpRouteFaultInjectionPolicyResponse { /** * The specification for aborting to client requests. */ abort: outputs.networkservices.v1.HttpRouteFaultInjectionPolicyAbortResponse; /** * The specification for injecting delay to client requests. */ delay: outputs.networkservices.v1.HttpRouteFaultInjectionPolicyDelayResponse; } /** * Represents an integer value range. */ interface HttpRouteHeaderMatchIntegerRangeResponse { /** * End of the range (exclusive) */ end: number; /** * Start of the range (inclusive) */ start: number; } /** * Specifies how to select a route rule based on HTTP request headers. */ interface HttpRouteHeaderMatchResponse { /** * The value of the header should match exactly the content of exact_match. */ exactMatch: string; /** * The name of the HTTP header to match against. */ header: string; /** * If specified, the match result will be inverted before checking. Default value is set to false. */ invertMatch: boolean; /** * The value of the header must start with the contents of prefix_match. */ prefixMatch: string; /** * A header with header_name must exist. The match takes place whether or not the header has a value. */ presentMatch: boolean; /** * If specified, the rule will match if the request header value is within the range. */ rangeMatch: outputs.networkservices.v1.HttpRouteHeaderMatchIntegerRangeResponse; /** * The value of the header must match the regular expression specified in regex_match. For regular expression grammar, please see: https://github.com/google/re2/wiki/Syntax */ regexMatch: string; /** * The value of the header must end with the contents of suffix_match. */ suffixMatch: string; } /** * The specification for modifying HTTP header in HTTP request and HTTP response. */ interface HttpRouteHeaderModifierResponse { /** * Add the headers with given map where key is the name of the header, value is the value of the header. */ add: { [key: string]: string; }; /** * Remove headers (matching by header names) specified in the list. */ remove: string[]; /** * Completely overwrite/replace the headers with given map where key is the name of the header, value is the value of the header. */ set: { [key: string]: string; }; } /** * Specifications to match a query parameter in the request. */ interface HttpRouteQueryParameterMatchResponse { /** * The value of the query parameter must exactly match the contents of exact_match. Only one of exact_match, regex_match, or present_match must be set. */ exactMatch: string; /** * Specifies that the QueryParameterMatcher matches if request contains query parameter, irrespective of whether the parameter has a value or not. Only one of exact_match, regex_match, or present_match must be set. */ presentMatch: boolean; /** * The name of the query parameter to match. */ queryParameter: string; /** * The value of the query parameter must match the regular expression specified by regex_match. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax Only one of exact_match, regex_match, or present_match must be set. */ regexMatch: string; } /** * The specification for redirecting traffic. */ interface HttpRouteRedirectResponse { /** * The host that will be used in the redirect response instead of the one that was supplied in the request. */ hostRedirect: string; /** * If set to true, the URL scheme in the redirected request is set to https. If set to false, the URL scheme of the redirected request will remain the same as that of the request. The default is set to false. */ httpsRedirect: boolean; /** * The path that will be used in the redirect response instead of the one that was supplied in the request. path_redirect can not be supplied together with prefix_redirect. Supply one alone or neither. If neither is supplied, the path of the original request will be used for the redirect. */ pathRedirect: string; /** * The port that will be used in the redirected request instead of the one that was supplied in the request. */ portRedirect: number; /** * Indicates that during redirection, the matched prefix (or path) should be swapped with this value. This option allows URLs be dynamically created based on the request. */ prefixRewrite: string; /** * The HTTP Status code to use for the redirect. */ responseCode: string; /** * if set to true, any accompanying query portion of the original URL is removed prior to redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. */ stripQuery: boolean; } /** * Specifies the policy on how requests are shadowed to a separate mirrored destination service. The proxy does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, the host/authority header is suffixed with -shadow. */ interface HttpRouteRequestMirrorPolicyResponse { /** * The destination the requests will be mirrored to. The weight of the destination will be ignored. */ destination: outputs.networkservices.v1.HttpRouteDestinationResponse; } /** * The specifications for retries. */ interface HttpRouteRetryPolicyResponse { /** * Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1. */ numRetries: number; /** * Specifies a non-zero timeout per retry attempt. */ perTryTimeout: string; /** * Specifies one or more conditions when this retry policy applies. Valid values are: 5xx: Proxy will attempt a retry if the destination service responds with any 5xx response code, of if the destination service does not respond at all, example: disconnect, reset, read timeout, connection failure and refused streams. gateway-error: Similar to 5xx, but only applies to response codes 502, 503, 504. reset: Proxy will attempt a retry if the destination service does not respond at all (disconnect/reset/read timeout) connect-failure: Proxy will retry on failures connecting to destination for example due to connection timeouts. retriable-4xx: Proxy will retry fro retriable 4xx response codes. Currently the only retriable error supported is 409. refused-stream: Proxy will retry if the destination resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. */ retryConditions: string[]; } /** * The specifications for routing traffic and applying associated policies. */ interface HttpRouteRouteActionResponse { /** * The specification for allowing client side cross-origin requests. */ corsPolicy: outputs.networkservices.v1.HttpRouteCorsPolicyResponse; /** * The destination to which traffic should be forwarded. */ destinations: outputs.networkservices.v1.HttpRouteDestinationResponse[]; /** * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy */ faultInjectionPolicy: outputs.networkservices.v1.HttpRouteFaultInjectionPolicyResponse; /** * If set, the request is directed as configured by this field. */ redirect: outputs.networkservices.v1.HttpRouteRedirectResponse; /** * The specification for modifying the headers of a matching request prior to delivery of the request to the destination. If HeaderModifiers are set on both the Destination and the RouteAction, they will be merged. Conflicts between the two will not be resolved on the configuration. */ requestHeaderModifier: outputs.networkservices.v1.HttpRouteHeaderModifierResponse; /** * Specifies the policy on how requests intended for the routes destination are shadowed to a separate mirrored destination. Proxy will not wait for the shadow destination to respond before returning the response. Prior to sending traffic to the shadow service, the host/authority header is suffixed with -shadow. */ requestMirrorPolicy: outputs.networkservices.v1.HttpRouteRequestMirrorPolicyResponse; /** * The specification for modifying the headers of a response prior to sending the response back to the client. If HeaderModifiers are set on both the Destination and the RouteAction, they will be merged. Conflicts between the two will not be resolved on the configuration. */ responseHeaderModifier: outputs.networkservices.v1.HttpRouteHeaderModifierResponse; /** * Specifies the retry policy associated with this route. */ retryPolicy: outputs.networkservices.v1.HttpRouteRetryPolicyResponse; /** * Optional. Specifies cookie-based stateful session affinity. */ statefulSessionAffinity: outputs.networkservices.v1.HttpRouteStatefulSessionAffinityPolicyResponse; /** * Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries. */ timeout: string; /** * The specification for rewrite URL before forwarding requests to the destination. */ urlRewrite: outputs.networkservices.v1.HttpRouteURLRewriteResponse; } /** * RouteMatch defines specifications used to match requests. If multiple match types are set, this RouteMatch will match if ALL type of matches are matched. */ interface HttpRouteRouteMatchResponse { /** * The HTTP request path value should exactly match this value. Only one of full_path_match, prefix_match, or regex_match should be used. */ fullPathMatch: string; /** * Specifies a list of HTTP request headers to match against. ALL of the supplied headers must be matched. */ headers: outputs.networkservices.v1.HttpRouteHeaderMatchResponse[]; /** * Specifies if prefix_match and full_path_match matches are case sensitive. The default value is false. */ ignoreCase: boolean; /** * The HTTP request path value must begin with specified prefix_match. prefix_match must begin with a /. Only one of full_path_match, prefix_match, or regex_match should be used. */ prefixMatch: string; /** * Specifies a list of query parameters to match against. ALL of the query parameters must be matched. */ queryParameters: outputs.networkservices.v1.HttpRouteQueryParameterMatchResponse[]; /** * The HTTP request path value must satisfy the regular expression specified by regex_match after removing any query parameters and anchor supplied with the original URL. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax Only one of full_path_match, prefix_match, or regex_match should be used. */ regexMatch: string; } /** * Specifies how to match traffic and how to route traffic when traffic is matched. */ interface HttpRouteRouteRuleResponse { /** * The detailed rule defining how to route matched traffic. */ action: outputs.networkservices.v1.HttpRouteRouteActionResponse; /** * A list of matches define conditions used for matching the rule against incoming HTTP requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic. If a default rule is desired to be configured, add a rule with no matches specified to the end of the rules list. */ matches: outputs.networkservices.v1.HttpRouteRouteMatchResponse[]; } /** * The specification for cookie-based stateful session affinity where the date plane supplies a “session cookie” with the name "GSSA" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next. */ interface HttpRouteStatefulSessionAffinityPolicyResponse { /** * The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive. */ cookieTtl: string; } /** * The specification for modifying the URL of the request, prior to forwarding the request to the destination. */ interface HttpRouteURLRewriteResponse { /** * Prior to forwarding the request to the selected destination, the requests host header is replaced by this value. */ hostRewrite: string; /** * Prior to forwarding the request to the selected destination, the matching portion of the requests path is replaced by this value. */ pathPrefixRewrite: string; } /** * The specifications for routing traffic and applying associated policies. */ interface TcpRouteRouteActionResponse { /** * Optional. The destination services to which traffic should be forwarded. At least one destination service is required. Only one of route destination or original destination can be set. */ destinations: outputs.networkservices.v1.TcpRouteRouteDestinationResponse[]; /** * Optional. If true, Router will use the destination IP and port of the original connection as the destination of the request. Default is false. Only one of route destinations or original destination can be set. */ originalDestination: boolean; } /** * Describe the destination for traffic to be routed to. */ interface TcpRouteRouteDestinationResponse { /** * The URL of a BackendService to route traffic to. */ serviceName: string; /** * Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them. */ weight: number; } /** * RouteMatch defines the predicate used to match requests to a given action. Multiple match types are "OR"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic. */ interface TcpRouteRouteMatchResponse { /** * Must be specified in the CIDR range format. A CIDR range consists of an IP Address and a prefix length to construct the subnet mask. By default, the prefix length is 32 (i.e. matches a single IP address). Only IPV4 addresses are supported. Examples: "10.0.0.1" - matches against this exact IP address. "10.0.0.0/8" - matches against any IP address within the 10.0.0.0 subnet and 255.255.255.0 mask. "0.0.0.0/0" - matches against any IP address'. */ address: string; /** * Specifies the destination port to match against. */ port: string; } /** * Specifies how to match traffic and how to route traffic when traffic is matched. */ interface TcpRouteRouteRuleResponse { /** * The detailed rule defining how to route matched traffic. */ action: outputs.networkservices.v1.TcpRouteRouteActionResponse; /** * Optional. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are "OR"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic. */ matches: outputs.networkservices.v1.TcpRouteRouteMatchResponse[]; } /** * The specifications for routing traffic and applying associated policies. */ interface TlsRouteRouteActionResponse { /** * The destination services to which traffic should be forwarded. At least one destination service is required. */ destinations: outputs.networkservices.v1.TlsRouteRouteDestinationResponse[]; } /** * Describe the destination for traffic to be routed to. */ interface TlsRouteRouteDestinationResponse { /** * The URL of a BackendService to route traffic to. */ serviceName: string; /** * Optional. Specifies the proportion of requests forwareded to the backend referenced by the service_name field. This is computed as: - weight/Sum(weights in destinations) Weights in all destinations does not need to sum up to 100. */ weight: number; } /** * RouteMatch defines the predicate used to match requests to a given action. Multiple match types are "AND"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic. */ interface TlsRouteRouteMatchResponse { /** * Optional. ALPN (Application-Layer Protocol Negotiation) to match against. Examples: "http/1.1", "h2". At least one of sni_host and alpn is required. Up to 5 alpns across all matches can be set. */ alpn: string[]; /** * Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. `www.example.com` will be first matched against `www.example.com`, then `*.example.com`, then `*.com.` Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 5 sni hosts across all matches can be set. */ sniHost: string[]; } /** * Specifies how to match traffic and how to route traffic when traffic is matched. */ interface TlsRouteRouteRuleResponse { /** * The detailed rule defining how to route matched traffic. */ action: outputs.networkservices.v1.TlsRouteRouteActionResponse; /** * RouteMatch defines the predicate used to match requests to a given action. Multiple match types are "OR"ed for evaluation. */ matches: outputs.networkservices.v1.TlsRouteRouteMatchResponse[]; } /** * Specification of a port-based selector. */ interface TrafficPortSelectorResponse { /** * Optional. A list of ports. Can be port numbers or port range (example, [80-90] specifies all ports from 80 to 90, including 80 and 90) or named ports or * to specify all ports. If the list is empty, all ports are selected. */ ports: string[]; } } namespace v1beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.networkservices.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.networkservices.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * A definition of a matcher that selects endpoints to which the policies should be applied. */ interface EndpointMatcherResponse { /** * The matcher is based on node metadata presented by xDS clients. */ metadataLabelMatcher: outputs.networkservices.v1beta1.MetadataLabelMatcherResponse; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A single extension in the chain to execute for the matching request. */ interface ExtensionChainExtensionResponse { /** * The `:authority` header in the gRPC request sent from Envoy to the extension service. */ authority: string; /** * Optional. Determines how the proxy behaves if the call to the extension fails or times out. When set to `TRUE`, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to `FALSE`: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer. * If response headers have been delivered, then the HTTP stream to the downstream client is reset. Default is `FALSE`. */ failOpen: boolean; /** * Optional. List of the HTTP headers to forward to the extension (from the client or backend). If omitted, all headers are sent. Each element is a string indicating the header name. */ forwardHeaders: string[]; /** * The name for this extension. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number. */ name: string; /** * The reference to the service that runs the extension. Must be a reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices). */ service: string; /** * Optional. A set of events during request or response processing for which this extension is called. This field is required for the `LbTrafficExtension` resource. It's not relevant for the `LbRouteExtension` resource. */ supportedEvents: string[]; /** * Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds. */ timeout: string; } /** * Conditions under which this chain is invoked for a request. */ interface ExtensionChainMatchConditionResponse { /** * A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed. */ celExpression: string; } /** * A single extension chain wrapper that contains the match conditions and extensions to execute. */ interface ExtensionChainResponse { /** * A set of extensions to execute for the matching request. At least one extension is required. Up to 3 extensions can be defined for each extension chain for `LbTrafficExtension` resource. `LbRouteExtension` chains are limited to 1 extension per extension chain. */ extensions: outputs.networkservices.v1beta1.ExtensionChainExtensionResponse[]; /** * Conditions under which this chain is invoked for a request. */ matchCondition: outputs.networkservices.v1beta1.ExtensionChainMatchConditionResponse; /** * The name for this extension chain. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number. */ name: string; } /** * The destination to which traffic will be routed. */ interface GrpcRouteDestinationResponse { /** * The URL of a destination service to which to route traffic. Must refer to either a BackendService or ServiceDirectoryService. */ serviceName: string; /** * Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them. */ weight: number; } /** * Specification of how client requests are aborted as part of fault injection before being sent to a destination. */ interface GrpcRouteFaultInjectionPolicyAbortResponse { /** * The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive. */ httpStatus: number; /** * The percentage of traffic which will be aborted. The value must be between [0, 100] */ percentage: number; } /** * Specification of how client requests are delayed as part of fault injection before being sent to a destination. */ interface GrpcRouteFaultInjectionPolicyDelayResponse { /** * Specify a fixed delay before forwarding the request. */ fixedDelay: string; /** * The percentage of traffic on which delay will be injected. The value must be between [0, 100] */ percentage: number; } /** * The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. */ interface GrpcRouteFaultInjectionPolicyResponse { /** * The specification for aborting to client requests. */ abort: outputs.networkservices.v1beta1.GrpcRouteFaultInjectionPolicyAbortResponse; /** * The specification for injecting delay to client requests. */ delay: outputs.networkservices.v1beta1.GrpcRouteFaultInjectionPolicyDelayResponse; } /** * A match against a collection of headers. */ interface GrpcRouteHeaderMatchResponse { /** * The key of the header. */ key: string; /** * Optional. Specifies how to match against the value of the header. If not specified, a default value of EXACT is used. */ type: string; /** * The value of the header. */ value: string; } /** * Specifies a match against a method. */ interface GrpcRouteMethodMatchResponse { /** * Optional. Specifies that matches are case sensitive. The default value is true. case_sensitive must not be used with a type of REGULAR_EXPRESSION. */ caseSensitive: boolean; /** * Name of the method to match against. If unspecified, will match all methods. */ grpcMethod: string; /** * Name of the service to match against. If unspecified, will match all services. */ grpcService: string; /** * Optional. Specifies how to match against the name. If not specified, a default value of "EXACT" is used. */ type: string; } /** * The specifications for retries. */ interface GrpcRouteRetryPolicyResponse { /** * Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1. */ numRetries: number; /** * - connect-failure: Router will retry on failures connecting to Backend Services, for example due to connection timeouts. - refused-stream: Router will retry if the backend service resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: Router will retry if the gRPC status code in the response header is set to cancelled - deadline-exceeded: Router will retry if the gRPC status code in the response header is set to deadline-exceeded - resource-exhausted: Router will retry if the gRPC status code in the response header is set to resource-exhausted - unavailable: Router will retry if the gRPC status code in the response header is set to unavailable */ retryConditions: string[]; } /** * Specifies how to route matched traffic. */ interface GrpcRouteRouteActionResponse { /** * Optional. The destination services to which traffic should be forwarded. If multiple destinations are specified, traffic will be split between Backend Service(s) according to the weight field of these destinations. */ destinations: outputs.networkservices.v1beta1.GrpcRouteDestinationResponse[]; /** * Optional. The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy */ faultInjectionPolicy: outputs.networkservices.v1beta1.GrpcRouteFaultInjectionPolicyResponse; /** * Optional. Specifies the retry policy associated with this route. */ retryPolicy: outputs.networkservices.v1beta1.GrpcRouteRetryPolicyResponse; /** * Optional. Specifies cookie-based stateful session affinity. */ statefulSessionAffinity: outputs.networkservices.v1beta1.GrpcRouteStatefulSessionAffinityPolicyResponse; /** * Optional. Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries. */ timeout: string; } /** * Criteria for matching traffic. A RouteMatch will be considered to match when all supplied fields match. */ interface GrpcRouteRouteMatchResponse { /** * Optional. Specifies a collection of headers to match. */ headers: outputs.networkservices.v1beta1.GrpcRouteHeaderMatchResponse[]; /** * Optional. A gRPC method to match against. If this field is empty or omitted, will match all methods. */ method: outputs.networkservices.v1beta1.GrpcRouteMethodMatchResponse; } /** * Describes how to route traffic. */ interface GrpcRouteRouteRuleResponse { /** * A detailed rule defining how to route traffic. This field is required. */ action: outputs.networkservices.v1beta1.GrpcRouteRouteActionResponse; /** * Optional. Matches define conditions used for matching the rule against incoming gRPC requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic. */ matches: outputs.networkservices.v1beta1.GrpcRouteRouteMatchResponse[]; } /** * The specification for cookie-based stateful session affinity where the date plane supplies a “session cookie” with the name "GSSA" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next. */ interface GrpcRouteStatefulSessionAffinityPolicyResponse { /** * The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive. */ cookieTtl: string; } /** * The Specification for allowing client side cross-origin requests. */ interface HttpRouteCorsPolicyResponse { /** * In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This translates to the Access-Control-Allow-Credentials header. Default value is false. */ allowCredentials: boolean; /** * Specifies the content for Access-Control-Allow-Headers header. */ allowHeaders: string[]; /** * Specifies the content for Access-Control-Allow-Methods header. */ allowMethods: string[]; /** * Specifies the regular expression patterns that match allowed origins. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax. */ allowOriginRegexes: string[]; /** * Specifies the list of origins that will be allowed to do CORS requests. An origin is allowed if it matches either an item in allow_origins or an item in allow_origin_regexes. */ allowOrigins: string[]; /** * If true, the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. */ disabled: boolean; /** * Specifies the content for Access-Control-Expose-Headers header. */ exposeHeaders: string[]; /** * Specifies how long result of a preflight request can be cached in seconds. This translates to the Access-Control-Max-Age header. */ maxAge: string; } /** * Specifications of a destination to which the request should be routed to. */ interface HttpRouteDestinationResponse { /** * The URL of a BackendService to route traffic to. */ serviceName: string; /** * Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them. */ weight: number; } /** * Specification of how client requests are aborted as part of fault injection before being sent to a destination. */ interface HttpRouteFaultInjectionPolicyAbortResponse { /** * The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive. */ httpStatus: number; /** * The percentage of traffic which will be aborted. The value must be between [0, 100] */ percentage: number; } /** * Specification of how client requests are delayed as part of fault injection before being sent to a destination. */ interface HttpRouteFaultInjectionPolicyDelayResponse { /** * Specify a fixed delay before forwarding the request. */ fixedDelay: string; /** * The percentage of traffic on which delay will be injected. The value must be between [0, 100] */ percentage: number; } /** * The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced by client proxy on a percentage of requests before sending those requests to the destination service. Similarly requests can be aborted by client proxy for a percentage of requests. */ interface HttpRouteFaultInjectionPolicyResponse { /** * The specification for aborting to client requests. */ abort: outputs.networkservices.v1beta1.HttpRouteFaultInjectionPolicyAbortResponse; /** * The specification for injecting delay to client requests. */ delay: outputs.networkservices.v1beta1.HttpRouteFaultInjectionPolicyDelayResponse; } /** * Represents an integer value range. */ interface HttpRouteHeaderMatchIntegerRangeResponse { /** * End of the range (exclusive) */ end: number; /** * Start of the range (inclusive) */ start: number; } /** * Specifies how to select a route rule based on HTTP request headers. */ interface HttpRouteHeaderMatchResponse { /** * The value of the header should match exactly the content of exact_match. */ exactMatch: string; /** * The name of the HTTP header to match against. */ header: string; /** * If specified, the match result will be inverted before checking. Default value is set to false. */ invertMatch: boolean; /** * The value of the header must start with the contents of prefix_match. */ prefixMatch: string; /** * A header with header_name must exist. The match takes place whether or not the header has a value. */ presentMatch: boolean; /** * If specified, the rule will match if the request header value is within the range. */ rangeMatch: outputs.networkservices.v1beta1.HttpRouteHeaderMatchIntegerRangeResponse; /** * The value of the header must match the regular expression specified in regex_match. For regular expression grammar, please see: https://github.com/google/re2/wiki/Syntax */ regexMatch: string; /** * The value of the header must end with the contents of suffix_match. */ suffixMatch: string; } /** * The specification for modifying HTTP header in HTTP request and HTTP response. */ interface HttpRouteHeaderModifierResponse { /** * Add the headers with given map where key is the name of the header, value is the value of the header. */ add: { [key: string]: string; }; /** * Remove headers (matching by header names) specified in the list. */ remove: string[]; /** * Completely overwrite/replace the headers with given map where key is the name of the header, value is the value of the header. */ set: { [key: string]: string; }; } /** * Specifications to match a query parameter in the request. */ interface HttpRouteQueryParameterMatchResponse { /** * The value of the query parameter must exactly match the contents of exact_match. Only one of exact_match, regex_match, or present_match must be set. */ exactMatch: string; /** * Specifies that the QueryParameterMatcher matches if request contains query parameter, irrespective of whether the parameter has a value or not. Only one of exact_match, regex_match, or present_match must be set. */ presentMatch: boolean; /** * The name of the query parameter to match. */ queryParameter: string; /** * The value of the query parameter must match the regular expression specified by regex_match. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax Only one of exact_match, regex_match, or present_match must be set. */ regexMatch: string; } /** * The specification for redirecting traffic. */ interface HttpRouteRedirectResponse { /** * The host that will be used in the redirect response instead of the one that was supplied in the request. */ hostRedirect: string; /** * If set to true, the URL scheme in the redirected request is set to https. If set to false, the URL scheme of the redirected request will remain the same as that of the request. The default is set to false. */ httpsRedirect: boolean; /** * The path that will be used in the redirect response instead of the one that was supplied in the request. path_redirect can not be supplied together with prefix_redirect. Supply one alone or neither. If neither is supplied, the path of the original request will be used for the redirect. */ pathRedirect: string; /** * The port that will be used in the redirected request instead of the one that was supplied in the request. */ portRedirect: number; /** * Indicates that during redirection, the matched prefix (or path) should be swapped with this value. This option allows URLs be dynamically created based on the request. */ prefixRewrite: string; /** * The HTTP Status code to use for the redirect. */ responseCode: string; /** * if set to true, any accompanying query portion of the original URL is removed prior to redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. */ stripQuery: boolean; } /** * Specifies the policy on how requests are shadowed to a separate mirrored destination service. The proxy does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, the host/authority header is suffixed with -shadow. */ interface HttpRouteRequestMirrorPolicyResponse { /** * The destination the requests will be mirrored to. The weight of the destination will be ignored. */ destination: outputs.networkservices.v1beta1.HttpRouteDestinationResponse; } /** * The specifications for retries. */ interface HttpRouteRetryPolicyResponse { /** * Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1. */ numRetries: number; /** * Specifies a non-zero timeout per retry attempt. */ perTryTimeout: string; /** * Specifies one or more conditions when this retry policy applies. Valid values are: 5xx: Proxy will attempt a retry if the destination service responds with any 5xx response code, of if the destination service does not respond at all, example: disconnect, reset, read timeout, connection failure and refused streams. gateway-error: Similar to 5xx, but only applies to response codes 502, 503, 504. reset: Proxy will attempt a retry if the destination service does not respond at all (disconnect/reset/read timeout) connect-failure: Proxy will retry on failures connecting to destination for example due to connection timeouts. retriable-4xx: Proxy will retry fro retriable 4xx response codes. Currently the only retriable error supported is 409. refused-stream: Proxy will retry if the destination resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. */ retryConditions: string[]; } /** * The specifications for routing traffic and applying associated policies. */ interface HttpRouteRouteActionResponse { /** * The specification for allowing client side cross-origin requests. */ corsPolicy: outputs.networkservices.v1beta1.HttpRouteCorsPolicyResponse; /** * The destination to which traffic should be forwarded. */ destinations: outputs.networkservices.v1beta1.HttpRouteDestinationResponse[]; /** * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy */ faultInjectionPolicy: outputs.networkservices.v1beta1.HttpRouteFaultInjectionPolicyResponse; /** * If set, the request is directed as configured by this field. */ redirect: outputs.networkservices.v1beta1.HttpRouteRedirectResponse; /** * The specification for modifying the headers of a matching request prior to delivery of the request to the destination. If HeaderModifiers are set on both the Destination and the RouteAction, they will be merged. Conflicts between the two will not be resolved on the configuration. */ requestHeaderModifier: outputs.networkservices.v1beta1.HttpRouteHeaderModifierResponse; /** * Specifies the policy on how requests intended for the routes destination are shadowed to a separate mirrored destination. Proxy will not wait for the shadow destination to respond before returning the response. Prior to sending traffic to the shadow service, the host/authority header is suffixed with -shadow. */ requestMirrorPolicy: outputs.networkservices.v1beta1.HttpRouteRequestMirrorPolicyResponse; /** * The specification for modifying the headers of a response prior to sending the response back to the client. If HeaderModifiers are set on both the Destination and the RouteAction, they will be merged. Conflicts between the two will not be resolved on the configuration. */ responseHeaderModifier: outputs.networkservices.v1beta1.HttpRouteHeaderModifierResponse; /** * Specifies the retry policy associated with this route. */ retryPolicy: outputs.networkservices.v1beta1.HttpRouteRetryPolicyResponse; /** * Optional. Specifies cookie-based stateful session affinity. */ statefulSessionAffinity: outputs.networkservices.v1beta1.HttpRouteStatefulSessionAffinityPolicyResponse; /** * Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries. */ timeout: string; /** * The specification for rewrite URL before forwarding requests to the destination. */ urlRewrite: outputs.networkservices.v1beta1.HttpRouteURLRewriteResponse; } /** * RouteMatch defines specifications used to match requests. If multiple match types are set, this RouteMatch will match if ALL type of matches are matched. */ interface HttpRouteRouteMatchResponse { /** * The HTTP request path value should exactly match this value. Only one of full_path_match, prefix_match, or regex_match should be used. */ fullPathMatch: string; /** * Specifies a list of HTTP request headers to match against. ALL of the supplied headers must be matched. */ headers: outputs.networkservices.v1beta1.HttpRouteHeaderMatchResponse[]; /** * Specifies if prefix_match and full_path_match matches are case sensitive. The default value is false. */ ignoreCase: boolean; /** * The HTTP request path value must begin with specified prefix_match. prefix_match must begin with a /. Only one of full_path_match, prefix_match, or regex_match should be used. */ prefixMatch: string; /** * Specifies a list of query parameters to match against. ALL of the query parameters must be matched. */ queryParameters: outputs.networkservices.v1beta1.HttpRouteQueryParameterMatchResponse[]; /** * The HTTP request path value must satisfy the regular expression specified by regex_match after removing any query parameters and anchor supplied with the original URL. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax Only one of full_path_match, prefix_match, or regex_match should be used. */ regexMatch: string; } /** * Specifies how to match traffic and how to route traffic when traffic is matched. */ interface HttpRouteRouteRuleResponse { /** * The detailed rule defining how to route matched traffic. */ action: outputs.networkservices.v1beta1.HttpRouteRouteActionResponse; /** * A list of matches define conditions used for matching the rule against incoming HTTP requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic. If a default rule is desired to be configured, add a rule with no matches specified to the end of the rules list. */ matches: outputs.networkservices.v1beta1.HttpRouteRouteMatchResponse[]; } /** * The specification for cookie-based stateful session affinity where the date plane supplies a “session cookie” with the name "GSSA" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next. */ interface HttpRouteStatefulSessionAffinityPolicyResponse { /** * The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive. */ cookieTtl: string; } /** * The specification for modifying the URL of the request, prior to forwarding the request to the destination. */ interface HttpRouteURLRewriteResponse { /** * Prior to forwarding the request to the selected destination, the requests host header is replaced by this value. */ hostRewrite: string; /** * Prior to forwarding the request to the selected destination, the matching portion of the requests path is replaced by this value. */ pathPrefixRewrite: string; } /** * The matcher that is based on node metadata presented by xDS clients. */ interface MetadataLabelMatcherResponse { /** * Specifies how matching should be done. Supported values are: MATCH_ANY: At least one of the Labels specified in the matcher should match the metadata presented by xDS client. MATCH_ALL: The metadata presented by the xDS client should contain all of the labels specified here. The selection is determined based on the best match. For example, suppose there are three EndpointPolicy resources P1, P2 and P3 and if P1 has a the matcher as MATCH_ANY , P2 has MATCH_ALL , and P3 has MATCH_ALL . If a client with label connects, the config from P1 will be selected. If a client with label connects, the config from P2 will be selected. If a client with label connects, the config from P3 will be selected. If there is more than one best match, (for example, if a config P4 with selector exists and if a client with label connects), an error will be thrown. */ metadataLabelMatchCriteria: string; /** * The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list can have at most 64 entries. The list can be empty if the match criteria is MATCH_ANY, to specify a wildcard match (i.e this matches any client). */ metadataLabels: outputs.networkservices.v1beta1.MetadataLabelsResponse[]; } /** * Defines a name-pair value for a single label. */ interface MetadataLabelsResponse { /** * Label name presented as key in xDS Node Metadata. */ labelName: string; /** * Label value presented as value corresponding to the above key, in xDS Node Metadata. */ labelValue: string; } /** * Option to specify if an unhealthy IG/NEG should be considered for global load balancing and traffic routing. */ interface ServiceLbPolicyAutoCapacityDrainResponse { /** * Optional. If set to 'True', an unhealthy IG/NEG will be set as drained. - An IG/NEG is considered unhealthy if less than 25% of the instances/endpoints in the IG/NEG are healthy. - This option will never result in draining more than 50% of the configured IGs/NEGs for the Backend Service. */ enable: boolean; } /** * Option to specify health based failover behavior. This is not related to Network load balancer FailoverPolicy. */ interface ServiceLbPolicyFailoverConfigResponse { /** * Optional. The percentage threshold that a load balancer will begin to send traffic to failover backends. If the percentage of endpoints in a MIG/NEG is smaller than this value, traffic would be sent to failover backends if possible. This field should be set to a value between 1 and 99. The default value is 50 for Global external HTTP(S) load balancer (classic) and Proxyless service mesh, and 70 for others. */ failoverHealthThreshold: number; } /** * The specifications for routing traffic and applying associated policies. */ interface TcpRouteRouteActionResponse { /** * Optional. The destination services to which traffic should be forwarded. At least one destination service is required. Only one of route destination or original destination can be set. */ destinations: outputs.networkservices.v1beta1.TcpRouteRouteDestinationResponse[]; /** * Optional. If true, Router will use the destination IP and port of the original connection as the destination of the request. Default is false. Only one of route destinations or original destination can be set. */ originalDestination: boolean; } /** * Describe the destination for traffic to be routed to. */ interface TcpRouteRouteDestinationResponse { /** * The URL of a BackendService to route traffic to. */ serviceName: string; /** * Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them. */ weight: number; } /** * RouteMatch defines the predicate used to match requests to a given action. Multiple match types are "OR"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic. */ interface TcpRouteRouteMatchResponse { /** * Must be specified in the CIDR range format. A CIDR range consists of an IP Address and a prefix length to construct the subnet mask. By default, the prefix length is 32 (i.e. matches a single IP address). Only IPV4 addresses are supported. Examples: "10.0.0.1" - matches against this exact IP address. "10.0.0.0/8" - matches against any IP address within the 10.0.0.0 subnet and 255.255.255.0 mask. "0.0.0.0/0" - matches against any IP address'. */ address: string; /** * Specifies the destination port to match against. */ port: string; } /** * Specifies how to match traffic and how to route traffic when traffic is matched. */ interface TcpRouteRouteRuleResponse { /** * The detailed rule defining how to route matched traffic. */ action: outputs.networkservices.v1beta1.TcpRouteRouteActionResponse; /** * Optional. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are "OR"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic. */ matches: outputs.networkservices.v1beta1.TcpRouteRouteMatchResponse[]; } /** * The specifications for routing traffic and applying associated policies. */ interface TlsRouteRouteActionResponse { /** * The destination services to which traffic should be forwarded. At least one destination service is required. */ destinations: outputs.networkservices.v1beta1.TlsRouteRouteDestinationResponse[]; } /** * Describe the destination for traffic to be routed to. */ interface TlsRouteRouteDestinationResponse { /** * The URL of a BackendService to route traffic to. */ serviceName: string; /** * Optional. Specifies the proportion of requests forwareded to the backend referenced by the service_name field. This is computed as: - weight/Sum(weights in destinations) Weights in all destinations does not need to sum up to 100. */ weight: number; } /** * RouteMatch defines the predicate used to match requests to a given action. Multiple match types are "AND"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic. */ interface TlsRouteRouteMatchResponse { /** * Optional. ALPN (Application-Layer Protocol Negotiation) to match against. Examples: "http/1.1", "h2". At least one of sni_host and alpn is required. Up to 5 alpns across all matches can be set. */ alpn: string[]; /** * Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. `www.example.com` will be first matched against `www.example.com`, then `*.example.com`, then `*.com.` Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 5 sni hosts across all matches can be set. */ sniHost: string[]; } /** * Specifies how to match traffic and how to route traffic when traffic is matched. */ interface TlsRouteRouteRuleResponse { /** * The detailed rule defining how to route matched traffic. */ action: outputs.networkservices.v1beta1.TlsRouteRouteActionResponse; /** * RouteMatch defines the predicate used to match requests to a given action. Multiple match types are "OR"ed for evaluation. */ matches: outputs.networkservices.v1beta1.TlsRouteRouteMatchResponse[]; } /** * Specification of a port-based selector. */ interface TrafficPortSelectorResponse { /** * Optional. A list of ports. Can be port numbers or port range (example, [80-90] specifies all ports from 80 to 90, including 80 and 90) or named ports or * to specify all ports. If the list is empty, all ports are selected. */ ports: string[]; } } } export declare namespace notebooks { namespace v1 { /** * Definition of a hardware accelerator. Note that not all combinations of `type` and `core_count` are valid. See [GPUs on Compute Engine](https://cloud.google.com/compute/docs/gpus/#gpus-list) to find a valid combination. TPUs are not supported. */ interface AcceleratorConfigResponse { /** * Count of cores of this accelerator. */ coreCount: string; /** * Type of this accelerator. */ type: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.notebooks.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Definition of the boot image used by the Runtime. Used to facilitate runtime upgradeability. */ interface BootImageResponse { } /** * Definition of a container image for starting a notebook instance with the environment installed in a container. */ interface ContainerImageResponse { /** * The path to the container image repository. For example: `gcr.io/{project_id}/{image_name}` */ repository: string; /** * The tag of the container image. If not specified, this defaults to the latest tag. */ tag: string; } /** * Parameters used in Dataproc JobType executions. */ interface DataprocParametersResponse { /** * URI for cluster used to run Dataproc execution. Format: `projects/{PROJECT_ID}/regions/{REGION}/clusters/{CLUSTER_NAME}` */ cluster: string; } /** * An instance-attached disk resource. */ interface DiskResponse { /** * Indicates whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. */ boot: boolean; /** * Indicates a unique device name of your choice that is reflected into the `/dev/disk/by-id/google-*` tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine.This field is only applicable for persistent disks. */ deviceName: string; /** * Indicates the size of the disk in base-2 GB. */ diskSizeGb: string; /** * Indicates a list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. */ guestOsFeatures: outputs.notebooks.v1.GuestOsFeatureResponse[]; /** * A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. */ index: string; /** * Indicates the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: * `NVME` * `SCSI` */ interface: string; /** * Type of the resource. Always compute#attachedDisk for attached disks. */ kind: string; /** * A list of publicly visible licenses. Reserved for Google's use. A License represents billing and aggregate usage data for public and marketplace images. */ licenses: string[]; /** * The mode in which to attach this disk, either `READ_WRITE` or `READ_ONLY`. If not specified, the default is to attach the disk in `READ_WRITE` mode. Valid values: * `READ_ONLY` * `READ_WRITE` */ mode: string; /** * Indicates a valid partial or full URL to an existing Persistent Disk resource. */ source: string; /** * Indicates the type of the disk, either `SCRATCH` or `PERSISTENT`. Valid values: * `PERSISTENT` * `SCRATCH` */ type: string; } /** * Represents a custom encryption key configuration that can be applied to a resource. This will encrypt all disks in Virtual Machine. */ interface EncryptionConfigResponse { /** * The Cloud KMS resource identifier of the customer-managed encryption key used to protect a resource, such as a disks. It has the following format: `projects/{PROJECT_ID}/locations/{REGION}/keyRings/{KEY_RING_NAME}/cryptoKeys/{KEY_NAME}` */ kmsKey: string; } /** * The definition of a single executed notebook. */ interface ExecutionResponse { /** * Time the Execution was instantiated. */ createTime: string; /** * A brief description of this execution. */ description: string; /** * Name used for UI purposes. Name can only contain alphanumeric characters and underscores '_'. */ displayName: string; /** * execute metadata including name, hardware spec, region, labels, etc. */ executionTemplate: outputs.notebooks.v1.ExecutionTemplateResponse; /** * The URI of the external job used to execute the notebook. */ jobUri: string; /** * The resource name of the execute. Format: `projects/{project_id}/locations/{location}/executions/{execution_id}` */ name: string; /** * Output notebook file generated by this execution */ outputNotebookFile: string; /** * State of the underlying AI Platform job. */ state: string; /** * Time the Execution was last updated. */ updateTime: string; } /** * The description a notebook execution workload. */ interface ExecutionTemplateResponse { /** * Configuration (count and accelerator type) for hardware running notebook execution. */ acceleratorConfig: outputs.notebooks.v1.SchedulerAcceleratorConfigResponse; /** * Container Image URI to a DLVM Example: 'gcr.io/deeplearning-platform-release/base-cu100' More examples can be found at: https://cloud.google.com/ai-platform/deep-learning-containers/docs/choosing-container */ containerImageUri: string; /** * Parameters used in Dataproc JobType executions. */ dataprocParameters: outputs.notebooks.v1.DataprocParametersResponse; /** * Path to the notebook file to execute. Must be in a Google Cloud Storage bucket. Format: `gs://{bucket_name}/{folder}/{notebook_file_name}` Ex: `gs://notebook_user/scheduled_notebooks/sentiment_notebook.ipynb` */ inputNotebookFile: string; /** * The type of Job to be used on this execution. */ jobType: string; /** * Name of the kernel spec to use. This must be specified if the kernel spec name on the execution target does not match the name in the input notebook file. */ kernelSpec: string; /** * Labels for execution. If execution is scheduled, a field included will be 'nbs-scheduled'. Otherwise, it is an immediate execution, and an included field will be 'nbs-immediate'. Use fields to efficiently index between various types of executions. */ labels: { [key: string]: string; }; /** * Specifies the type of virtual machine to use for your training job's master worker. You must specify this field when `scaleTier` is set to `CUSTOM`. You can use certain Compute Engine machine types directly in this field. The following types are supported: - `n1-standard-4` - `n1-standard-8` - `n1-standard-16` - `n1-standard-32` - `n1-standard-64` - `n1-standard-96` - `n1-highmem-2` - `n1-highmem-4` - `n1-highmem-8` - `n1-highmem-16` - `n1-highmem-32` - `n1-highmem-64` - `n1-highmem-96` - `n1-highcpu-16` - `n1-highcpu-32` - `n1-highcpu-64` - `n1-highcpu-96` Alternatively, you can use the following legacy machine types: - `standard` - `large_model` - `complex_model_s` - `complex_model_m` - `complex_model_l` - `standard_gpu` - `complex_model_m_gpu` - `complex_model_l_gpu` - `standard_p100` - `complex_model_m_p100` - `standard_v100` - `large_model_v100` - `complex_model_m_v100` - `complex_model_l_v100` Finally, if you want to use a TPU for training, specify `cloud_tpu` in this field. Learn more about the [special configuration options for training with TPU](https://cloud.google.com/ai-platform/training/docs/using-tpus#configuring_a_custom_tpu_machine). */ masterType: string; /** * Path to the notebook folder to write to. Must be in a Google Cloud Storage bucket path. Format: `gs://{bucket_name}/{folder}` Ex: `gs://notebook_user/scheduled_notebooks` */ outputNotebookFolder: string; /** * Parameters used within the 'input_notebook_file' notebook. */ parameters: string; /** * Parameters to be overridden in the notebook during execution. Ref https://papermill.readthedocs.io/en/latest/usage-parameterize.html on how to specifying parameters in the input notebook and pass them here in an YAML file. Ex: `gs://notebook_user/scheduled_notebooks/sentiment_notebook_params.yaml` */ paramsYamlFile: string; /** * Scale tier of the hardware used for notebook execution. DEPRECATED Will be discontinued. As right now only CUSTOM is supported. * * @deprecated Required. Scale tier of the hardware used for notebook execution. DEPRECATED Will be discontinued. As right now only CUSTOM is supported. */ scaleTier: string; /** * The email address of a service account to use when running the execution. You must have the `iam.serviceAccounts.actAs` permission for the specified service account. */ serviceAccount: string; /** * The name of a Vertex AI [Tensorboard] resource to which this execution will upload Tensorboard logs. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}` */ tensorboard: string; /** * Parameters used in Vertex AI JobType executions. */ vertexAiParameters: outputs.notebooks.v1.VertexAIParametersResponse; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Guest OS features for boot disk. */ interface GuestOsFeatureResponse { /** * The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. Valid values: * `FEATURE_TYPE_UNSPECIFIED` * `MULTI_IP_SUBNET` * `SECURE_BOOT` * `UEFI_COMPATIBLE` * `VIRTIO_SCSI_MULTIQUEUE` * `WINDOWS` */ type: string; } /** * InstanceMigrationEligibility represents the feasibility information of a migration from UmN to WbI. */ interface InstanceMigrationEligibilityResponse { /** * Certain configurations make the UmN ineligible for an automatic migration. A manual migration is required. */ errors: string[]; /** * Certain configurations will be defaulted during the migration. */ warnings: string[]; } /** * Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both. */ interface LocalDiskInitializeParamsResponse { /** * Optional. Provide this property when creating the disk. */ description: string; /** * Optional. Specifies the disk name. If not specified, the default is to use the name of the instance. If the disk with the instance name exists already in the given zone/region, a new name will be automatically generated. */ diskName: string; /** * Optional. Specifies the size of the disk in base-2 GB. If not specified, the disk will be the same size as the image (usually 10GB). If specified, the size must be equal to or larger than 10GB. Default 100 GB. */ diskSizeGb: string; /** * Input only. The type of the boot disk attached to this instance, defaults to standard persistent disk (`PD_STANDARD`). */ diskType: string; /** * Optional. Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. */ labels: { [key: string]: string; }; } /** * A Local attached disk resource. */ interface LocalDiskResponse { /** * Optional. Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). */ autoDelete: boolean; /** * Optional. Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. */ boot: boolean; /** * Optional. Output only. Specifies a unique device name of your choice that is reflected into the `/dev/disk/by-id/google-*` tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. */ deviceName: string; /** * Indicates a list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. */ guestOsFeatures: outputs.notebooks.v1.RuntimeGuestOsFeatureResponse[]; /** * A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. */ index: number; /** * Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. */ initializeParams: outputs.notebooks.v1.LocalDiskInitializeParamsResponse; /** * Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: * `NVME` * `SCSI` */ interface: string; /** * Type of the resource. Always compute#attachedDisk for attached disks. */ kind: string; /** * Any valid publicly visible licenses. */ licenses: string[]; /** * The mode in which to attach this disk, either `READ_WRITE` or `READ_ONLY`. If not specified, the default is to attach the disk in `READ_WRITE` mode. Valid values: * `READ_ONLY` * `READ_WRITE` */ mode: string; /** * Specifies a valid partial or full URL to an existing Persistent Disk resource. */ source: string; /** * Specifies the type of the disk, either `SCRATCH` or `PERSISTENT`. If not specified, the default is `PERSISTENT`. Valid values: * `PERSISTENT` * `SCRATCH` */ type: string; } /** * Reservation Affinity for consuming Zonal reservation. */ interface ReservationAffinityResponse { /** * Optional. Type of reservation to consume */ consumeReservationType: string; /** * Optional. Corresponds to the label key of reservation resource. */ key: string; /** * Optional. Corresponds to the label values of reservation resource. */ values: string[]; } /** * Definition of the types of hardware accelerators that can be used. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `nvidia-tesla-k80` * `nvidia-tesla-p100` * `nvidia-tesla-v100` * `nvidia-tesla-p4` * `nvidia-tesla-t4` * `nvidia-tesla-a100` */ interface RuntimeAcceleratorConfigResponse { /** * Count of cores of this accelerator. */ coreCount: string; /** * Accelerator model. */ type: string; } /** * Specifies the login configuration for Runtime */ interface RuntimeAccessConfigResponse { /** * The type of access mode this instance. */ accessType: string; /** * The proxy endpoint that is used to access the runtime. */ proxyUri: string; /** * The owner of this runtime after creation. Format: `alias@example.com` Currently supports one owner only. */ runtimeOwner: string; } /** * Optional. A list of features to enable on the guest operating system. Applicable only for bootable images. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Guest OS features for boot disk. */ interface RuntimeGuestOsFeatureResponse { /** * The ID of a supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Valid values: * `FEATURE_TYPE_UNSPECIFIED` * `MULTI_IP_SUBNET` * `SECURE_BOOT` * `UEFI_COMPATIBLE` * `VIRTIO_SCSI_MULTIQUEUE` * `WINDOWS` */ type: string; } /** * Contains runtime daemon metrics, such as OS and kernels and sessions stats. */ interface RuntimeMetricsResponse { /** * The system metrics. */ systemMetrics: { [key: string]: string; }; } /** * RuntimeMigrationEligibility represents the feasibility information of a migration from GmN to WbI. */ interface RuntimeMigrationEligibilityResponse { /** * Certain configurations make the GmN ineligible for an automatic migration. A manual migration is required. */ errors: string[]; /** * Certain configurations will be defaulted during the migration. */ warnings: string[]; } /** * A set of Shielded Instance options. See [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid. */ interface RuntimeShieldedInstanceConfigResponse { /** * Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. Enabled by default. */ enableIntegrityMonitoring: boolean; /** * Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default. */ enableSecureBoot: boolean; /** * Defines whether the instance has the vTPM enabled. Enabled by default. */ enableVtpm: boolean; } /** * Specifies the selection and configuration of software inside the runtime. The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * `idle_shutdown: true` * `idle_shutdown_timeout: 180` * `enable_health_monitoring: true` */ interface RuntimeSoftwareConfigResponse { /** * Specify a custom Cloud Storage path where the GPU driver is stored. If not specified, we'll automatically choose from official GPU drivers. */ customGpuDriverPath: string; /** * Bool indicating whether JupyterLab terminal will be available or not. Default: False */ disableTerminal: boolean; /** * Verifies core internal services are running. Default: True */ enableHealthMonitoring: boolean; /** * Runtime will automatically shutdown after idle_shutdown_time. Default: True */ idleShutdown: boolean; /** * Time in minutes to wait before shutting down runtime. Default: 180 minutes */ idleShutdownTimeout: number; /** * Install Nvidia Driver automatically. Default: True */ installGpuDriver: boolean; /** * Optional. Use a list of container images to use as Kernels in the notebook instance. */ kernels: outputs.notebooks.v1.ContainerImageResponse[]; /** * Bool indicating whether mixer client should be disabled. Default: False */ mixerDisabled: boolean; /** * Cron expression in UTC timezone, used to schedule instance auto upgrade. Please follow the [cron format](https://en.wikipedia.org/wiki/Cron). */ notebookUpgradeSchedule: string; /** * Path to a Bash script that automatically runs after a notebook instance fully boots up. The path must be a URL or Cloud Storage path (`gs://path-to-file/file-name`). */ postStartupScript: string; /** * Behavior for the post startup script. */ postStartupScriptBehavior: string; /** * Bool indicating whether an newer image is available in an image family. */ upgradeable: boolean; /** * version of boot image such as M100, from release label of the image. */ version: string; } /** * Definition of a hardware accelerator. Note that not all combinations of `type` and `core_count` are valid. See [GPUs on Compute Engine](https://cloud.google.com/compute/docs/gpus) to find a valid combination. TPUs are not supported. */ interface SchedulerAcceleratorConfigResponse { /** * Count of cores of this accelerator. */ coreCount: string; /** * Type of this accelerator. */ type: string; } /** * A set of Shielded Instance options. See [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid. */ interface ShieldedInstanceConfigResponse { /** * Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. Enabled by default. */ enableIntegrityMonitoring: boolean; /** * Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default. */ enableSecureBoot: boolean; /** * Defines whether the instance has the vTPM enabled. Enabled by default. */ enableVtpm: boolean; } /** * The entry of VM image upgrade history. */ interface UpgradeHistoryEntryResponse { /** * Action. Rolloback or Upgrade. */ action: string; /** * The container image before this instance upgrade. */ containerImage: string; /** * The time that this instance upgrade history entry is created. */ createTime: string; /** * The framework of this notebook instance. */ framework: string; /** * The snapshot of the boot disk of this notebook instance before upgrade. */ snapshot: string; /** * The state of this instance upgrade history entry. */ state: string; /** * Target VM Image. Format: `ainotebooks-vm/project/image-name/name`. */ targetImage: string; /** * Target VM Version, like m63. */ targetVersion: string; /** * The version of the notebook instance before this upgrade. */ version: string; /** * The VM image before this instance upgrade. */ vmImage: string; } /** * Parameters used in Vertex AI JobType executions. */ interface VertexAIParametersResponse { /** * Environment variables. At most 100 environment variables can be specified and unique. Example: `GCP_BUCKET=gs://my-bucket/samples/` */ env: { [key: string]: string; }; /** * The full name of the Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the Job should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is a network name. Private services access must already be configured for the network. If left unspecified, the job is not peered with any network. */ network: string; } /** * The config settings for virtual machine. */ interface VirtualMachineConfigResponse { /** * Optional. The Compute Engine accelerator configuration for this runtime. */ acceleratorConfig: outputs.notebooks.v1.RuntimeAcceleratorConfigResponse; /** * Optional. Boot image metadata used for runtime upgradeability. */ bootImage: outputs.notebooks.v1.BootImageResponse; /** * Optional. Use a list of container images to use as Kernels in the notebook instance. */ containerImages: outputs.notebooks.v1.ContainerImageResponse[]; /** * Data disk option configuration settings. */ dataDisk: outputs.notebooks.v1.LocalDiskResponse; /** * Optional. Encryption settings for virtual machine data disk. */ encryptionConfig: outputs.notebooks.v1.EncryptionConfigResponse; /** * The Compute Engine guest attributes. (see [Project and instance guest attributes](https://cloud.google.com/compute/docs/storing-retrieving-metadata#guest_attributes)). */ guestAttributes: { [key: string]: string; }; /** * Optional. If true, runtime will only have internal IP addresses. By default, runtimes are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each vm. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all dependencies must be configured to be accessible without external IP addresses. */ internalIpOnly: boolean; /** * Optional. The labels to associate with this runtime. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster. */ labels: { [key: string]: string; }; /** * The Compute Engine machine type used for runtimes. Short name is valid. Examples: * `n1-standard-2` * `e2-standard-8` */ machineType: string; /** * Optional. The Compute Engine metadata entries to add to virtual machine. (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)). */ metadata: { [key: string]: string; }; /** * Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork. If neither `network` nor `subnet` is specified, the "default" network of the project is used, if it exists. A full URL or partial URI. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/global/networks/default` * `projects/[project_id]/global/networks/default` Runtimes are managed resources inside Google Infrastructure. Runtimes support the following network configurations: * Google Managed Network (Network & subnet are empty) * Consumer Project VPC (network & subnet are required). Requires configuring Private Service Access. * Shared VPC (network & subnet are required). Requires configuring Private Service Access. */ network: string; /** * Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. */ nicType: string; /** * Optional. Reserved IP Range name is used for VPC Peering. The subnetwork allocation will use the range *name* if it's assigned. Example: managed-notebooks-range-c PEERING_RANGE_NAME_3=managed-notebooks-range-c gcloud compute addresses create $PEERING_RANGE_NAME_3 \ --global \ --prefix-length=24 \ --description="Google Cloud Managed Notebooks Range 24 c" \ --network=$NETWORK \ --addresses=192.168.0.0 \ --purpose=VPC_PEERING Field value will be: `managed-notebooks-range-c` */ reservedIpRange: string; /** * Optional. Shielded VM Instance configuration settings. */ shieldedInstanceConfig: outputs.notebooks.v1.RuntimeShieldedInstanceConfigResponse; /** * Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network. A full URL or partial URI are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0` * `projects/[project_id]/regions/us-east1/subnetworks/sub0` */ subnet: string; /** * Optional. The Compute Engine tags to add to runtime (see [Tagging instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)). */ tags: string[]; /** * The zone where the virtual machine is located. If using regional request, the notebooks service will pick a location in the corresponding runtime region. On a get request, zone will always be present. Example: * `us-central1-b` */ zone: string; } /** * Runtime using Virtual Machine for computing. */ interface VirtualMachineResponse { /** * The unique identifier of the Managed Compute Engine instance. */ instanceId: string; /** * The user-friendly name of the Managed Compute Engine instance. */ instanceName: string; /** * Virtual Machine configuration settings. */ virtualMachineConfig: outputs.notebooks.v1.VirtualMachineConfigResponse; } /** * Definition of a custom Compute Engine virtual machine image for starting a notebook instance with the environment installed directly on the VM. */ interface VmImageResponse { /** * Use this VM image family to find the image; the newest image in this family will be used. */ imageFamily: string; /** * Use VM image name to find the image. */ imageName: string; /** * The name of the Google Cloud project that this VM image belongs to. Format: `{project_id}` */ project: string; } } namespace v2 { /** * An accelerator configuration for a VM instance Definition of a hardware accelerator. Note that there is no check on `type` and `core_count` combinations. TPUs are not supported. See [GPUs on Compute Engine](https://cloud.google.com/compute/docs/gpus/#gpus-list) to find a valid combination. */ interface AcceleratorConfigResponse { /** * Optional. Count of cores of this accelerator. */ coreCount: string; /** * Optional. Type of this accelerator. */ type: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.notebooks.v2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * The definition of a boot disk. */ interface BootDiskResponse { /** * Optional. Input only. Disk encryption method used on the boot and data disks, defaults to GMEK. */ diskEncryption: string; /** * Optional. The size of the boot disk in GB attached to this instance, up to a maximum of 64000 GB (64 TB). If not specified, this defaults to the recommended value of 150GB. */ diskSizeGb: string; /** * Optional. Indicates the type of the disk. */ diskType: string; /** * Optional. Input only. The KMS key used to encrypt the disks, only applicable if disk_encryption is CMEK. Format: `projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}` Learn more about using your own encryption keys. */ kmsKey: string; } /** * Definition of a container image for starting a notebook instance with the environment installed in a container. */ interface ContainerImageResponse { /** * The path to the container image repository. For example: `gcr.io/{project_id}/{image_name}` */ repository: string; /** * Optional. The tag of the container image. If not specified, this defaults to the latest tag. */ tag: string; } /** * An instance-attached disk resource. */ interface DataDiskResponse { /** * Optional. Input only. Disk encryption method used on the boot and data disks, defaults to GMEK. */ diskEncryption: string; /** * Optional. The size of the disk in GB attached to this VM instance, up to a maximum of 64000 GB (64 TB). If not specified, this defaults to 100. */ diskSizeGb: string; /** * Optional. Input only. Indicates the type of the disk. */ diskType: string; /** * Optional. Input only. The KMS key used to encrypt the disks, only applicable if disk_encryption is CMEK. Format: `projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}` Learn more about using your own encryption keys. */ kmsKey: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A GPU driver configuration */ interface GPUDriverConfigResponse { /** * Optional. Specify a custom Cloud Storage path where the GPU driver is stored. If not specified, we'll automatically choose from official GPU drivers. */ customGpuDriverPath: string; /** * Optional. Whether the end user authorizes Google Cloud to install GPU driver on this VM instance. If this field is empty or set to false, the GPU driver won't be installed. Only applicable to instances with GPUs. */ enableGpuDriver: boolean; } /** * The definition of how to configure a VM instance outside of Resources and Identity. */ interface GceSetupResponse { /** * Optional. The hardware accelerators used on this instance. If you use accelerators, make sure that your configuration has [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list). Currently supports only one accelerator configuration. */ acceleratorConfigs: outputs.notebooks.v2.AcceleratorConfigResponse[]; /** * Optional. The boot disk for the VM. */ bootDisk: outputs.notebooks.v2.BootDiskResponse; /** * Optional. Use a container image to start the notebook instance. */ containerImage: outputs.notebooks.v2.ContainerImageResponse; /** * Optional. Data disks attached to the VM instance. Currently supports only one data disk. */ dataDisks: outputs.notebooks.v2.DataDiskResponse[]; /** * Optional. If true, no external IP will be assigned to this VM instance. */ disablePublicIp: boolean; /** * Optional. Flag to enable ip forwarding or not, default false/off. https://cloud.google.com/vpc/docs/using-routes#canipforward */ enableIpForwarding: boolean; /** * Optional. Configuration for GPU drivers. */ gpuDriverConfig: outputs.notebooks.v2.GPUDriverConfigResponse; /** * Optional. The machine type of the VM instance. https://cloud.google.com/compute/docs/machine-resource */ machineType: string; /** * Optional. Custom metadata to apply to this instance. */ metadata: { [key: string]: string; }; /** * Optional. The network interfaces for the VM. Supports only one interface. */ networkInterfaces: outputs.notebooks.v2.NetworkInterfaceResponse[]; /** * Optional. The service account that serves as an identity for the VM instance. Currently supports only one service account. */ serviceAccounts: outputs.notebooks.v2.ServiceAccountResponse[]; /** * Optional. Shielded VM configuration. [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). */ shieldedInstanceConfig: outputs.notebooks.v2.ShieldedInstanceConfigResponse; /** * Optional. The Compute Engine tags to add to runtime (see [Tagging instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)). */ tags: string[]; /** * Optional. Use a Compute Engine VM image to start the notebook instance. */ vmImage: outputs.notebooks.v2.VmImageResponse; } /** * The definition of a network interface resource attached to a VM. */ interface NetworkInterfaceResponse { /** * Optional. The name of the VPC that this VM instance is in. Format: `projects/{project_id}/global/networks/{network_id}` */ network: string; /** * Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. */ nicType: string; /** * Optional. The name of the subnet that this VM instance is in. Format: `projects/{project_id}/regions/{region}/subnetworks/{subnetwork_id}` */ subnet: string; } /** * A service account that acts as an identity. */ interface ServiceAccountResponse { /** * Optional. Email address of the service account. */ email: string; /** * The list of scopes to be made available for this service account. Set by the CLH to https://www.googleapis.com/auth/cloud-platform */ scopes: string[]; } /** * A set of Shielded Instance options. See [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid. */ interface ShieldedInstanceConfigResponse { /** * Optional. Defines whether the VM instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the VM instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the VM instance is created. Enabled by default. */ enableIntegrityMonitoring: boolean; /** * Optional. Defines whether the VM instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default. */ enableSecureBoot: boolean; /** * Optional. Defines whether the VM instance has the vTPM enabled. Enabled by default. */ enableVtpm: boolean; } /** * The entry of VM image upgrade history. */ interface UpgradeHistoryEntryResponse { /** * Optional. Action. Rolloback or Upgrade. */ action: string; /** * Optional. The container image before this instance upgrade. */ containerImage: string; /** * Immutable. The time that this instance upgrade history entry is created. */ createTime: string; /** * Optional. The framework of this notebook instance. */ framework: string; /** * Optional. The snapshot of the boot disk of this notebook instance before upgrade. */ snapshot: string; /** * The state of this instance upgrade history entry. */ state: string; /** * Optional. Target VM Version, like m63. */ targetVersion: string; /** * Optional. The version of the notebook instance before this upgrade. */ version: string; /** * Optional. The VM image before this instance upgrade. */ vmImage: string; } /** * Definition of a custom Compute Engine virtual machine image for starting a notebook instance with the environment installed directly on the VM. */ interface VmImageResponse { /** * Optional. Use this VM image family to find the image; the newest image in this family will be used. */ family: string; /** * Optional. Use VM image name to find the image. */ name: string; /** * The name of the Google Cloud project that this VM image belongs to. Format: `{project_id}` */ project: string; } } } export declare namespace orgpolicy { namespace v2 { /** * Similar to PolicySpec but with an extra 'launch' field for launch reference. The PolicySpec here is specific for dry-run/darklaunch. */ interface GoogleCloudOrgpolicyV2AlternatePolicySpecResponse { /** * Reference to the launch that will be used while audit logging and to control the launch. Should be set only in the alternate policy. */ launch: string; /** * Specify constraint for configurations of Google Cloud resources. */ spec: outputs.orgpolicy.v2.GoogleCloudOrgpolicyV2PolicySpecResponse; } /** * A rule used to express this policy. */ interface GoogleCloudOrgpolicyV2PolicySpecPolicyRuleResponse { /** * Setting this to true means that all values are allowed. This field can be set only in policies for list constraints. */ allowAll: boolean; /** * A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr' must include from 1 to 10 subexpressions, joined by the "||" or "&&" operators. Each subexpression must be of the form "resource.matchTag('/tag_key_short_name, 'tag_value_short_name')". or "resource.matchTagId('tagKeys/key_id', 'tagValues/value_id')". where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: "resource.matchTag('123456789/environment, 'prod')". or "resource.matchTagId('tagKeys/123', 'tagValues/456')". */ condition: outputs.orgpolicy.v2.GoogleTypeExprResponse; /** * Setting this to true means that all values are denied. This field can be set only in policies for list constraints. */ denyAll: boolean; /** * If `true`, then the policy is enforced. If `false`, then any configuration is acceptable. This field can be set only in policies for boolean constraints. */ enforce: boolean; /** * List of values to be used for this policy rule. This field can be set only in policies for list constraints. */ values: outputs.orgpolicy.v2.GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValuesResponse; } /** * A message that holds specific allowed and denied values. This message can define specific values and subtrees of the Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a ":". Values prefixed with "is:" are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - `projects/` (for example, `projects/tokyo-rain-123`) - `folders/` (for example, `folders/1234`) - `organizations/` (for example, `organizations/1234`) The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. */ interface GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValuesResponse { /** * List of values allowed at this resource. */ allowedValues: string[]; /** * List of values denied at this resource. */ deniedValues: string[]; } /** * Defines a Google Cloud policy specification which is used to specify constraints for configurations of Google Cloud resources. */ interface GoogleCloudOrgpolicyV2PolicySpecResponse { /** * An opaque tag indicating the current version of the policy, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policy to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset. */ etag: string; /** * Determines the inheritance behavior for this policy. If `inherit_from_parent` is true, policy rules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this policy becomes the new root for evaluation. This field can be set only for policies which configure list constraints. */ inheritFromParent: boolean; /** * Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific constraint at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false. */ reset: boolean; /** * In policies for boolean constraints, the following requirements apply: - There must be one and only one policy rule where condition is unset. - Boolean policy rules with conditions must set `enforced` to the opposite of the policy rule without a condition. - During policy evaluation, policy rules with conditions that are true for a target resource take precedence. */ rules: outputs.orgpolicy.v2.GoogleCloudOrgpolicyV2PolicySpecPolicyRuleResponse[]; /** * The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that policy. */ updateTime: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface GoogleTypeExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace osconfig { namespace v1 { /** * Apt patching is completed by executing `apt-get update && apt-get upgrade`. Additional options can be set to control how this is executed. */ interface AptSettingsResponse { /** * List of packages to exclude from update. These packages will be excluded */ excludes: string[]; /** * An exclusive list of packages to be updated. These are the only packages that will be updated. If these packages are not installed, they will be ignored. This field cannot be specified with any other patch configuration fields. */ exclusivePackages: string[]; /** * By changing the type to DIST, the patching is performed using `apt-get dist-upgrade` instead. */ type: string; } /** * Common configurations for an ExecStep. */ interface ExecStepConfigResponse { /** * Defaults to [0]. A list of possible return values that the execution can return to indicate a success. */ allowedSuccessCodes: number[]; /** * A Cloud Storage object containing the executable. */ gcsObject: outputs.osconfig.v1.GcsObjectResponse; /** * The script interpreter to use to run the script. If no interpreter is specified the script will be executed directly, which will likely only succeed for scripts with [shebang lines] (https://en.wikipedia.org/wiki/Shebang_\(Unix\)). */ interpreter: string; /** * An absolute path to the executable on the VM. */ localPath: string; } /** * A step that runs an executable for a PatchJob. */ interface ExecStepResponse { /** * The ExecStepConfig for all Linux VMs targeted by the PatchJob. */ linuxExecStepConfig: outputs.osconfig.v1.ExecStepConfigResponse; /** * The ExecStepConfig for all Windows VMs targeted by the PatchJob. */ windowsExecStepConfig: outputs.osconfig.v1.ExecStepConfigResponse; } /** * Message encapsulating a value that can be either absolute ("fixed") or relative ("percent") to a value. */ interface FixedOrPercentResponse { /** * Specifies a fixed value. */ fixed: number; /** * Specifies the relative value defined as a percentage, which will be multiplied by a reference value. */ percent: number; } /** * Cloud Storage object representation. */ interface GcsObjectResponse { /** * Bucket of the Cloud Storage object. */ bucket: string; /** * Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change. */ generationNumber: string; /** * Name of the Cloud Storage object. */ object: string; } /** * Googet patching is performed by running `googet update`. */ interface GooSettingsResponse { } /** * Represents a monthly schedule. An example of a valid monthly schedule is "on the third Tuesday of the month" or "on the 15th of the month". */ interface MonthlyScheduleResponse { /** * One day of the month. 1-31 indicates the 1st to the 31st day. -1 indicates the last day of the month. Months without the target day will be skipped. For example, a schedule to run "every month on the 31st" will not run in February, April, June, etc. */ monthDay: number; /** * Week day in a month. */ weekDayOfMonth: outputs.osconfig.v1.WeekDayOfMonthResponse; } /** * VM inventory details. */ interface OSPolicyAssignmentInstanceFilterInventoryResponse { /** * The OS short name */ osShortName: string; /** * The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` An empty string matches all OS versions. */ osVersion: string; } /** * Filters to select target VMs for an assignment. If more than one filter criteria is specified below, a VM will be selected if and only if it satisfies all of them. */ interface OSPolicyAssignmentInstanceFilterResponse { /** * Target all VMs in the project. If true, no other criteria is permitted. */ all: boolean; /** * List of label sets used for VM exclusion. If the list has more than one label set, the VM is excluded if any of the label sets are applicable for the VM. */ exclusionLabels: outputs.osconfig.v1.OSPolicyAssignmentLabelSetResponse[]; /** * List of label sets used for VM inclusion. If the list has more than one `LabelSet`, the VM is included if any of the label sets are applicable for the VM. */ inclusionLabels: outputs.osconfig.v1.OSPolicyAssignmentLabelSetResponse[]; /** * List of inventories to select VMs. A VM is selected if its inventory data matches at least one of the following inventories. */ inventories: outputs.osconfig.v1.OSPolicyAssignmentInstanceFilterInventoryResponse[]; } /** * Message representing label set. * A label is a key value pair set for a VM. * A LabelSet is a set of labels. * Labels within a LabelSet are ANDed. In other words, a LabelSet is applicable for a VM only if it matches all the labels in the LabelSet. * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will only be applicable for those VMs with both labels present. */ interface OSPolicyAssignmentLabelSetResponse { /** * Labels are identified by key/value pairs in this map. A VM should contain all the key/value pairs specified in this map to be selected. */ labels: { [key: string]: string; }; } /** * Message to configure the rollout at the zonal level for the OS policy assignment. */ interface OSPolicyAssignmentRolloutResponse { /** * The maximum number (or percentage) of VMs per zone to disrupt at any given moment. */ disruptionBudget: outputs.osconfig.v1.FixedOrPercentResponse; /** * This determines the minimum duration of time to wait after the configuration changes are applied through the current rollout. A VM continues to count towards the `disruption_budget` at least until this duration of time has passed after configuration changes are applied. */ minWaitDuration: string; } /** * Filtering criteria to select VMs based on inventory details. */ interface OSPolicyInventoryFilterResponse { /** * The OS short name */ osShortName: string; /** * The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` An empty string matches all OS versions. */ osVersion: string; } /** * A file or script to execute. */ interface OSPolicyResourceExecResourceExecResponse { /** * Optional arguments to pass to the source during execution. */ args: string[]; /** * A remote or local file. */ file: outputs.osconfig.v1.OSPolicyResourceFileResponse; /** * The script interpreter to use. */ interpreter: string; /** * Only recorded for enforce Exec. Path to an output file (that is created by this Exec) whose content will be recorded in OSPolicyResourceCompliance after a successful run. Absence or failure to read this file will result in this ExecResource being non-compliant. Output file size is limited to 100K bytes. */ outputFilePath: string; /** * An inline script. The size of the script is limited to 32KiB. */ script: string; } /** * A resource that allows executing scripts on the VM. The `ExecResource` has 2 stages: `validate` and `enforce` and both stages accept a script as an argument to execute. When the `ExecResource` is applied by the agent, it first executes the script in the `validate` stage. The `validate` stage can signal that the `ExecResource` is already in the desired state by returning an exit code of `100`. If the `ExecResource` is not in the desired state, it should return an exit code of `101`. Any other exit code returned by this stage is considered an error. If the `ExecResource` is not in the desired state based on the exit code from the `validate` stage, the agent proceeds to execute the script from the `enforce` stage. If the `ExecResource` is already in the desired state, the `enforce` stage will not be run. Similar to `validate` stage, the `enforce` stage should return an exit code of `100` to indicate that the resource in now in its desired state. Any other exit code is considered an error. NOTE: An exit code of `100` was chosen over `0` (and `101` vs `1`) to have an explicit indicator of `in desired state`, `not in desired state` and errors. Because, for example, Powershell will always return an exit code of `0` unless an `exit` statement is provided in the script. So, for reasons of consistency and being explicit, exit codes `100` and `101` were chosen. */ interface OSPolicyResourceExecResourceResponse { /** * What to run to bring this resource into the desired state. An exit code of 100 indicates "success", any other exit code indicates a failure running enforce. */ enforce: outputs.osconfig.v1.OSPolicyResourceExecResourceExecResponse; /** * What to run to validate this resource is in the desired state. An exit code of 100 indicates "in desired state", and exit code of 101 indicates "not in desired state". Any other exit code indicates a failure running validate. */ validate: outputs.osconfig.v1.OSPolicyResourceExecResourceExecResponse; } /** * Specifies a file available as a Cloud Storage Object. */ interface OSPolicyResourceFileGcsResponse { /** * Bucket of the Cloud Storage object. */ bucket: string; /** * Generation number of the Cloud Storage object. */ generation: string; /** * Name of the Cloud Storage object. */ object: string; } /** * Specifies a file available via some URI. */ interface OSPolicyResourceFileRemoteResponse { /** * SHA256 checksum of the remote file. */ sha256Checksum: string; /** * URI from which to fetch the object. It should contain both the protocol and path following the format `{protocol}://{location}`. */ uri: string; } /** * A resource that manages the state of a file. */ interface OSPolicyResourceFileResourceResponse { /** * A a file with this content. The size of the content is limited to 32KiB. */ content: string; /** * A remote or local source. */ file: outputs.osconfig.v1.OSPolicyResourceFileResponse; /** * The absolute path of the file within the VM. */ path: string; /** * Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one bit corresponds to the execute permission. Default behavior is 755. Below are some examples of permissions and their associated values: read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 */ permissions: string; /** * Desired state of the file. */ state: string; } /** * A remote or local file. */ interface OSPolicyResourceFileResponse { /** * Defaults to false. When false, files are subject to validations based on the file type: Remote: A checksum must be specified. Cloud Storage: An object generation number must be specified. */ allowInsecure: boolean; /** * A Cloud Storage object. */ gcs: outputs.osconfig.v1.OSPolicyResourceFileGcsResponse; /** * A local path within the VM to use. */ localPath: string; /** * A generic remote file. */ remote: outputs.osconfig.v1.OSPolicyResourceFileRemoteResponse; } /** * Resource groups provide a mechanism to group OS policy resources. Resource groups enable OS policy authors to create a single OS policy to be applied to VMs running different operating Systems. When the OS policy is applied to a target VM, the appropriate resource group within the OS policy is selected based on the `OSFilter` specified within the resource group. */ interface OSPolicyResourceGroupResponse { /** * List of inventory filters for the resource group. The resources in this resource group are applied to the target VM if it satisfies at least one of the following inventory filters. For example, to apply this resource group to VMs running either `RHEL` or `CentOS` operating systems, specify 2 items for the list with following values: inventory_filters[0].os_short_name='rhel' and inventory_filters[1].os_short_name='centos' If the list is empty, this resource group will be applied to the target VM unconditionally. */ inventoryFilters: outputs.osconfig.v1.OSPolicyInventoryFilterResponse[]; /** * List of resources configured for this resource group. The resources are executed in the exact order specified here. */ resources: outputs.osconfig.v1.OSPolicyResourceResponse[]; } /** * A package managed by APT. - install: `apt-get update && apt-get -y install [name]` - remove: `apt-get -y remove [name]` */ interface OSPolicyResourcePackageResourceAPTResponse { /** * Package name. */ name: string; } /** * A deb package file. dpkg packages only support INSTALLED state. */ interface OSPolicyResourcePackageResourceDebResponse { /** * Whether dependencies should also be installed. - install when false: `dpkg -i package` - install when true: `apt-get update && apt-get -y install package.deb` */ pullDeps: boolean; /** * A deb package. */ source: outputs.osconfig.v1.OSPolicyResourceFileResponse; } /** * A package managed by GooGet. - install: `googet -noconfirm install package` - remove: `googet -noconfirm remove package` */ interface OSPolicyResourcePackageResourceGooGetResponse { /** * Package name. */ name: string; } /** * An MSI package. MSI packages only support INSTALLED state. */ interface OSPolicyResourcePackageResourceMSIResponse { /** * Additional properties to use during installation. This should be in the format of Property=Setting. Appended to the defaults of `ACTION=INSTALL REBOOT=ReallySuppress`. */ properties: string[]; /** * The MSI package. */ source: outputs.osconfig.v1.OSPolicyResourceFileResponse; } /** * An RPM package file. RPM packages only support INSTALLED state. */ interface OSPolicyResourcePackageResourceRPMResponse { /** * Whether dependencies should also be installed. - install when false: `rpm --upgrade --replacepkgs package.rpm` - install when true: `yum -y install package.rpm` or `zypper -y install package.rpm` */ pullDeps: boolean; /** * An rpm package. */ source: outputs.osconfig.v1.OSPolicyResourceFileResponse; } /** * A resource that manages a system package. */ interface OSPolicyResourcePackageResourceResponse { /** * A package managed by Apt. */ apt: outputs.osconfig.v1.OSPolicyResourcePackageResourceAPTResponse; /** * A deb package file. */ deb: outputs.osconfig.v1.OSPolicyResourcePackageResourceDebResponse; /** * The desired state the agent should maintain for this package. */ desiredState: string; /** * A package managed by GooGet. */ googet: outputs.osconfig.v1.OSPolicyResourcePackageResourceGooGetResponse; /** * An MSI package. */ msi: outputs.osconfig.v1.OSPolicyResourcePackageResourceMSIResponse; /** * An rpm package file. */ rpm: outputs.osconfig.v1.OSPolicyResourcePackageResourceRPMResponse; /** * A package managed by YUM. */ yum: outputs.osconfig.v1.OSPolicyResourcePackageResourceYUMResponse; /** * A package managed by Zypper. */ zypper: outputs.osconfig.v1.OSPolicyResourcePackageResourceZypperResponse; } /** * A package managed by YUM. - install: `yum -y install package` - remove: `yum -y remove package` */ interface OSPolicyResourcePackageResourceYUMResponse { /** * Package name. */ name: string; } /** * A package managed by Zypper. - install: `zypper -y install package` - remove: `zypper -y rm package` */ interface OSPolicyResourcePackageResourceZypperResponse { /** * Package name. */ name: string; } /** * Represents a single apt package repository. These will be added to a repo file that will be managed at `/etc/apt/sources.list.d/google_osconfig.list`. */ interface OSPolicyResourceRepositoryResourceAptRepositoryResponse { /** * Type of archive files in this repository. */ archiveType: string; /** * List of components for this repository. Must contain at least one item. */ components: string[]; /** * Distribution of this repository. */ distribution: string; /** * URI of the key file for this repository. The agent maintains a keyring at `/etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg`. */ gpgKey: string; /** * URI for this repository. */ uri: string; } /** * Represents a Goo package repository. These are added to a repo file that is managed at `C:/ProgramData/GooGet/repos/google_osconfig.repo`. */ interface OSPolicyResourceRepositoryResourceGooRepositoryResponse { /** * The name of the repository. */ name: string; /** * The url of the repository. */ url: string; } /** * A resource that manages a package repository. */ interface OSPolicyResourceRepositoryResourceResponse { /** * An Apt Repository. */ apt: outputs.osconfig.v1.OSPolicyResourceRepositoryResourceAptRepositoryResponse; /** * A Goo Repository. */ goo: outputs.osconfig.v1.OSPolicyResourceRepositoryResourceGooRepositoryResponse; /** * A Yum Repository. */ yum: outputs.osconfig.v1.OSPolicyResourceRepositoryResourceYumRepositoryResponse; /** * A Zypper Repository. */ zypper: outputs.osconfig.v1.OSPolicyResourceRepositoryResourceZypperRepositoryResponse; } /** * Represents a single yum package repository. These are added to a repo file that is managed at `/etc/yum.repos.d/google_osconfig.repo`. */ interface OSPolicyResourceRepositoryResourceYumRepositoryResponse { /** * The location of the repository directory. */ baseUrl: string; /** * The display name of the repository. */ displayName: string; /** * URIs of GPG keys. */ gpgKeys: string[]; } /** * Represents a single zypper package repository. These are added to a repo file that is managed at `/etc/zypp/repos.d/google_osconfig.repo`. */ interface OSPolicyResourceRepositoryResourceZypperRepositoryResponse { /** * The location of the repository directory. */ baseUrl: string; /** * The display name of the repository. */ displayName: string; /** * URIs of GPG keys. */ gpgKeys: string[]; } /** * An OS policy resource is used to define the desired state configuration and provides a specific functionality like installing/removing packages, executing a script etc. The system ensures that resources are always in their desired state by taking necessary actions if they have drifted from their desired state. */ interface OSPolicyResourceResponse { /** * Exec resource */ exec: outputs.osconfig.v1.OSPolicyResourceExecResourceResponse; /** * File resource */ file: outputs.osconfig.v1.OSPolicyResourceFileResourceResponse; /** * Package resource */ pkg: outputs.osconfig.v1.OSPolicyResourcePackageResourceResponse; /** * Package repository resource */ repository: outputs.osconfig.v1.OSPolicyResourceRepositoryResourceResponse; } /** * An OS policy defines the desired state configuration for a VM. */ interface OSPolicyResponse { /** * This flag determines the OS policy compliance status when none of the resource groups within the policy are applicable for a VM. Set this value to `true` if the policy needs to be reported as compliant even if the policy has nothing to validate or enforce. */ allowNoResourceGroupMatch: boolean; /** * Policy description. Length of the description is limited to 1024 characters. */ description: string; /** * Policy mode */ mode: string; /** * List of resource groups for the policy. For a particular VM, resource groups are evaluated in the order specified and the first resource group that is applicable is selected and the rest are ignored. If none of the resource groups are applicable for a VM, the VM is considered to be non-compliant w.r.t this policy. This behavior can be toggled by the flag `allow_no_resource_group_match` */ resourceGroups: outputs.osconfig.v1.OSPolicyResourceGroupResponse[]; } /** * Sets the time for a one time patch deployment. Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. */ interface OneTimeScheduleResponse { /** * The desired patch job execution time. */ executeTime: string; } /** * Patch configuration specifications. Contains details on how to apply the patch(es) to a VM instance. */ interface PatchConfigResponse { /** * Apt update settings. Use this setting to override the default `apt` patch rules. */ apt: outputs.osconfig.v1.AptSettingsResponse; /** * Goo update settings. Use this setting to override the default `goo` patch rules. */ goo: outputs.osconfig.v1.GooSettingsResponse; /** * Allows the patch job to run on Managed instance groups (MIGs). */ migInstancesAllowed: boolean; /** * The `ExecStep` to run after the patch update. */ postStep: outputs.osconfig.v1.ExecStepResponse; /** * The `ExecStep` to run before the patch update. */ preStep: outputs.osconfig.v1.ExecStepResponse; /** * Post-patch reboot settings. */ rebootConfig: string; /** * Windows update settings. Use this override the default windows patch rules. */ windowsUpdate: outputs.osconfig.v1.WindowsUpdateSettingsResponse; /** * Yum update settings. Use this setting to override the default `yum` patch rules. */ yum: outputs.osconfig.v1.YumSettingsResponse; /** * Zypper update settings. Use this setting to override the default `zypper` patch rules. */ zypper: outputs.osconfig.v1.ZypperSettingsResponse; } /** * Targets a group of VM instances by using their [assigned labels](https://cloud.google.com/compute/docs/labeling-resources). Labels are key-value pairs. A `GroupLabel` is a combination of labels that is used to target VMs for a patch job. For example, a patch job can target VMs that have the following `GroupLabel`: `{"env":"test", "app":"web"}`. This means that the patch job is applied to VMs that have both the labels `env=test` and `app=web`. */ interface PatchInstanceFilterGroupLabelResponse { /** * Compute Engine instance labels that must be present for a VM instance to be targeted by this filter. */ labels: { [key: string]: string; }; } /** * A filter to target VM instances for patching. The targeted VMs must meet all criteria specified. So if both labels and zones are specified, the patch job targets only VMs with those labels and in those zones. */ interface PatchInstanceFilterResponse { /** * Target all VM instances in the project. If true, no other criteria is permitted. */ all: boolean; /** * Targets VM instances matching ANY of these GroupLabels. This allows targeting of disparate groups of VM instances. */ groupLabels: outputs.osconfig.v1.PatchInstanceFilterGroupLabelResponse[]; /** * Targets VMs whose name starts with one of these prefixes. Similar to labels, this is another way to group VMs when targeting configs, for example prefix="prod-". */ instanceNamePrefixes: string[]; /** * Targets any of the VM instances specified. Instances are specified by their URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`, `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]` */ instances: string[]; /** * Targets VM instances in ANY of these zones. Leave empty to target VM instances in any zone. */ zones: string[]; } /** * Patch rollout configuration specifications. Contains details on the concurrency control when applying patch(es) to all targeted VMs. */ interface PatchRolloutResponse { /** * The maximum number (or percentage) of VMs per zone to disrupt at any given moment. The number of VMs calculated from multiplying the percentage by the total number of VMs in a zone is rounded up. During patching, a VM is considered disrupted from the time the agent is notified to begin until patching has completed. This disruption time includes the time to complete reboot and any post-patch steps. A VM contributes to the disruption budget if its patching operation fails either when applying the patches, running pre or post patch steps, or if it fails to respond with a success notification before timing out. VMs that are not running or do not have an active agent do not count toward this disruption budget. For zone-by-zone rollouts, if the disruption budget in a zone is exceeded, the patch job stops, because continuing to the next zone requires completion of the patch process in the previous zone. For example, if the disruption budget has a fixed value of `10`, and 8 VMs fail to patch in the current zone, the patch job continues to patch 2 VMs at a time until the zone is completed. When that zone is completed successfully, patching begins with 10 VMs at a time in the next zone. If 10 VMs in the next zone fail to patch, the patch job stops. */ disruptionBudget: outputs.osconfig.v1.FixedOrPercentResponse; /** * Mode of the patch rollout. */ mode: string; } /** * Sets the time for recurring patch deployments. */ interface RecurringScheduleResponse { /** * Optional. The end time at which a recurring patch deployment schedule is no longer active. */ endTime: string; /** * The frequency unit of this recurring schedule. */ frequency: string; /** * The time the last patch job ran successfully. */ lastExecuteTime: string; /** * Schedule with monthly executions. */ monthly: outputs.osconfig.v1.MonthlyScheduleResponse; /** * The time the next patch job is scheduled to run. */ nextExecuteTime: string; /** * Optional. The time that the recurring schedule becomes effective. Defaults to `create_time` of the patch deployment. */ startTime: string; /** * Time of the day to run a recurring deployment. */ timeOfDay: outputs.osconfig.v1.TimeOfDayResponse; /** * Defines the time zone that `time_of_day` is relative to. The rules for daylight saving time are determined by the chosen time zone. */ timeZone: outputs.osconfig.v1.TimeZoneResponse; /** * Schedule with weekly executions. */ weekly: outputs.osconfig.v1.WeeklyScheduleResponse; } /** * Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. */ interface TimeOfDayResponse { /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. */ hours: number; /** * Minutes of hour of day. Must be from 0 to 59. */ minutes: number; /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. */ nanos: number; /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds. */ seconds: number; } /** * Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). */ interface TimeZoneResponse { /** * Optional. IANA Time Zone Database version number, e.g. "2019a". */ version: string; } /** * Represents one week day in a month. An example is "the 4th Sunday". */ interface WeekDayOfMonthResponse { /** * A day of the week. */ dayOfWeek: string; /** * Optional. Represents the number of days before or after the given week day of month that the patch deployment is scheduled for. For example if `week_ordinal` and `day_of_week` values point to the second day of the month and this `day_offset` value is set to `3`, the patch deployment takes place three days after the second Tuesday of the month. If this value is negative, for example -5, the patches are deployed five days before before the second Tuesday of the month. Allowed values are in range [-30, 30]. */ dayOffset: number; /** * Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1 indicates the last week of the month. */ weekOrdinal: number; } /** * Represents a weekly schedule. */ interface WeeklyScheduleResponse { /** * Day of the week. */ dayOfWeek: string; } /** * Windows patching is performed using the Windows Update Agent. */ interface WindowsUpdateSettingsResponse { /** * Only apply updates of these windows update classifications. If empty, all updates are applied. */ classifications: string[]; /** * List of KBs to exclude from update. */ excludes: string[]; /** * An exclusive list of kbs to be updated. These are the only patches that will be updated. This field must not be used with other patch configurations. */ exclusivePatches: string[]; } /** * Yum patching is performed by executing `yum update`. Additional options can be set to control how this is executed. Note that not all settings are supported on all platforms. */ interface YumSettingsResponse { /** * List of packages to exclude from update. These packages are excluded by using the yum `--exclude` flag. */ excludes: string[]; /** * An exclusive list of packages to be updated. These are the only packages that will be updated. If these packages are not installed, they will be ignored. This field must not be specified with any other patch configuration fields. */ exclusivePackages: string[]; /** * Will cause patch to run `yum update-minimal` instead. */ minimal: boolean; /** * Adds the `--security` flag to `yum update`. Not supported on all platforms. */ security: boolean; } /** * Zypper patching is performed by running `zypper patch`. See also https://en.opensuse.org/SDB:Zypper_manual. */ interface ZypperSettingsResponse { /** * Install only patches with these categories. Common categories include security, recommended, and feature. */ categories: string[]; /** * List of patches to exclude from update. */ excludes: string[]; /** * An exclusive list of patches to be updated. These are the only patches that will be installed using 'zypper patch patch:' command. This field must not be used with any other patch configuration fields. */ exclusivePatches: string[]; /** * Install only patches with these severities. Common severities include critical, important, moderate, and low. */ severities: string[]; /** * Adds the `--with-optional` flag to `zypper patch`. */ withOptional: boolean; /** * Adds the `--with-update` flag, to `zypper patch`. */ withUpdate: boolean; } } namespace v1alpha { /** * Message encapsulating a value that can be either absolute ("fixed") or relative ("percent") to a value. */ interface FixedOrPercentResponse { /** * Specifies a fixed value. */ fixed: number; /** * Specifies the relative value defined as a percentage, which will be multiplied by a reference value. */ percent: number; } /** * VM inventory details. */ interface OSPolicyAssignmentInstanceFilterInventoryResponse { /** * The OS short name */ osShortName: string; /** * The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` An empty string matches all OS versions. */ osVersion: string; } /** * Filters to select target VMs for an assignment. If more than one filter criteria is specified below, a VM will be selected if and only if it satisfies all of them. */ interface OSPolicyAssignmentInstanceFilterResponse { /** * Target all VMs in the project. If true, no other criteria is permitted. */ all: boolean; /** * List of label sets used for VM exclusion. If the list has more than one label set, the VM is excluded if any of the label sets are applicable for the VM. */ exclusionLabels: outputs.osconfig.v1alpha.OSPolicyAssignmentLabelSetResponse[]; /** * List of label sets used for VM inclusion. If the list has more than one `LabelSet`, the VM is included if any of the label sets are applicable for the VM. */ inclusionLabels: outputs.osconfig.v1alpha.OSPolicyAssignmentLabelSetResponse[]; /** * List of inventories to select VMs. A VM is selected if its inventory data matches at least one of the following inventories. */ inventories: outputs.osconfig.v1alpha.OSPolicyAssignmentInstanceFilterInventoryResponse[]; /** * Deprecated. Use the `inventories` field instead. A VM is selected if it's OS short name matches with any of the values provided in this list. * * @deprecated Deprecated. Use the `inventories` field instead. A VM is selected if it's OS short name matches with any of the values provided in this list. */ osShortNames: string[]; } /** * Message representing label set. * A label is a key value pair set for a VM. * A LabelSet is a set of labels. * Labels within a LabelSet are ANDed. In other words, a LabelSet is applicable for a VM only if it matches all the labels in the LabelSet. * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will only be applicable for those VMs with both labels present. */ interface OSPolicyAssignmentLabelSetResponse { /** * Labels are identified by key/value pairs in this map. A VM should contain all the key/value pairs specified in this map to be selected. */ labels: { [key: string]: string; }; } /** * Message to configure the rollout at the zonal level for the OS policy assignment. */ interface OSPolicyAssignmentRolloutResponse { /** * The maximum number (or percentage) of VMs per zone to disrupt at any given moment. */ disruptionBudget: outputs.osconfig.v1alpha.FixedOrPercentResponse; /** * This determines the minimum duration of time to wait after the configuration changes are applied through the current rollout. A VM continues to count towards the `disruption_budget` at least until this duration of time has passed after configuration changes are applied. */ minWaitDuration: string; } /** * Filtering criteria to select VMs based on inventory details. */ interface OSPolicyInventoryFilterResponse { /** * The OS short name */ osShortName: string; /** * The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` An empty string matches all OS versions. */ osVersion: string; } /** * Filtering criteria to select VMs based on OS details. */ interface OSPolicyOSFilterResponse { /** * This should match OS short name emitted by the OS inventory agent. An empty value matches any OS. */ osShortName: string; /** * This value should match the version emitted by the OS inventory agent. Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` */ osVersion: string; } /** * A file or script to execute. */ interface OSPolicyResourceExecResourceExecResponse { /** * Optional arguments to pass to the source during execution. */ args: string[]; /** * A remote or local file. */ file: outputs.osconfig.v1alpha.OSPolicyResourceFileResponse; /** * The script interpreter to use. */ interpreter: string; /** * Only recorded for enforce Exec. Path to an output file (that is created by this Exec) whose content will be recorded in OSPolicyResourceCompliance after a successful run. Absence or failure to read this file will result in this ExecResource being non-compliant. Output file size is limited to 100K bytes. */ outputFilePath: string; /** * An inline script. The size of the script is limited to 32KiB. */ script: string; } /** * A resource that allows executing scripts on the VM. The `ExecResource` has 2 stages: `validate` and `enforce` and both stages accept a script as an argument to execute. When the `ExecResource` is applied by the agent, it first executes the script in the `validate` stage. The `validate` stage can signal that the `ExecResource` is already in the desired state by returning an exit code of `100`. If the `ExecResource` is not in the desired state, it should return an exit code of `101`. Any other exit code returned by this stage is considered an error. If the `ExecResource` is not in the desired state based on the exit code from the `validate` stage, the agent proceeds to execute the script from the `enforce` stage. If the `ExecResource` is already in the desired state, the `enforce` stage will not be run. Similar to `validate` stage, the `enforce` stage should return an exit code of `100` to indicate that the resource in now in its desired state. Any other exit code is considered an error. NOTE: An exit code of `100` was chosen over `0` (and `101` vs `1`) to have an explicit indicator of `in desired state`, `not in desired state` and errors. Because, for example, Powershell will always return an exit code of `0` unless an `exit` statement is provided in the script. So, for reasons of consistency and being explicit, exit codes `100` and `101` were chosen. */ interface OSPolicyResourceExecResourceResponse { /** * What to run to bring this resource into the desired state. An exit code of 100 indicates "success", any other exit code indicates a failure running enforce. */ enforce: outputs.osconfig.v1alpha.OSPolicyResourceExecResourceExecResponse; /** * What to run to validate this resource is in the desired state. An exit code of 100 indicates "in desired state", and exit code of 101 indicates "not in desired state". Any other exit code indicates a failure running validate. */ validate: outputs.osconfig.v1alpha.OSPolicyResourceExecResourceExecResponse; } /** * Specifies a file available as a Cloud Storage Object. */ interface OSPolicyResourceFileGcsResponse { /** * Bucket of the Cloud Storage object. */ bucket: string; /** * Generation number of the Cloud Storage object. */ generation: string; /** * Name of the Cloud Storage object. */ object: string; } /** * Specifies a file available via some URI. */ interface OSPolicyResourceFileRemoteResponse { /** * SHA256 checksum of the remote file. */ sha256Checksum: string; /** * URI from which to fetch the object. It should contain both the protocol and path following the format `{protocol}://{location}`. */ uri: string; } /** * A resource that manages the state of a file. */ interface OSPolicyResourceFileResourceResponse { /** * A a file with this content. The size of the content is limited to 32KiB. */ content: string; /** * A remote or local source. */ file: outputs.osconfig.v1alpha.OSPolicyResourceFileResponse; /** * The absolute path of the file within the VM. */ path: string; /** * Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one bit corresponds to the execute permission. Default behavior is 755. Below are some examples of permissions and their associated values: read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 */ permissions: string; /** * Desired state of the file. */ state: string; } /** * A remote or local file. */ interface OSPolicyResourceFileResponse { /** * Defaults to false. When false, files are subject to validations based on the file type: Remote: A checksum must be specified. Cloud Storage: An object generation number must be specified. */ allowInsecure: boolean; /** * A Cloud Storage object. */ gcs: outputs.osconfig.v1alpha.OSPolicyResourceFileGcsResponse; /** * A local path within the VM to use. */ localPath: string; /** * A generic remote file. */ remote: outputs.osconfig.v1alpha.OSPolicyResourceFileRemoteResponse; } /** * Resource groups provide a mechanism to group OS policy resources. Resource groups enable OS policy authors to create a single OS policy to be applied to VMs running different operating Systems. When the OS policy is applied to a target VM, the appropriate resource group within the OS policy is selected based on the `OSFilter` specified within the resource group. */ interface OSPolicyResourceGroupResponse { /** * List of inventory filters for the resource group. The resources in this resource group are applied to the target VM if it satisfies at least one of the following inventory filters. For example, to apply this resource group to VMs running either `RHEL` or `CentOS` operating systems, specify 2 items for the list with following values: inventory_filters[0].os_short_name='rhel' and inventory_filters[1].os_short_name='centos' If the list is empty, this resource group will be applied to the target VM unconditionally. */ inventoryFilters: outputs.osconfig.v1alpha.OSPolicyInventoryFilterResponse[]; /** * Deprecated. Use the `inventory_filters` field instead. Used to specify the OS filter for a resource group * * @deprecated Deprecated. Use the `inventory_filters` field instead. Used to specify the OS filter for a resource group */ osFilter: outputs.osconfig.v1alpha.OSPolicyOSFilterResponse; /** * List of resources configured for this resource group. The resources are executed in the exact order specified here. */ resources: outputs.osconfig.v1alpha.OSPolicyResourceResponse[]; } /** * A package managed by APT. - install: `apt-get update && apt-get -y install [name]` - remove: `apt-get -y remove [name]` */ interface OSPolicyResourcePackageResourceAPTResponse { /** * Package name. */ name: string; } /** * A deb package file. dpkg packages only support INSTALLED state. */ interface OSPolicyResourcePackageResourceDebResponse { /** * Whether dependencies should also be installed. - install when false: `dpkg -i package` - install when true: `apt-get update && apt-get -y install package.deb` */ pullDeps: boolean; /** * A deb package. */ source: outputs.osconfig.v1alpha.OSPolicyResourceFileResponse; } /** * A package managed by GooGet. - install: `googet -noconfirm install package` - remove: `googet -noconfirm remove package` */ interface OSPolicyResourcePackageResourceGooGetResponse { /** * Package name. */ name: string; } /** * An MSI package. MSI packages only support INSTALLED state. */ interface OSPolicyResourcePackageResourceMSIResponse { /** * Additional properties to use during installation. This should be in the format of Property=Setting. Appended to the defaults of `ACTION=INSTALL REBOOT=ReallySuppress`. */ properties: string[]; /** * The MSI package. */ source: outputs.osconfig.v1alpha.OSPolicyResourceFileResponse; } /** * An RPM package file. RPM packages only support INSTALLED state. */ interface OSPolicyResourcePackageResourceRPMResponse { /** * Whether dependencies should also be installed. - install when false: `rpm --upgrade --replacepkgs package.rpm` - install when true: `yum -y install package.rpm` or `zypper -y install package.rpm` */ pullDeps: boolean; /** * An rpm package. */ source: outputs.osconfig.v1alpha.OSPolicyResourceFileResponse; } /** * A resource that manages a system package. */ interface OSPolicyResourcePackageResourceResponse { /** * A package managed by Apt. */ apt: outputs.osconfig.v1alpha.OSPolicyResourcePackageResourceAPTResponse; /** * A deb package file. */ deb: outputs.osconfig.v1alpha.OSPolicyResourcePackageResourceDebResponse; /** * The desired state the agent should maintain for this package. */ desiredState: string; /** * A package managed by GooGet. */ googet: outputs.osconfig.v1alpha.OSPolicyResourcePackageResourceGooGetResponse; /** * An MSI package. */ msi: outputs.osconfig.v1alpha.OSPolicyResourcePackageResourceMSIResponse; /** * An rpm package file. */ rpm: outputs.osconfig.v1alpha.OSPolicyResourcePackageResourceRPMResponse; /** * A package managed by YUM. */ yum: outputs.osconfig.v1alpha.OSPolicyResourcePackageResourceYUMResponse; /** * A package managed by Zypper. */ zypper: outputs.osconfig.v1alpha.OSPolicyResourcePackageResourceZypperResponse; } /** * A package managed by YUM. - install: `yum -y install package` - remove: `yum -y remove package` */ interface OSPolicyResourcePackageResourceYUMResponse { /** * Package name. */ name: string; } /** * A package managed by Zypper. - install: `zypper -y install package` - remove: `zypper -y rm package` */ interface OSPolicyResourcePackageResourceZypperResponse { /** * Package name. */ name: string; } /** * Represents a single apt package repository. These will be added to a repo file that will be managed at `/etc/apt/sources.list.d/google_osconfig.list`. */ interface OSPolicyResourceRepositoryResourceAptRepositoryResponse { /** * Type of archive files in this repository. */ archiveType: string; /** * List of components for this repository. Must contain at least one item. */ components: string[]; /** * Distribution of this repository. */ distribution: string; /** * URI of the key file for this repository. The agent maintains a keyring at `/etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg`. */ gpgKey: string; /** * URI for this repository. */ uri: string; } /** * Represents a Goo package repository. These are added to a repo file that is managed at `C:/ProgramData/GooGet/repos/google_osconfig.repo`. */ interface OSPolicyResourceRepositoryResourceGooRepositoryResponse { /** * The name of the repository. */ name: string; /** * The url of the repository. */ url: string; } /** * A resource that manages a package repository. */ interface OSPolicyResourceRepositoryResourceResponse { /** * An Apt Repository. */ apt: outputs.osconfig.v1alpha.OSPolicyResourceRepositoryResourceAptRepositoryResponse; /** * A Goo Repository. */ goo: outputs.osconfig.v1alpha.OSPolicyResourceRepositoryResourceGooRepositoryResponse; /** * A Yum Repository. */ yum: outputs.osconfig.v1alpha.OSPolicyResourceRepositoryResourceYumRepositoryResponse; /** * A Zypper Repository. */ zypper: outputs.osconfig.v1alpha.OSPolicyResourceRepositoryResourceZypperRepositoryResponse; } /** * Represents a single yum package repository. These are added to a repo file that is managed at `/etc/yum.repos.d/google_osconfig.repo`. */ interface OSPolicyResourceRepositoryResourceYumRepositoryResponse { /** * The location of the repository directory. */ baseUrl: string; /** * The display name of the repository. */ displayName: string; /** * URIs of GPG keys. */ gpgKeys: string[]; } /** * Represents a single zypper package repository. These are added to a repo file that is managed at `/etc/zypp/repos.d/google_osconfig.repo`. */ interface OSPolicyResourceRepositoryResourceZypperRepositoryResponse { /** * The location of the repository directory. */ baseUrl: string; /** * The display name of the repository. */ displayName: string; /** * URIs of GPG keys. */ gpgKeys: string[]; } /** * An OS policy resource is used to define the desired state configuration and provides a specific functionality like installing/removing packages, executing a script etc. The system ensures that resources are always in their desired state by taking necessary actions if they have drifted from their desired state. */ interface OSPolicyResourceResponse { /** * Exec resource */ exec: outputs.osconfig.v1alpha.OSPolicyResourceExecResourceResponse; /** * File resource */ file: outputs.osconfig.v1alpha.OSPolicyResourceFileResourceResponse; /** * Package resource */ pkg: outputs.osconfig.v1alpha.OSPolicyResourcePackageResourceResponse; /** * Package repository resource */ repository: outputs.osconfig.v1alpha.OSPolicyResourceRepositoryResourceResponse; } /** * An OS policy defines the desired state configuration for a VM. */ interface OSPolicyResponse { /** * This flag determines the OS policy compliance status when none of the resource groups within the policy are applicable for a VM. Set this value to `true` if the policy needs to be reported as compliant even if the policy has nothing to validate or enforce. */ allowNoResourceGroupMatch: boolean; /** * Policy description. Length of the description is limited to 1024 characters. */ description: string; /** * Policy mode */ mode: string; /** * List of resource groups for the policy. For a particular VM, resource groups are evaluated in the order specified and the first resource group that is applicable is selected and the rest are ignored. If none of the resource groups are applicable for a VM, the VM is considered to be non-compliant w.r.t this policy. This behavior can be toggled by the flag `allow_no_resource_group_match` */ resourceGroups: outputs.osconfig.v1alpha.OSPolicyResourceGroupResponse[]; } } namespace v1beta { /** * Represents a single Apt package repository. This repository is added to a repo file that is stored at `/etc/apt/sources.list.d/google_osconfig.list`. */ interface AptRepositoryResponse { /** * Type of archive files in this repository. The default behavior is DEB. */ archiveType: string; /** * List of components for this repository. Must contain at least one item. */ components: string[]; /** * Distribution of this repository. */ distribution: string; /** * URI of the key file for this repository. The agent maintains a keyring at `/etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg` containing all the keys in any applied guest policy. */ gpgKey: string; /** * URI for this repository. */ uri: string; } /** * Apt patching is completed by executing `apt-get update && apt-get upgrade`. Additional options can be set to control how this is executed. */ interface AptSettingsResponse { /** * List of packages to exclude from update. These packages will be excluded */ excludes: string[]; /** * An exclusive list of packages to be updated. These are the only packages that will be updated. If these packages are not installed, they will be ignored. This field cannot be specified with any other patch configuration fields. */ exclusivePackages: string[]; /** * By changing the type to DIST, the patching is performed using `apt-get dist-upgrade` instead. */ type: string; } /** * Represents a group of VM intances that can be identified as having all these labels, for example "env=prod and app=web". */ interface AssignmentGroupLabelResponse { /** * Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. */ labels: { [key: string]: string; }; } /** * Defines the criteria for selecting VM Instances by OS type. */ interface AssignmentOsTypeResponse { /** * Targets VM instances with OS Inventory enabled and having the following OS architecture. */ osArchitecture: string; /** * Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". */ osShortName: string; /** * Targets VM instances with OS Inventory enabled and having the following following OS version. */ osVersion: string; } /** * An assignment represents the group or groups of VM instances that the policy applies to. If an assignment is empty, it applies to all VM instances. Otherwise, the targeted VM instances must meet all the criteria specified. So if both labels and zones are specified, the policy applies to VM instances with those labels and in those zones. */ interface AssignmentResponse { /** * Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, for example "env=prod or env=staging". */ groupLabels: outputs.osconfig.v1beta.AssignmentGroupLabelResponse[]; /** * Targets VM instances whose name starts with one of these prefixes. Like labels, this is another way to group VM instances when targeting configs, for example prefix="prod-". Only supported for project-level policies. */ instanceNamePrefixes: string[]; /** * Targets any of the instances specified. Instances are specified by their URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`. Instance targeting is uncommon and is supported to facilitate the management of changes by the instance or to target specific VM instances for development and testing. Only supported for project-level policies and must reference instances within this project. */ instances: string[]; /** * Targets VM instances matching at least one of the following OS types. VM instances must match all supplied criteria for a given OsType to be included. */ osTypes: outputs.osconfig.v1beta.AssignmentOsTypeResponse[]; /** * Targets instances in any of these zones. Leave empty to target instances in any zone. Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. */ zones: string[]; } /** * Common configurations for an ExecStep. */ interface ExecStepConfigResponse { /** * Defaults to [0]. A list of possible return values that the execution can return to indicate a success. */ allowedSuccessCodes: number[]; /** * A Google Cloud Storage object containing the executable. */ gcsObject: outputs.osconfig.v1beta.GcsObjectResponse; /** * The script interpreter to use to run the script. If no interpreter is specified the script will be executed directly, which will likely only succeed for scripts with [shebang lines] (https://en.wikipedia.org/wiki/Shebang_\(Unix\)). */ interpreter: string; /** * An absolute path to the executable on the VM. */ localPath: string; } /** * A step that runs an executable for a PatchJob. */ interface ExecStepResponse { /** * The ExecStepConfig for all Linux VMs targeted by the PatchJob. */ linuxExecStepConfig: outputs.osconfig.v1beta.ExecStepConfigResponse; /** * The ExecStepConfig for all Windows VMs targeted by the PatchJob. */ windowsExecStepConfig: outputs.osconfig.v1beta.ExecStepConfigResponse; } /** * Message encapsulating a value that can be either absolute ("fixed") or relative ("percent") to a value. */ interface FixedOrPercentResponse { /** * Specifies a fixed value. */ fixed: number; /** * Specifies the relative value defined as a percentage, which will be multiplied by a reference value. */ percent: number; } /** * Google Cloud Storage object representation. */ interface GcsObjectResponse { /** * Bucket of the Google Cloud Storage object. */ bucket: string; /** * Generation number of the Google Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change. */ generationNumber: string; /** * Name of the Google Cloud Storage object. */ object: string; } /** * Represents a Goo package repository. These is added to a repo file that is stored at C:/ProgramData/GooGet/repos/google_osconfig.repo. */ interface GooRepositoryResponse { /** * The name of the repository. */ name: string; /** * The url of the repository. */ url: string; } /** * Googet patching is performed by running `googet update`. */ interface GooSettingsResponse { } /** * Represents a monthly schedule. An example of a valid monthly schedule is "on the third Tuesday of the month" or "on the 15th of the month". */ interface MonthlyScheduleResponse { /** * One day of the month. 1-31 indicates the 1st to the 31st day. -1 indicates the last day of the month. Months without the target day will be skipped. For example, a schedule to run "every month on the 31st" will not run in February, April, June, etc. */ monthDay: number; /** * Week day in a month. */ weekDayOfMonth: outputs.osconfig.v1beta.WeekDayOfMonthResponse; } /** * Sets the time for a one time patch deployment. Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. */ interface OneTimeScheduleResponse { /** * The desired patch job execution time. */ executeTime: string; } /** * A package repository. */ interface PackageRepositoryResponse { /** * An Apt Repository. */ apt: outputs.osconfig.v1beta.AptRepositoryResponse; /** * A Goo Repository. */ goo: outputs.osconfig.v1beta.GooRepositoryResponse; /** * A Yum Repository. */ yum: outputs.osconfig.v1beta.YumRepositoryResponse; /** * A Zypper Repository. */ zypper: outputs.osconfig.v1beta.ZypperRepositoryResponse; } /** * Package is a reference to the software package to be installed or removed. The agent on the VM instance uses the system package manager to apply the config. These are the commands that the agent uses to install or remove packages. Apt install: `apt-get update && apt-get -y install package1 package2 package3` remove: `apt-get -y remove package1 package2 package3` Yum install: `yum -y install package1 package2 package3` remove: `yum -y remove package1 package2 package3` Zypper install: `zypper install package1 package2 package3` remove: `zypper rm package1 package2` Googet install: `googet -noconfirm install package1 package2 package3` remove: `googet -noconfirm remove package1 package2 package3` */ interface PackageResponse { /** * The desired_state the agent should maintain for this package. The default is to ensure the package is installed. */ desiredState: string; /** * Type of package manager that can be used to install this package. If a system does not have the package manager, the package is not installed or removed no error message is returned. By default, or if you specify `ANY`, the agent attempts to install and remove this package using the default package manager. This is useful when creating a policy that applies to different types of systems. The default behavior is ANY. */ manager: string; /** * The name of the package. A package is uniquely identified for conflict validation by checking the package name and the manager(s) that the package targets. */ name: string; } /** * Patch configuration specifications. Contains details on how to apply the patch(es) to a VM instance. */ interface PatchConfigResponse { /** * Apt update settings. Use this setting to override the default `apt` patch rules. */ apt: outputs.osconfig.v1beta.AptSettingsResponse; /** * Goo update settings. Use this setting to override the default `goo` patch rules. */ goo: outputs.osconfig.v1beta.GooSettingsResponse; /** * Allows the patch job to run on Managed instance groups (MIGs). */ migInstancesAllowed: boolean; /** * The `ExecStep` to run after the patch update. */ postStep: outputs.osconfig.v1beta.ExecStepResponse; /** * The `ExecStep` to run before the patch update. */ preStep: outputs.osconfig.v1beta.ExecStepResponse; /** * Post-patch reboot settings. */ rebootConfig: string; /** * Windows update settings. Use this override the default windows patch rules. */ windowsUpdate: outputs.osconfig.v1beta.WindowsUpdateSettingsResponse; /** * Yum update settings. Use this setting to override the default `yum` patch rules. */ yum: outputs.osconfig.v1beta.YumSettingsResponse; /** * Zypper update settings. Use this setting to override the default `zypper` patch rules. */ zypper: outputs.osconfig.v1beta.ZypperSettingsResponse; } /** * Represents a group of VMs that can be identified as having all these labels, for example "env=prod and app=web". */ interface PatchInstanceFilterGroupLabelResponse { /** * Compute Engine instance labels that must be present for a VM instance to be targeted by this filter. */ labels: { [key: string]: string; }; } /** * A filter to target VM instances for patching. The targeted VMs must meet all criteria specified. So if both labels and zones are specified, the patch job targets only VMs with those labels and in those zones. */ interface PatchInstanceFilterResponse { /** * Target all VM instances in the project. If true, no other criteria is permitted. */ all: boolean; /** * Targets VM instances matching at least one of these label sets. This allows targeting of disparate groups, for example "env=prod or env=staging". */ groupLabels: outputs.osconfig.v1beta.PatchInstanceFilterGroupLabelResponse[]; /** * Targets VMs whose name starts with one of these prefixes. Similar to labels, this is another way to group VMs when targeting configs, for example prefix="prod-". */ instanceNamePrefixes: string[]; /** * Targets any of the VM instances specified. Instances are specified by their URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`, `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]` */ instances: string[]; /** * Targets VM instances in ANY of these zones. Leave empty to target VM instances in any zone. */ zones: string[]; } /** * Patch rollout configuration specifications. Contains details on the concurrency control when applying patch(es) to all targeted VMs. */ interface PatchRolloutResponse { /** * The maximum number (or percentage) of VMs per zone to disrupt at any given moment. The number of VMs calculated from multiplying the percentage by the total number of VMs in a zone is rounded up. During patching, a VM is considered disrupted from the time the agent is notified to begin until patching has completed. This disruption time includes the time to complete reboot and any post-patch steps. A VM contributes to the disruption budget if its patching operation fails either when applying the patches, running pre or post patch steps, or if it fails to respond with a success notification before timing out. VMs that are not running or do not have an active agent do not count toward this disruption budget. For zone-by-zone rollouts, if the disruption budget in a zone is exceeded, the patch job stops, because continuing to the next zone requires completion of the patch process in the previous zone. For example, if the disruption budget has a fixed value of `10`, and 8 VMs fail to patch in the current zone, the patch job continues to patch 2 VMs at a time until the zone is completed. When that zone is completed successfully, patching begins with 10 VMs at a time in the next zone. If 10 VMs in the next zone fail to patch, the patch job stops. */ disruptionBudget: outputs.osconfig.v1beta.FixedOrPercentResponse; /** * Mode of the patch rollout. */ mode: string; } /** * Sets the time for recurring patch deployments. */ interface RecurringScheduleResponse { /** * Optional. The end time at which a recurring patch deployment schedule is no longer active. */ endTime: string; /** * The frequency unit of this recurring schedule. */ frequency: string; /** * The time the last patch job ran successfully. */ lastExecuteTime: string; /** * Schedule with monthly executions. */ monthly: outputs.osconfig.v1beta.MonthlyScheduleResponse; /** * The time the next patch job is scheduled to run. */ nextExecuteTime: string; /** * Optional. The time that the recurring schedule becomes effective. Defaults to `create_time` of the patch deployment. */ startTime: string; /** * Time of the day to run a recurring deployment. */ timeOfDay: outputs.osconfig.v1beta.TimeOfDayResponse; /** * Defines the time zone that `time_of_day` is relative to. The rules for daylight saving time are determined by the chosen time zone. */ timeZone: outputs.osconfig.v1beta.TimeZoneResponse; /** * Schedule with weekly executions. */ weekly: outputs.osconfig.v1beta.WeeklyScheduleResponse; } /** * Specifies an artifact available as a Google Cloud Storage object. */ interface SoftwareRecipeArtifactGcsResponse { /** * Bucket of the Google Cloud Storage object. Given an example URL: `https://storage.googleapis.com/my-bucket/foo/bar#1234567` this value would be `my-bucket`. */ bucket: string; /** * Must be provided if allow_insecure is false. Generation number of the Google Cloud Storage object. `https://storage.googleapis.com/my-bucket/foo/bar#1234567` this value would be `1234567`. */ generation: string; /** * Name of the Google Cloud Storage object. As specified [here] (https://cloud.google.com/storage/docs/naming#objectnames) Given an example URL: `https://storage.googleapis.com/my-bucket/foo/bar#1234567` this value would be `foo/bar`. */ object: string; } /** * Specifies an artifact available via some URI. */ interface SoftwareRecipeArtifactRemoteResponse { /** * Must be provided if `allow_insecure` is `false`. SHA256 checksum in hex format, to compare to the checksum of the artifact. If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any of the steps. */ checksum: string; /** * URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. */ uri: string; } /** * Specifies a resource to be used in the recipe. */ interface SoftwareRecipeArtifactResponse { /** * Defaults to false. When false, recipes are subject to validations based on the artifact type: Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. GCS: An object generation number must be specified. */ allowInsecure: boolean; /** * A Google Cloud Storage artifact. */ gcs: outputs.osconfig.v1beta.SoftwareRecipeArtifactGcsResponse; /** * A generic remote artifact. */ remote: outputs.osconfig.v1beta.SoftwareRecipeArtifactRemoteResponse; } /** * A software recipe is a set of instructions for installing and configuring a piece of software. It consists of a set of artifacts that are downloaded, and a set of steps that install, configure, and/or update the software. Recipes support installing and updating software from artifacts in the following formats: Zip archive, Tar archive, Windows MSI, Debian package, and RPM package. Additionally, recipes support executing a script (either defined in a file or directly in this api) in bash, sh, cmd, and powershell. Updating a software recipe If a recipe is assigned to an instance and there is a recipe with the same name but a lower version already installed and the assigned state of the recipe is `UPDATED`, then the recipe is updated to the new version. Script Working Directories Each script or execution step is run in its own temporary directory which is deleted after completing the step. */ interface SoftwareRecipeResponse { /** * Resources available to be used in the steps in the recipe. */ artifacts: outputs.osconfig.v1beta.SoftwareRecipeArtifactResponse[]; /** * Default is INSTALLED. The desired state the agent should maintain for this recipe. INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, if a higher version of the recipe is assigned to this instance. REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. */ desiredState: string; /** * Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. Any steps taken (including partially completed steps) are not rolled back. */ installSteps: outputs.osconfig.v1beta.SoftwareRecipeStepResponse[]; /** * Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. Names are also used to identify resources which helps to determine whether guest policies have conflicts. This means that requests to create multiple recipes with the same name and version are rejected since they could potentially have conflicting assignments. */ name: string; /** * Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. Any steps taken (including partially completed steps) are not rolled back. */ updateSteps: outputs.osconfig.v1beta.SoftwareRecipeStepResponse[]; /** * The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). */ version: string; } /** * Copies the artifact to the specified path on the instance. */ interface SoftwareRecipeStepCopyFileResponse { /** * The id of the relevant artifact in the recipe. */ artifactId: string; /** * The absolute path on the instance to put the file. */ destination: string; /** * Whether to allow this step to overwrite existing files. If this is false and the file already exists the file is not overwritten and the step is considered a success. Defaults to false. */ overwrite: boolean; /** * Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one bit corresponds to the execute permission. Default behavior is 755. Below are some examples of permissions and their associated values: read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 */ permissions: string; } /** * Executes an artifact or local file. */ interface SoftwareRecipeStepExecFileResponse { /** * Defaults to [0]. A list of possible return values that the program can return to indicate a success. */ allowedExitCodes: number[]; /** * Arguments to be passed to the provided executable. */ args: string[]; /** * The id of the relevant artifact in the recipe. */ artifactId: string; /** * The absolute path of the file on the local filesystem. */ localPath: string; } /** * Extracts an archive of the type specified in the specified directory. */ interface SoftwareRecipeStepExtractArchiveResponse { /** * The id of the relevant artifact in the recipe. */ artifactId: string; /** * Directory to extract archive to. Defaults to `/` on Linux or `C:\` on Windows. */ destination: string; /** * The type of the archive to extract. */ type: string; } /** * Installs a deb via dpkg. */ interface SoftwareRecipeStepInstallDpkgResponse { /** * The id of the relevant artifact in the recipe. */ artifactId: string; } /** * Installs an MSI file. */ interface SoftwareRecipeStepInstallMsiResponse { /** * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] */ allowedExitCodes: number[]; /** * The id of the relevant artifact in the recipe. */ artifactId: string; /** * The flags to use when installing the MSI defaults to ["/i"] (i.e. the install flag). */ flags: string[]; } /** * Installs an rpm file via the rpm utility. */ interface SoftwareRecipeStepInstallRpmResponse { /** * The id of the relevant artifact in the recipe. */ artifactId: string; } /** * An action that can be taken as part of installing or updating a recipe. */ interface SoftwareRecipeStepResponse { /** * Extracts an archive into the specified directory. */ archiveExtraction: outputs.osconfig.v1beta.SoftwareRecipeStepExtractArchiveResponse; /** * Installs a deb file via dpkg. */ dpkgInstallation: outputs.osconfig.v1beta.SoftwareRecipeStepInstallDpkgResponse; /** * Copies a file onto the instance. */ fileCopy: outputs.osconfig.v1beta.SoftwareRecipeStepCopyFileResponse; /** * Executes an artifact or local file. */ fileExec: outputs.osconfig.v1beta.SoftwareRecipeStepExecFileResponse; /** * Installs an MSI file. */ msiInstallation: outputs.osconfig.v1beta.SoftwareRecipeStepInstallMsiResponse; /** * Installs an rpm file via the rpm utility. */ rpmInstallation: outputs.osconfig.v1beta.SoftwareRecipeStepInstallRpmResponse; /** * Runs commands in a shell. */ scriptRun: outputs.osconfig.v1beta.SoftwareRecipeStepRunScriptResponse; } /** * Runs a script through an interpreter. */ interface SoftwareRecipeStepRunScriptResponse { /** * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] */ allowedExitCodes: number[]; /** * The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, which likely only succeed for scripts with [shebang lines](https://en.wikipedia.org/wiki/Shebang_\(Unix\)). */ interpreter: string; /** * The shell script to be executed. */ script: string; } /** * Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. */ interface TimeOfDayResponse { /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. */ hours: number; /** * Minutes of hour of day. Must be from 0 to 59. */ minutes: number; /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. */ nanos: number; /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds. */ seconds: number; } /** * Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). */ interface TimeZoneResponse { /** * Optional. IANA Time Zone Database version number, e.g. "2019a". */ version: string; } /** * Represents one week day in a month. An example is "the 4th Sunday". */ interface WeekDayOfMonthResponse { /** * A day of the week. */ dayOfWeek: string; /** * Optional. Represents the number of days before or after the given week day of month that the patch deployment is scheduled for. For example if `week_ordinal` and `day_of_week` values point to the second day of the month and this `day_offset` value is set to `3`, the patch deployment takes place three days after the second Tuesday of the month. If this value is negative, for example -5, the patches are deployed five days before before the second Tuesday of the month. Allowed values are in range [-30, 30]. */ dayOffset: number; /** * Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1 indicates the last week of the month. */ weekOrdinal: number; } /** * Represents a weekly schedule. */ interface WeeklyScheduleResponse { /** * Day of the week. */ dayOfWeek: string; } /** * Windows patching is performed using the Windows Update Agent. */ interface WindowsUpdateSettingsResponse { /** * Only apply updates of these windows update classifications. If empty, all updates are applied. */ classifications: string[]; /** * List of KBs to exclude from update. */ excludes: string[]; /** * An exclusive list of kbs to be updated. These are the only patches that will be updated. This field must not be used with other patch configurations. */ exclusivePatches: string[]; } /** * Represents a single Yum package repository. This repository is added to a repo file that is stored at `/etc/yum.repos.d/google_osconfig.repo`. */ interface YumRepositoryResponse { /** * The location of the repository directory. */ baseUrl: string; /** * The display name of the repository. */ displayName: string; /** * URIs of GPG keys. */ gpgKeys: string[]; } /** * Yum patching is performed by executing `yum update`. Additional options can be set to control how this is executed. Note that not all settings are supported on all platforms. */ interface YumSettingsResponse { /** * List of packages to exclude from update. These packages are excluded by using the yum `--exclude` flag. */ excludes: string[]; /** * An exclusive list of packages to be updated. These are the only packages that will be updated. If these packages are not installed, they will be ignored. This field must not be specified with any other patch configuration fields. */ exclusivePackages: string[]; /** * Will cause patch to run `yum update-minimal` instead. */ minimal: boolean; /** * Adds the `--security` flag to `yum update`. Not supported on all platforms. */ security: boolean; } /** * Represents a single Zypper package repository. This repository is added to a repo file that is stored at `/etc/zypp/repos.d/google_osconfig.repo`. */ interface ZypperRepositoryResponse { /** * The location of the repository directory. */ baseUrl: string; /** * The display name of the repository. */ displayName: string; /** * URIs of GPG keys. */ gpgKeys: string[]; } /** * Zypper patching is performed by running `zypper patch`. See also https://en.opensuse.org/SDB:Zypper_manual. */ interface ZypperSettingsResponse { /** * Install only patches with these categories. Common categories include security, recommended, and feature. */ categories: string[]; /** * List of patches to exclude from update. */ excludes: string[]; /** * An exclusive list of patches to be updated. These are the only patches that will be installed using 'zypper patch patch:' command. This field must not be used with any other patch configuration fields. */ exclusivePatches: string[]; /** * Install only patches with these severities. Common severities include critical, important, moderate, and low. */ severities: string[]; /** * Adds the `--with-optional` flag to `zypper patch`. */ withOptional: boolean; /** * Adds the `--with-update` flag, to `zypper patch`. */ withUpdate: boolean; } } } export declare namespace policysimulator { namespace v1 { /** * The configuration used for a Replay. */ interface GoogleCloudPolicysimulatorV1ReplayConfigResponse { /** * The logs to use as input for the Replay. */ logSource: string; /** * A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay. */ policyOverlay: { [key: string]: string; }; } /** * Summary statistics about the replayed log entries. */ interface GoogleCloudPolicysimulatorV1ReplayResultsSummaryResponse { /** * The number of replayed log entries with a difference between baseline and simulated policies. */ differenceCount: number; /** * The number of log entries that could not be replayed. */ errorCount: number; /** * The total number of log entries replayed. */ logCount: number; /** * The date of the newest log entry replayed. */ newestDate: outputs.policysimulator.v1.GoogleTypeDateResponse; /** * The date of the oldest log entry replayed. */ oldestDate: outputs.policysimulator.v1.GoogleTypeDateResponse; /** * The number of replayed log entries with no difference between baseline and simulated policies. */ unchangedCount: number; } /** * Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp */ interface GoogleTypeDateResponse { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day: number; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month: number; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year: number; } } namespace v1alpha { /** * The configuration used for a Replay. */ interface GoogleCloudPolicysimulatorV1alphaReplayConfigResponse { /** * The logs to use as input for the Replay. */ logSource: string; /** * A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay. */ policyOverlay: { [key: string]: string; }; } /** * Summary statistics about the replayed log entries. */ interface GoogleCloudPolicysimulatorV1alphaReplayResultsSummaryResponse { /** * The number of replayed log entries with a difference between baseline and simulated policies. */ differenceCount: number; /** * The number of log entries that could not be replayed. */ errorCount: number; /** * The total number of log entries replayed. */ logCount: number; /** * The date of the newest log entry replayed. */ newestDate: outputs.policysimulator.v1alpha.GoogleTypeDateResponse; /** * The date of the oldest log entry replayed. */ oldestDate: outputs.policysimulator.v1alpha.GoogleTypeDateResponse; /** * The number of replayed log entries with no difference between baseline and simulated policies. */ unchangedCount: number; } /** * Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp */ interface GoogleTypeDateResponse { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day: number; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month: number; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year: number; } } namespace v1beta { /** * The configuration used for a Replay. */ interface GoogleCloudPolicysimulatorV1betaReplayConfigResponse { /** * The logs to use as input for the Replay. */ logSource: string; /** * A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay. */ policyOverlay: { [key: string]: string; }; } /** * Summary statistics about the replayed log entries. */ interface GoogleCloudPolicysimulatorV1betaReplayResultsSummaryResponse { /** * The number of replayed log entries with a difference between baseline and simulated policies. */ differenceCount: number; /** * The number of log entries that could not be replayed. */ errorCount: number; /** * The total number of log entries replayed. */ logCount: number; /** * The date of the newest log entry replayed. */ newestDate: outputs.policysimulator.v1beta.GoogleTypeDateResponse; /** * The date of the oldest log entry replayed. */ oldestDate: outputs.policysimulator.v1beta.GoogleTypeDateResponse; /** * The number of replayed log entries with no difference between baseline and simulated policies. */ unchangedCount: number; } /** * Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp */ interface GoogleTypeDateResponse { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day: number; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month: number; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year: number; } } namespace v1beta1 { /** * The configuration used for a Replay. */ interface GoogleCloudPolicysimulatorV1beta1ReplayConfigResponse { /** * The logs to use as input for the Replay. */ logSource: string; /** * A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay. */ policyOverlay: { [key: string]: string; }; } /** * Summary statistics about the replayed log entries. */ interface GoogleCloudPolicysimulatorV1beta1ReplayResultsSummaryResponse { /** * The number of replayed log entries with a difference between baseline and simulated policies. */ differenceCount: number; /** * The number of log entries that could not be replayed. */ errorCount: number; /** * The total number of log entries replayed. */ logCount: number; /** * The date of the newest log entry replayed. */ newestDate: outputs.policysimulator.v1beta1.GoogleTypeDateResponse; /** * The date of the oldest log entry replayed. */ oldestDate: outputs.policysimulator.v1beta1.GoogleTypeDateResponse; /** * The number of replayed log entries with no difference between baseline and simulated policies. */ unchangedCount: number; } /** * Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp */ interface GoogleTypeDateResponse { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day: number; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month: number; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year: number; } } } export declare namespace privateca { namespace v1 { /** * URLs where a CertificateAuthority will publish content. */ interface AccessUrlsResponse { /** * The URL where this CertificateAuthority's CA certificate is published. This will only be set for CAs that have been activated. */ caCertificateAccessUrl: string; /** * The URLs where this CertificateAuthority's CRLs are published. This will only be set for CAs that have been activated. */ crlAccessUrls: string[]; } /** * Describes a "type" of key that may be used in a Certificate issued from a CaPool. Note that a single AllowedKeyType may refer to either a fully-qualified key algorithm, such as RSA 4096, or a family of key algorithms, such as any RSA key. */ interface AllowedKeyTypeResponse { /** * Represents an allowed Elliptic Curve key type. */ ellipticCurve: outputs.privateca.v1.EcKeyTypeResponse; /** * Represents an allowed RSA key type. */ rsa: outputs.privateca.v1.RsaKeyTypeResponse; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.privateca.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.privateca.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Describes values that are relevant in a CA certificate. */ interface CaOptionsResponse { /** * Optional. Refers to the "CA" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate. */ isCa: boolean; /** * Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate. */ maxIssuerPathLength: number; } /** * A CertificateConfig describes an X.509 certificate or CSR that is to be created, as an alternative to using ASN.1. */ interface CertificateConfigResponse { /** * Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR. */ publicKey: outputs.privateca.v1.PublicKeyResponse; /** * Specifies some of the values in a certificate that are related to the subject. */ subjectConfig: outputs.privateca.v1.SubjectConfigResponse; /** * Describes how some of the technical X.509 fields in a certificate should be populated. */ x509Config: outputs.privateca.v1.X509ParametersResponse; } /** * A CertificateDescription describes an X.509 certificate or CSR that has been issued, as an alternative to using ASN.1 / X.509. */ interface CertificateDescriptionResponse { /** * Describes lists of issuer CA certificate URLs that appear in the "Authority Information Access" extension in the certificate. */ aiaIssuingCertificateUrls: string[]; /** * Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1 */ authorityKeyId: outputs.privateca.v1.KeyIdResponse; /** * The hash of the x.509 certificate. */ certFingerprint: outputs.privateca.v1.CertificateFingerprintResponse; /** * Describes a list of locations to obtain CRL information, i.e. the DistributionPoint.fullName described by https://tools.ietf.org/html/rfc5280#section-4.2.1.13 */ crlDistributionPoints: string[]; /** * The public key that corresponds to an issued certificate. */ publicKey: outputs.privateca.v1.PublicKeyResponse; /** * Describes some of the values in a certificate that are related to the subject and lifetime. */ subjectDescription: outputs.privateca.v1.SubjectDescriptionResponse; /** * Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2. */ subjectKeyId: outputs.privateca.v1.KeyIdResponse; /** * Describes some of the technical X.509 fields in a certificate. */ x509Description: outputs.privateca.v1.X509ParametersResponse; } /** * Describes a set of X.509 extensions that may be part of some certificate issuance controls. */ interface CertificateExtensionConstraintsResponse { /** * Optional. A set of ObjectIds identifying custom X.509 extensions. Will be combined with known_extensions to determine the full set of X.509 extensions. */ additionalExtensions: outputs.privateca.v1.ObjectIdResponse[]; /** * Optional. A set of named X.509 extensions. Will be combined with additional_extensions to determine the full set of X.509 extensions. */ knownExtensions: string[]; } /** * A group of fingerprints for the x509 certificate. */ interface CertificateFingerprintResponse { /** * The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate. */ sha256Hash: string; } /** * Describes constraints on a Certificate's Subject and SubjectAltNames. */ interface CertificateIdentityConstraintsResponse { /** * If this is true, the SubjectAltNames extension may be copied from a certificate request into the signed certificate. Otherwise, the requested SubjectAltNames will be discarded. */ allowSubjectAltNamesPassthrough: boolean; /** * If this is true, the Subject field may be copied from a certificate request into the signed certificate. Otherwise, the requested Subject will be discarded. */ allowSubjectPassthrough: boolean; /** * Optional. A CEL expression that may be used to validate the resolved X.509 Subject and/or Subject Alternative Name before a certificate is signed. To see the full allowed syntax and some examples, see https://cloud.google.com/certificate-authority-service/docs/using-cel */ celExpression: outputs.privateca.v1.ExprResponse; } /** * Describes an Elliptic Curve key that may be used in a Certificate issued from a CaPool. */ interface EcKeyTypeResponse { /** * Optional. A signature algorithm that must be used. If this is omitted, any EC-based signature algorithm will be allowed. */ signatureAlgorithm: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. */ interface ExtendedKeyUsageOptionsResponse { /** * Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as "TLS WWW client authentication", though regularly used for non-WWW TLS. */ clientAuth: boolean; /** * Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as "Signing of downloadable executable code client authentication". */ codeSigning: boolean; /** * Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as "Email protection". */ emailProtection: boolean; /** * Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as "Signing OCSP responses". */ ocspSigning: boolean; /** * Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as "TLS WWW server authentication", though regularly used for non-WWW TLS. */ serverAuth: boolean; /** * Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as "Binding the hash of an object to a time". */ timeStamping: boolean; } /** * IssuanceModes specifies the allowed ways in which Certificates may be requested from this CaPool. */ interface IssuanceModesResponse { /** * Optional. When true, allows callers to create Certificates by specifying a CertificateConfig. */ allowConfigBasedIssuance: boolean; /** * Optional. When true, allows callers to create Certificates by specifying a CSR. */ allowCsrBasedIssuance: boolean; } /** * Defines controls over all certificate issuance within a CaPool. */ interface IssuancePolicyResponse { /** * Optional. If specified, then only methods allowed in the IssuanceModes may be used to issue Certificates. */ allowedIssuanceModes: outputs.privateca.v1.IssuanceModesResponse; /** * Optional. If any AllowedKeyType is specified, then the certificate request's public key must match one of the key types listed here. Otherwise, any key may be used. */ allowedKeyTypes: outputs.privateca.v1.AllowedKeyTypeResponse[]; /** * Optional. A set of X.509 values that will be applied to all certificates issued through this CaPool. If a certificate request includes conflicting values for the same properties, they will be overwritten by the values defined here. If a certificate request uses a CertificateTemplate that defines conflicting predefined_values for the same properties, the certificate issuance request will fail. */ baselineValues: outputs.privateca.v1.X509ParametersResponse; /** * Optional. Describes constraints on identities that may appear in Certificates issued through this CaPool. If this is omitted, then this CaPool will not add restrictions on a certificate's identity. */ identityConstraints: outputs.privateca.v1.CertificateIdentityConstraintsResponse; /** * Optional. The maximum lifetime allowed for issued Certificates. Note that if the issuing CertificateAuthority expires before a Certificate's requested maximum_lifetime, the effective lifetime will be explicitly truncated to match it. */ maximumLifetime: string; /** * Optional. Describes the set of X.509 extensions that may appear in a Certificate issued through this CaPool. If a certificate request sets extensions that don't appear in the passthrough_extensions, those extensions will be dropped. If a certificate request uses a CertificateTemplate with predefined_values that don't appear here, the certificate issuance request will fail. If this is omitted, then this CaPool will not add restrictions on a certificate's X.509 extensions. These constraints do not apply to X.509 extensions set in this CaPool's baseline_values. */ passthroughExtensions: outputs.privateca.v1.CertificateExtensionConstraintsResponse; } /** * A KeyId identifies a specific public key, usually by hashing the public key. */ interface KeyIdResponse { /** * Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key. */ keyId: string; } /** * KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. */ interface KeyUsageOptionsResponse { /** * The key may be used to sign certificates. */ certSign: boolean; /** * The key may be used for cryptographic commitments. Note that this may also be referred to as "non-repudiation". */ contentCommitment: boolean; /** * The key may be used sign certificate revocation lists. */ crlSign: boolean; /** * The key may be used to encipher data. */ dataEncipherment: boolean; /** * The key may be used to decipher only. */ decipherOnly: boolean; /** * The key may be used for digital signatures. */ digitalSignature: boolean; /** * The key may be used to encipher only. */ encipherOnly: boolean; /** * The key may be used in a key agreement protocol. */ keyAgreement: boolean; /** * The key may be used to encipher other keys. */ keyEncipherment: boolean; } /** * A KeyUsage describes key usage values that may appear in an X.509 certificate. */ interface KeyUsageResponse { /** * Describes high-level ways in which a key may be used. */ baseKeyUsage: outputs.privateca.v1.KeyUsageOptionsResponse; /** * Detailed scenarios in which a key may be used. */ extendedKeyUsage: outputs.privateca.v1.ExtendedKeyUsageOptionsResponse; /** * Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message. */ unknownExtendedKeyUsages: outputs.privateca.v1.ObjectIdResponse[]; } /** * A Cloud KMS key configuration that a CertificateAuthority will use. */ interface KeyVersionSpecResponse { /** * The algorithm to use for creating a managed Cloud KMS key for a for a simplified experience. All managed keys will be have their ProtectionLevel as `HSM`. */ algorithm: string; /** * The resource name for an existing Cloud KMS CryptoKeyVersion in the format `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. This option enables full flexibility in the key's capabilities and properties. */ cloudKmsKeyVersion: string; } /** * Describes the X.509 name constraints extension, per https://tools.ietf.org/html/rfc5280#section-4.2.1.10 */ interface NameConstraintsResponse { /** * Indicates whether or not the name constraints are marked critical. */ critical: boolean; /** * Contains excluded DNS names. Any DNS name that can be constructed by simply adding zero or more labels to the left-hand side of the name satisfies the name constraint. For example, `example.com`, `www.example.com`, `www.sub.example.com` would satisfy `example.com` while `example1.com` does not. */ excludedDnsNames: string[]; /** * Contains the excluded email addresses. The value can be a particular email address, a hostname to indicate all email addresses on that host or a domain with a leading period (e.g. `.example.com`) to indicate all email addresses in that domain. */ excludedEmailAddresses: string[]; /** * Contains the excluded IP ranges. For IPv4 addresses, the ranges are expressed using CIDR notation as specified in RFC 4632. For IPv6 addresses, the ranges are expressed in similar encoding as IPv4 addresses. */ excludedIpRanges: string[]; /** * Contains the excluded URIs that apply to the host part of the name. The value can be a hostname or a domain with a leading period (like `.example.com`) */ excludedUris: string[]; /** * Contains permitted DNS names. Any DNS name that can be constructed by simply adding zero or more labels to the left-hand side of the name satisfies the name constraint. For example, `example.com`, `www.example.com`, `www.sub.example.com` would satisfy `example.com` while `example1.com` does not. */ permittedDnsNames: string[]; /** * Contains the permitted email addresses. The value can be a particular email address, a hostname to indicate all email addresses on that host or a domain with a leading period (e.g. `.example.com`) to indicate all email addresses in that domain. */ permittedEmailAddresses: string[]; /** * Contains the permitted IP ranges. For IPv4 addresses, the ranges are expressed using CIDR notation as specified in RFC 4632. For IPv6 addresses, the ranges are expressed in similar encoding as IPv4 addresses. */ permittedIpRanges: string[]; /** * Contains the permitted URIs that apply to the host part of the name. The value can be a hostname or a domain with a leading period (like `.example.com`) */ permittedUris: string[]; } /** * An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. */ interface ObjectIdResponse { /** * The parts of an OID path. The most significant parts of the path come first. */ objectIdPath: number[]; } /** * A PublicKey describes a public key. */ interface PublicKeyResponse { /** * The format of the public key. */ format: string; /** * A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field. */ key: string; } /** * Options relating to the publication of each CertificateAuthority's CA certificate and CRLs and their inclusion as extensions in issued Certificates. The options set here apply to certificates issued by any CertificateAuthority in the CaPool. */ interface PublishingOptionsResponse { /** * Optional. Specifies the encoding format of each CertificateAuthority's CA certificate and CRLs. If this is omitted, CA certificates and CRLs will be published in PEM. */ encodingFormat: string; /** * Optional. When true, publishes each CertificateAuthority's CA certificate and includes its URL in the "Authority Information Access" X.509 extension in all issued Certificates. If this is false, the CA certificate will not be published and the corresponding X.509 extension will not be written in issued certificates. */ publishCaCert: boolean; /** * Optional. When true, publishes each CertificateAuthority's CRL and includes its URL in the "CRL Distribution Points" X.509 extension in all issued Certificates. If this is false, CRLs will not be published and the corresponding X.509 extension will not be written in issued certificates. CRLs will expire 7 days from their creation. However, we will rebuild daily. CRLs are also rebuilt shortly after a certificate is revoked. */ publishCrl: boolean; } /** * Describes fields that are relavent to the revocation of a Certificate. */ interface RevocationDetailsResponse { /** * Indicates why a Certificate was revoked. */ revocationState: string; /** * The time at which this Certificate was revoked. */ revocationTime: string; } /** * Describes an RSA key that may be used in a Certificate issued from a CaPool. */ interface RsaKeyTypeResponse { /** * Optional. The maximum allowed RSA modulus size (inclusive), in bits. If this is not set, or if set to zero, the service will not enforce an explicit upper bound on RSA modulus sizes. */ maxModulusSize: string; /** * Optional. The minimum allowed RSA modulus size (inclusive), in bits. If this is not set, or if set to zero, the service-level min RSA modulus size will continue to apply. */ minModulusSize: string; } /** * SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the "common name" in the distinguished name). */ interface SubjectAltNamesResponse { /** * Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String. */ customSans: outputs.privateca.v1.X509ExtensionResponse[]; /** * Contains only valid, fully-qualified host names. */ dnsNames: string[]; /** * Contains only valid RFC 2822 E-mail addresses. */ emailAddresses: string[]; /** * Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses. */ ipAddresses: string[]; /** * Contains only valid RFC 3986 URIs. */ uris: string[]; } /** * These values are used to create the distinguished name and subject alternative name fields in an X.509 certificate. */ interface SubjectConfigResponse { /** * Optional. Contains distinguished name fields such as the common name, location and organization. */ subject: outputs.privateca.v1.SubjectResponse; /** * Optional. The subject alternative name fields. */ subjectAltName: outputs.privateca.v1.SubjectAltNamesResponse; } /** * These values describe fields in an issued X.509 certificate such as the distinguished name, subject alternative names, serial number, and lifetime. */ interface SubjectDescriptionResponse { /** * The serial number encoded in lowercase hexadecimal. */ hexSerialNumber: string; /** * For convenience, the actual lifetime of an issued certificate. */ lifetime: string; /** * The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to 'not_before_time' + 'lifetime' - 1 second. */ notAfterTime: string; /** * The time at which the certificate becomes valid. */ notBeforeTime: string; /** * Contains distinguished name fields such as the common name, location and / organization. */ subject: outputs.privateca.v1.SubjectResponse; /** * The subject alternative name fields. */ subjectAltName: outputs.privateca.v1.SubjectAltNamesResponse; } /** * Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. */ interface SubjectResponse { /** * The "common name" of the subject. */ commonName: string; /** * The country code of the subject. */ countryCode: string; /** * The locality or city of the subject. */ locality: string; /** * The organization of the subject. */ organization: string; /** * The organizational_unit of the subject. */ organizationalUnit: string; /** * The postal code of the subject. */ postalCode: string; /** * The province, territory, or regional state of the subject. */ province: string; /** * The street address of the subject. */ streetAddress: string; } /** * This message describes a subordinate CA's issuer certificate chain. This wrapper exists for compatibility reasons. */ interface SubordinateConfigChainResponse { /** * Expected to be in leaf-to-root order according to RFC 5246. */ pemCertificates: string[]; } /** * Describes a subordinate CA's issuers. This is either a resource name to a known issuing CertificateAuthority, or a PEM issuer certificate chain. */ interface SubordinateConfigResponse { /** * This can refer to a CertificateAuthority that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`. */ certificateAuthority: string; /** * Contains the PEM certificate chain for the issuers of this CertificateAuthority, but not pem certificate for this CA itself. */ pemIssuerChain: outputs.privateca.v1.SubordinateConfigChainResponse; } /** * An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs. */ interface X509ExtensionResponse { /** * Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error). */ critical: boolean; /** * The OID for this X.509 extension. */ objectId: outputs.privateca.v1.ObjectIdResponse; /** * The value of this X.509 extension. */ value: string; } /** * An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. */ interface X509ParametersResponse { /** * Optional. Describes custom X.509 extensions. */ additionalExtensions: outputs.privateca.v1.X509ExtensionResponse[]; /** * Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the "Authority Information Access" extension in the certificate. */ aiaOcspServers: string[]; /** * Optional. Describes options in this X509Parameters that are relevant in a CA certificate. */ caOptions: outputs.privateca.v1.CaOptionsResponse; /** * Optional. Indicates the intended use for keys that correspond to a certificate. */ keyUsage: outputs.privateca.v1.KeyUsageResponse; /** * Optional. Describes the X.509 name constraints extension. */ nameConstraints: outputs.privateca.v1.NameConstraintsResponse; /** * Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4. */ policyIds: outputs.privateca.v1.ObjectIdResponse[]; } } namespace v1beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.privateca.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.privateca.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace pubsub { namespace v1 { /** * Configuration for writing message data in Avro format. Message payloads and metadata will be written to files as an Avro binary. */ interface AvroConfigResponse { /** * Optional. When true, write the subscription name, message_id, publish_time, attributes, and ordering_key as additional fields in the output. The subscription name, message_id, and publish_time fields are put in their own fields while all other message properties other than data (for example, an ordering_key, if present) are added as entries in the attributes map. */ writeMetadata: boolean; } /** * Configuration for a BigQuery subscription. */ interface BigQueryConfigResponse { /** * Optional. When true and use_topic_schema is true, any fields that are a part of the topic schema that are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync and any messages with extra fields are not written and remain in the subscription's backlog. */ dropUnknownFields: boolean; /** * An output-only field that indicates whether or not the subscription can receive messages. */ state: string; /** * Optional. The name of the table to which to write data, of the form {projectId}.{datasetId}.{tableId} */ table: string; /** * Optional. When true, use the topic's schema as the columns to write to in BigQuery, if it exists. */ useTopicSchema: boolean; /** * Optional. When true, write the subscription name, message_id, publish_time, attributes, and ordering_key to additional columns in the table. The subscription name, message_id, and publish_time fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column. */ writeMetadata: boolean; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.pubsub.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Configuration for a Cloud Storage subscription. */ interface CloudStorageConfigResponse { /** * Optional. If set, message data will be written to Cloud Storage in Avro format. */ avroConfig: outputs.pubsub.v1.AvroConfigResponse; /** * User-provided name for the Cloud Storage bucket. The bucket must be created by the user. The bucket name must be without any prefix like "gs://". See the [bucket naming requirements] (https://cloud.google.com/storage/docs/buckets#naming). */ bucket: string; /** * Optional. User-provided prefix for Cloud Storage filename. See the [object naming requirements](https://cloud.google.com/storage/docs/objects#naming). */ filenamePrefix: string; /** * Optional. User-provided suffix for Cloud Storage filename. See the [object naming requirements](https://cloud.google.com/storage/docs/objects#naming). Must not end in "/". */ filenameSuffix: string; /** * Optional. The maximum bytes that can be written to a Cloud Storage file before a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may be exceeded in cases where messages are larger than the limit. */ maxBytes: string; /** * Optional. The maximum duration that can elapse before a new Cloud Storage file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed the subscription's acknowledgement deadline. */ maxDuration: string; /** * An output-only field that indicates whether or not the subscription can receive messages. */ state: string; /** * Optional. If set, message data will be written to Cloud Storage in text format. */ textConfig: outputs.pubsub.v1.TextConfigResponse; } /** * Dead lettering is done on a best effort basis. The same message might be dead lettered multiple times. If validation on any of the fields fails at subscription creation/updation, the create/update subscription request will fail. */ interface DeadLetterPolicyResponse { /** * Optional. The name of the topic to which dead letter messages should be published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub service account associated with the enclosing subscription's parent project (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Publish() to this topic. The operation will fail if the topic does not exist. Users should ensure that there is a subscription attached to this topic since messages published to a topic with no subscriptions are lost. */ deadLetterTopic: string; /** * Optional. The maximum number of delivery attempts for any message. The value must be between 5 and 100. The number of delivery attempts is defined as 1 + (the sum of number of NACKs and number of times the acknowledgement deadline has been exceeded for the message). A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that client libraries may automatically extend ack_deadlines. This field will be honored on a best effort basis. If this parameter is 0, a default value of 5 is used. */ maxDeliveryAttempts: number; } /** * A policy that specifies the conditions for resource expiration (i.e., automatic resource deletion). */ interface ExpirationPolicyResponse { /** * Optional. Specifies the "time-to-live" duration for an associated resource. The resource expires if it is not active for a period of `ttl`. The definition of "activity" depends on the type of the associated resource. The minimum and maximum allowed values for `ttl` depend on the type of the associated resource, as well. If `ttl` is not set, the associated resource never expires. */ ttl: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A policy constraining the storage of messages published to the topic. */ interface MessageStoragePolicyResponse { /** * Optional. A list of IDs of Google Cloud regions where messages that are published to the topic may be persisted in storage. Messages published by publishers running in non-allowed Google Cloud regions (or running outside of Google Cloud altogether) are routed for storage in one of the allowed regions. An empty list means that no regions are allowed, and is not a valid configuration. */ allowedPersistenceRegions: string[]; /** * Optional. If true, `allowed_persistence_regions` is also used to enforce in-transit guarantees for messages. That is, Pub/Sub will fail Publish operations on this topic and subscribe operations on any subscription attached to this topic in any region that is not in `allowed_persistence_regions`. */ enforceInTransit: boolean; } /** * Sets the `data` field as the HTTP body for delivery. */ interface NoWrapperResponse { /** * Optional. When true, writes the Pub/Sub message metadata to `x-goog-pubsub-:` headers of the HTTP request. Writes the Pub/Sub message attributes to `:` headers of the HTTP request. */ writeMetadata: boolean; } /** * Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect). */ interface OidcTokenResponse { /** * Optional. Audience to be used when generating OIDC token. The audience claim identifies the recipients that the JWT is intended for. The audience value is a single case-sensitive string. Having multiple values (array) for the audience field is not supported. More info about the OIDC JWT token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified, the Push endpoint URL will be used. */ audience: string; /** * Optional. [Service account email](https://cloud.google.com/iam/docs/service-accounts) used for generating the OIDC token. For more information on setting up authentication, see [Push subscriptions](https://cloud.google.com/pubsub/docs/push). */ serviceAccountEmail: string; } /** * The payload to the push endpoint is in the form of the JSON representation of a PubsubMessage (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage). */ interface PubsubWrapperResponse { } /** * Configuration for a push delivery endpoint. */ interface PushConfigResponse { /** * Optional. Endpoint configuration attributes that can be used to control different aspects of the message delivery. The only currently supported attribute is `x-goog-version`, which you can use to change the format of the pushed message. This attribute indicates the version of the data expected by the endpoint. This controls the shape of the pushed message (i.e., its fields and metadata). If not present during the `CreateSubscription` call, it will default to the version of the Pub/Sub API used to make such call. If not present in a `ModifyPushConfig` call, its value will not be changed. `GetSubscription` calls will always return a valid version, even if the subscription was created without this attribute. The only supported values for the `x-goog-version` attribute are: * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API. * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API. For example: `attributes { "x-goog-version": "v1" }` */ attributes: { [key: string]: string; }; /** * Optional. When set, the payload to the push endpoint is not wrapped. */ noWrapper: outputs.pubsub.v1.NoWrapperResponse; /** * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT token as an `Authorization` header in the HTTP request for every pushed message. */ oidcToken: outputs.pubsub.v1.OidcTokenResponse; /** * Optional. When set, the payload to the push endpoint is in the form of the JSON representation of a PubsubMessage (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage). */ pubsubWrapper: outputs.pubsub.v1.PubsubWrapperResponse; /** * Optional. A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use `https://example.com/push`. */ pushEndpoint: string; } /** * A policy that specifies how Pub/Sub retries message delivery. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message. Retry Policy is implemented on a best effort basis. At times, the delay between consecutive deliveries may not match the configuration. That is, delay can be more or less than configured backoff. */ interface RetryPolicyResponse { /** * Optional. The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds. */ maximumBackoff: string; /** * Optional. The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds. */ minimumBackoff: string; } /** * Settings for validating messages published against a schema. */ interface SchemaSettingsResponse { /** * Optional. The encoding of messages validated against `schema`. */ encoding: string; /** * Optional. The minimum (inclusive) revision allowed for validating messages. If empty or not present, allow any revision to be validated against last_revision or any revision created before. */ firstRevisionId: string; /** * Optional. The maximum (inclusive) revision allowed for validating messages. If empty or not present, allow any revision to be validated against first_revision or any revision created after. */ lastRevisionId: string; /** * The name of the schema that messages published should be validated against. Format is `projects/{project}/schemas/{schema}`. The value of this field will be `_deleted-schema_` if the schema has been deleted. */ schema: string; } /** * Configuration for writing message data in text format. Message payloads will be written to files as raw text, separated by a newline. */ interface TextConfigResponse { } } namespace v1beta1a { /** * Configuration for a push delivery endpoint. */ interface PushConfigResponse { /** * A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use "https://example.com/push". */ pushEndpoint: string; } } namespace v1beta2 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.pubsub.v1beta2.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect). */ interface OidcTokenResponse { /** * Audience to be used when generating OIDC token. The audience claim identifies the recipients that the JWT is intended for. The audience value is a single case-sensitive string. Having multiple values (array) for the audience field is not supported. More info about the OIDC JWT token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified, the Push endpoint URL will be used. */ audience: string; /** * [Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating the OIDC token. The caller (for CreateSubscription, UpdateSubscription, and ModifyPushConfig RPCs) must have the iam.serviceAccounts.actAs permission for the service account. */ serviceAccountEmail: string; } /** * Configuration for a push delivery endpoint. */ interface PushConfigResponse { /** * Endpoint configuration attributes. Every endpoint has a set of API supported attributes that can be used to control different aspects of the message delivery. The currently supported attribute is `x-goog-version`, which you can use to change the format of the push message. This attribute indicates the version of the data expected by the endpoint. This controls the shape of the envelope (i.e. its fields and metadata). The endpoint version is based on the version of the Pub/Sub API. If not present during the `CreateSubscription` call, it will default to the version of the API used to make such call. If not present during a `ModifyPushConfig` call, its value will not be changed. `GetSubscription` calls will always return a valid version, even if the subscription was created without this attribute. The possible values for this attribute are: * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API. * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API. */ attributes: { [key: string]: string; }; /** * If specified, Pub/Sub will generate and attach an OIDC JWT token as an `Authorization` header in the HTTP request for every pushed message. */ oidcToken: outputs.pubsub.v1beta2.OidcTokenResponse; /** * A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use "https://example.com/push". */ pushEndpoint: string; } } } export declare namespace pubsublite { namespace v1 { /** * The throughput capacity configuration for each partition. */ interface CapacityResponse { /** * Publish throughput capacity per partition in MiB/s. Must be >= 4 and <= 16. */ publishMibPerSec: number; /** * Subscribe throughput capacity per partition in MiB/s. Must be >= 4 and <= 32. */ subscribeMibPerSec: number; } /** * The settings for a subscription's message delivery. */ interface DeliveryConfigResponse { /** * The DeliveryRequirement for this subscription. */ deliveryRequirement: string; } /** * Configuration for a Pub/Sub Lite subscription that writes messages to a destination. User subscriber clients must not connect to this subscription. */ interface ExportConfigResponse { /** * The current state of the export, which may be different to the desired state due to errors. This field is output only. */ currentState: string; /** * Optional. The name of an optional Pub/Sub Lite topic to publish messages that can not be exported to the destination. For example, the message can not be published to the Pub/Sub service because it does not satisfy the constraints documented at https://cloud.google.com/pubsub/docs/publisher. Structured like: projects/{project_number}/locations/{location}/topics/{topic_id}. Must be within the same project and location as the subscription. The topic may be changed or removed. */ deadLetterTopic: string; /** * The desired state of this export. Setting this to values other than `ACTIVE` and `PAUSED` will result in an error. */ desiredState: string; /** * Messages are automatically written from the Pub/Sub Lite topic associated with this subscription to a Pub/Sub topic. */ pubsubConfig: outputs.pubsublite.v1.PubSubConfigResponse; } /** * The settings for a topic's partitions. */ interface PartitionConfigResponse { /** * The capacity configuration. */ capacity: outputs.pubsublite.v1.CapacityResponse; /** * The number of partitions in the topic. Must be at least 1. Once a topic has been created the number of partitions can be increased but not decreased. Message ordering is not guaranteed across a topic resize. For more information see https://cloud.google.com/pubsub/lite/docs/topics#scaling_capacity */ count: string; /** * DEPRECATED: Use capacity instead which can express a superset of configurations. Every partition in the topic is allocated throughput equivalent to `scale` times the standard partition throughput (4 MiB/s). This is also reflected in the cost of this topic; a topic with `scale` of 2 and count of 10 is charged for 20 partitions. This value must be in the range [1,4]. * * @deprecated DEPRECATED: Use capacity instead which can express a superset of configurations. Every partition in the topic is allocated throughput equivalent to `scale` times the standard partition throughput (4 MiB/s). This is also reflected in the cost of this topic; a topic with `scale` of 2 and count of 10 is charged for 20 partitions. This value must be in the range [1,4]. */ scale: number; } /** * Configuration for exporting to a Pub/Sub topic. */ interface PubSubConfigResponse { /** * The name of the Pub/Sub topic. Structured like: projects/{project_number}/topics/{topic_id}. The topic may be changed. */ topic: string; } /** * The settings for this topic's Reservation usage. */ interface ReservationConfigResponse { /** * The Reservation to use for this topic's throughput capacity. Structured like: projects/{project_number}/locations/{location}/reservations/{reservation_id} */ throughputReservation: string; } /** * The settings for a topic's message retention. */ interface RetentionConfigResponse { /** * The provisioned storage, in bytes, per partition. If the number of bytes stored in any of the topic's partitions grows beyond this value, older messages will be dropped to make room for newer ones, regardless of the value of `period`. */ perPartitionBytes: string; /** * How long a published message is retained. If unset, messages will be retained as long as the bytes retained for each partition is below `per_partition_bytes`. */ period: string; } } } export declare namespace rapidmigrationassessment { namespace v1 { /** * Message describing a MC Source of type Guest OS Scan. */ interface GuestOsScanResponse { /** * reference to the corresponding Guest OS Scan in MC Source. */ coreSource: string; } /** * Message describing a MC Source of type VSphere Scan. */ interface VSphereScanResponse { /** * reference to the corresponding VSphere Scan in MC Source. */ coreSource: string; } } } export declare namespace recaptchaenterprise { namespace v1 { /** * Settings specific to keys that can be used by Android apps. */ interface GoogleCloudRecaptchaenterpriseV1AndroidKeySettingsResponse { /** * Optional. If set to true, allowed_package_names are not enforced. */ allowAllPackageNames: boolean; /** * Optional. Android package names of apps allowed to use the key. Example: 'com.companyname.appname' */ allowedPackageNames: string[]; /** * Optional. Set to true for keys that are used in an Android application that is available for download in app stores in addition to the Google Play Store. */ supportNonGoogleAppStoreDistribution: boolean; } /** * Contains fields that are required to perform Apple-specific integrity checks. */ interface GoogleCloudRecaptchaenterpriseV1AppleDeveloperIdResponse { /** * The Apple developer key ID (10-character string). */ keyId: string; /** * Input only. A private key (downloaded as a text file with a .p8 file extension) generated for your Apple Developer account. Ensure that Apple DeviceCheck is enabled for the private key. */ privateKey: string; /** * The Apple team ID (10-character string) owning the provisioning profile used to build your application. */ teamId: string; } /** * An allow action continues processing a request unimpeded. */ interface GoogleCloudRecaptchaenterpriseV1FirewallActionAllowActionResponse { } /** * A block action serves an HTTP error code a prevents the request from hitting the backend. */ interface GoogleCloudRecaptchaenterpriseV1FirewallActionBlockActionResponse { } /** * A redirect action returns a 307 (temporary redirect) response, pointing the user to a ReCaptcha interstitial page to attach a token. */ interface GoogleCloudRecaptchaenterpriseV1FirewallActionRedirectActionResponse { } /** * An individual action. Each action represents what to do if a policy matches. */ interface GoogleCloudRecaptchaenterpriseV1FirewallActionResponse { /** * The user request did not match any policy and should be allowed access to the requested resource. */ allow: outputs.recaptchaenterprise.v1.GoogleCloudRecaptchaenterpriseV1FirewallActionAllowActionResponse; /** * This action will deny access to a given page. The user will get an HTTP error code. */ block: outputs.recaptchaenterprise.v1.GoogleCloudRecaptchaenterpriseV1FirewallActionBlockActionResponse; /** * This action will redirect the request to a ReCaptcha interstitial to attach a token. */ redirect: outputs.recaptchaenterprise.v1.GoogleCloudRecaptchaenterpriseV1FirewallActionRedirectActionResponse; /** * This action will set a custom header but allow the request to continue to the customer backend. */ setHeader: outputs.recaptchaenterprise.v1.GoogleCloudRecaptchaenterpriseV1FirewallActionSetHeaderActionResponse; /** * This action will transparently serve a different page to an offending user. */ substitute: outputs.recaptchaenterprise.v1.GoogleCloudRecaptchaenterpriseV1FirewallActionSubstituteActionResponse; } /** * A set header action sets a header and forwards the request to the backend. This can be used to trigger custom protection implemented on the backend. */ interface GoogleCloudRecaptchaenterpriseV1FirewallActionSetHeaderActionResponse { /** * Optional. The header key to set in the request to the backend server. */ key: string; /** * Optional. The header value to set in the request to the backend server. */ value: string; } /** * A substitute action transparently serves a different page than the one requested. */ interface GoogleCloudRecaptchaenterpriseV1FirewallActionSubstituteActionResponse { /** * Optional. The address to redirect to. The target is a relative path in the current host. Example: "/blog/404.html". */ path: string; } /** * Settings specific to keys that can be used by iOS apps. */ interface GoogleCloudRecaptchaenterpriseV1IOSKeySettingsResponse { /** * Optional. If set to true, allowed_bundle_ids are not enforced. */ allowAllBundleIds: boolean; /** * Optional. iOS bundle ids of apps allowed to use the key. Example: 'com.companyname.productname.appname' */ allowedBundleIds: string[]; /** * Optional. Apple Developer account details for the app that is protected by the reCAPTCHA Key. reCAPTCHA Enterprise leverages platform-specific checks like Apple App Attest and Apple DeviceCheck to protect your app from abuse. Providing these fields allows reCAPTCHA Enterprise to get a better assessment of the integrity of your app. */ appleDeveloperId: outputs.recaptchaenterprise.v1.GoogleCloudRecaptchaenterpriseV1AppleDeveloperIdResponse; } /** * Options for user acceptance testing. */ interface GoogleCloudRecaptchaenterpriseV1TestingOptionsResponse { /** * Optional. For challenge-based keys only (CHECKBOX, INVISIBLE), all challenge requests for this site will return nocaptcha if NOCAPTCHA, or an unsolvable challenge if CHALLENGE. */ testingChallenge: string; /** * Optional. All assessments for this Key will return this score. Must be between 0 (likely not legitimate) and 1 (likely legitimate) inclusive. */ testingScore: number; } /** * Settings specific to keys that can be used for WAF (Web Application Firewall). */ interface GoogleCloudRecaptchaenterpriseV1WafSettingsResponse { /** * The WAF feature for which this key is enabled. */ wafFeature: string; /** * The WAF service that uses this key. */ wafService: string; } /** * Settings specific to keys that can be used by websites. */ interface GoogleCloudRecaptchaenterpriseV1WebKeySettingsResponse { /** * Optional. If set to true, it means allowed_domains will not be enforced. */ allowAllDomains: boolean; /** * Optional. If set to true, the key can be used on AMP (Accelerated Mobile Pages) websites. This is supported only for the SCORE integration type. */ allowAmpTraffic: boolean; /** * Optional. Domains or subdomains of websites allowed to use the key. All subdomains of an allowed domain are automatically allowed. A valid domain requires a host and must not include any path, port, query or fragment. Examples: 'example.com' or 'subdomain.example.com' */ allowedDomains: string[]; /** * Optional. Settings for the frequency and difficulty at which this key triggers captcha challenges. This should only be specified for IntegrationTypes CHECKBOX and INVISIBLE. */ challengeSecurityPreference: string; /** * Describes how this key is integrated with the website. */ integrationType: string; } } } export declare namespace recommendationengine { namespace v1beta1 { /** * Category represents catalog item category hierarchy. */ interface GoogleCloudRecommendationengineV1beta1CatalogItemCategoryHierarchyResponse { /** * Catalog item categories. Each category should be a UTF-8 encoded string with a length limit of 2 KiB. Note that the order in the list denotes the specificity (from least to most specific). */ categories: string[]; } /** * FeatureMap represents extra features that customers want to include in the recommendation model for catalogs/user events as categorical/numerical features. */ interface GoogleCloudRecommendationengineV1beta1FeatureMapResponse { /** * Categorical features that can take on one of a limited number of possible values. Some examples would be the brand/maker of a product, or country of a customer. Feature names and values must be UTF-8 encoded strings. For example: `{ "colors": {"value": ["yellow", "green"]}, "sizes": {"value":["S", "M"]}` */ categoricalFeatures: { [key: string]: string; }; /** * Numerical features. Some examples would be the height/weight of a product, or age of a customer. Feature names must be UTF-8 encoded strings. For example: `{ "lengths_cm": {"value":[2.3, 15.4]}, "heights_cm": {"value":[8.1, 6.4]} }` */ numericalFeatures: { [key: string]: string; }; } /** * Catalog item thumbnail/detail image. */ interface GoogleCloudRecommendationengineV1beta1ImageResponse { /** * Optional. Height of the image in number of pixels. */ height: number; /** * URL of the image with a length limit of 5 KiB. */ uri: string; /** * Optional. Width of the image in number of pixels. */ width: number; } /** * Exact product price. */ interface GoogleCloudRecommendationengineV1beta1ProductCatalogItemExactPriceResponse { /** * Optional. Display price of the product. */ displayPrice: number; /** * Optional. Price of the product without any discount. If zero, by default set to be the 'displayPrice'. */ originalPrice: number; } /** * Product price range when there are a range of prices for different variations of the same product. */ interface GoogleCloudRecommendationengineV1beta1ProductCatalogItemPriceRangeResponse { /** * The maximum product price. */ max: number; /** * The minimum product price. */ min: number; } /** * ProductCatalogItem captures item metadata specific to retail products. */ interface GoogleCloudRecommendationengineV1beta1ProductCatalogItemResponse { /** * Optional. The available quantity of the item. */ availableQuantity: string; /** * Optional. Canonical URL directly linking to the item detail page with a length limit of 5 KiB.. */ canonicalProductUri: string; /** * Optional. A map to pass the costs associated with the product. For example: {"manufacturing": 45.5} The profit of selling this item is computed like so: * If 'exactPrice' is provided, profit = displayPrice - sum(costs) * If 'priceRange' is provided, profit = minPrice - sum(costs) */ costs: { [key: string]: string; }; /** * Optional. Only required if the price is set. Currency code for price/costs. Use three-character ISO-4217 code. */ currencyCode: string; /** * Optional. The exact product price. */ exactPrice: outputs.recommendationengine.v1beta1.GoogleCloudRecommendationengineV1beta1ProductCatalogItemExactPriceResponse; /** * Optional. Product images for the catalog item. */ images: outputs.recommendationengine.v1beta1.GoogleCloudRecommendationengineV1beta1ImageResponse[]; /** * Optional. The product price range. */ priceRange: outputs.recommendationengine.v1beta1.GoogleCloudRecommendationengineV1beta1ProductCatalogItemPriceRangeResponse; /** * Optional. Online stock state of the catalog item. Default is `IN_STOCK`. */ stockState: string; } } } export declare namespace redis { namespace v1 { /** * Endpoints on each network, for Redis clients to connect to the cluster. */ interface DiscoveryEndpointResponse { /** * Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname. */ address: string; /** * The port number of the exposed Redis endpoint. */ port: number; /** * Customer configuration for where the endpoint is created and accessed from. */ pscConfig: outputs.redis.v1.PscConfigResponse; } /** * Maintenance policy for an instance. */ interface MaintenancePolicyResponse { /** * The time when the policy was created. */ createTime: string; /** * Optional. Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512. */ description: string; /** * The time when the policy was last updated. */ updateTime: string; /** * Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one. */ weeklyMaintenanceWindow: outputs.redis.v1.WeeklyMaintenanceWindowResponse[]; } /** * Upcoming maintenance schedule. If no maintenance is scheduled, fields are not populated. */ interface MaintenanceScheduleResponse { /** * If the scheduled maintenance can be rescheduled, default is true. */ canReschedule: boolean; /** * The end time of any upcoming scheduled maintenance for this instance. */ endTime: string; /** * The deadline that the maintenance schedule start time can not go beyond, including reschedule. */ scheduleDeadlineTime: string; /** * The start time of any upcoming scheduled maintenance for this instance. */ startTime: string; } /** * Node specific properties. */ interface NodeInfoResponse { /** * Location of the node. */ zone: string; } /** * Configuration of the persistence functionality. */ interface PersistenceConfigResponse { /** * Optional. Controls whether Persistence features are enabled. If not provided, the existing value will be used. */ persistenceMode: string; /** * The next time that a snapshot attempt is scheduled to occur. */ rdbNextSnapshotTime: string; /** * Optional. Period between RDB snapshots. Snapshots will be attempted every period starting from the provided snapshot start time. For example, a start time of 01/01/2033 06:45 and SIX_HOURS snapshot period will do nothing until 01/01/2033, and then trigger snapshots every day at 06:45, 12:45, 18:45, and 00:45 the next day, and so on. If not provided, TWENTY_FOUR_HOURS will be used as default. */ rdbSnapshotPeriod: string; /** * Optional. Date and time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used. */ rdbSnapshotStartTime: string; } interface PscConfigResponse { /** * The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. */ network: string; } /** * Details of consumer resources in a PSC connection. */ interface PscConnectionResponse { /** * The IP allocated on the consumer network for the PSC forwarding rule. */ address: string; /** * The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}. */ forwardingRule: string; /** * The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}. */ network: string; /** * The consumer project_id where the forwarding rule is created from. */ project: string; /** * The PSC connection id of the forwarding rule connected to the service attachment. */ pscConnectionId: string; } /** * Represents additional information about the state of the cluster. */ interface StateInfoResponse { /** * Describes ongoing update on the cluster when cluster state is UPDATING. */ updateInfo: outputs.redis.v1.UpdateInfoResponse; } /** * Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. */ interface TimeOfDayResponse { /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. */ hours: number; /** * Minutes of hour of day. Must be from 0 to 59. */ minutes: number; /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. */ nanos: number; /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds. */ seconds: number; } /** * TlsCertificate Resource */ interface TlsCertificateResponse { /** * PEM representation. */ cert: string; /** * The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2020-05-18T00:00:00.094Z`. */ createTime: string; /** * The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2020-05-18T00:00:00.094Z`. */ expireTime: string; /** * Serial number, as extracted from the certificate. */ serialNumber: string; /** * Sha1 Fingerprint of the certificate. */ sha1Fingerprint: string; } /** * Represents information about an updating cluster. */ interface UpdateInfoResponse { /** * Target number of replica nodes per shard. */ targetReplicaCount: number; /** * Target number of shards for redis cluster */ targetShardCount: number; } /** * Time window in which disruptive maintenance updates occur. Non-disruptive updates can occur inside or outside this window. */ interface WeeklyMaintenanceWindowResponse { /** * The day of week that maintenance updates occur. */ day: string; /** * Duration of the maintenance window. The current window is fixed at 1 hour. */ duration: string; /** * Start time of the window in UTC time. */ startTime: outputs.redis.v1.TimeOfDayResponse; } } namespace v1beta1 { /** * Endpoints on each network, for Redis clients to connect to the cluster. */ interface DiscoveryEndpointResponse { /** * Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname. */ address: string; /** * The port number of the exposed Redis endpoint. */ port: number; /** * Customer configuration for where the endpoint is created and accessed from. */ pscConfig: outputs.redis.v1beta1.PscConfigResponse; } /** * Maintenance policy for an instance. */ interface MaintenancePolicyResponse { /** * The time when the policy was created. */ createTime: string; /** * Optional. Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512. */ description: string; /** * The time when the policy was last updated. */ updateTime: string; /** * Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one. */ weeklyMaintenanceWindow: outputs.redis.v1beta1.WeeklyMaintenanceWindowResponse[]; } /** * Upcoming maintenance schedule. If no maintenance is scheduled, fields are not populated. */ interface MaintenanceScheduleResponse { /** * If the scheduled maintenance can be rescheduled, default is true. */ canReschedule: boolean; /** * The end time of any upcoming scheduled maintenance for this instance. */ endTime: string; /** * The deadline that the maintenance schedule start time can not go beyond, including reschedule. */ scheduleDeadlineTime: string; /** * The start time of any upcoming scheduled maintenance for this instance. */ startTime: string; } /** * Node specific properties. */ interface NodeInfoResponse { /** * Location of the node. */ zone: string; } /** * Configuration of the persistence functionality. */ interface PersistenceConfigResponse { /** * Optional. Controls whether Persistence features are enabled. If not provided, the existing value will be used. */ persistenceMode: string; /** * The next time that a snapshot attempt is scheduled to occur. */ rdbNextSnapshotTime: string; /** * Optional. Period between RDB snapshots. Snapshots will be attempted every period starting from the provided snapshot start time. For example, a start time of 01/01/2033 06:45 and SIX_HOURS snapshot period will do nothing until 01/01/2033, and then trigger snapshots every day at 06:45, 12:45, 18:45, and 00:45 the next day, and so on. If not provided, TWENTY_FOUR_HOURS will be used as default. */ rdbSnapshotPeriod: string; /** * Optional. Date and time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used. */ rdbSnapshotStartTime: string; } interface PscConfigResponse { /** * The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. */ network: string; } /** * Details of consumer resources in a PSC connection. */ interface PscConnectionResponse { /** * The IP allocated on the consumer network for the PSC forwarding rule. */ address: string; /** * The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}. */ forwardingRule: string; /** * The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}. */ network: string; /** * The consumer project_id where the forwarding rule is created from. */ project: string; /** * The PSC connection id of the forwarding rule connected to the service attachment. */ pscConnectionId: string; } /** * Represents additional information about the state of the cluster. */ interface StateInfoResponse { /** * Describes ongoing update on the cluster when cluster state is UPDATING. */ updateInfo: outputs.redis.v1beta1.UpdateInfoResponse; } /** * Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. */ interface TimeOfDayResponse { /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. */ hours: number; /** * Minutes of hour of day. Must be from 0 to 59. */ minutes: number; /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. */ nanos: number; /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds. */ seconds: number; } /** * TlsCertificate Resource */ interface TlsCertificateResponse { /** * PEM representation. */ cert: string; /** * The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2020-05-18T00:00:00.094Z`. */ createTime: string; /** * The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2020-05-18T00:00:00.094Z`. */ expireTime: string; /** * Serial number, as extracted from the certificate. */ serialNumber: string; /** * Sha1 Fingerprint of the certificate. */ sha1Fingerprint: string; } /** * Represents information about an updating cluster. */ interface UpdateInfoResponse { /** * Target number of replica nodes per shard. */ targetReplicaCount: number; /** * Target number of shards for redis cluster */ targetShardCount: number; } /** * Time window in which disruptive maintenance updates occur. Non-disruptive updates can occur inside or outside this window. */ interface WeeklyMaintenanceWindowResponse { /** * The day of week that maintenance updates occur. */ day: string; /** * Duration of the maintenance window. The current window is fixed at 1 hour. */ duration: string; /** * Start time of the window in UTC time. */ startTime: outputs.redis.v1beta1.TimeOfDayResponse; } } } export declare namespace remotebuildexecution { namespace v1alpha { /** * AcceleratorConfig defines the accelerator cards to attach to the VM. */ interface GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfigResponse { /** * The number of guest accelerator cards exposed to each VM. */ acceleratorCount: string; /** * The type of accelerator to attach to each VM, e.g. "nvidia-tesla-k80" for nVidia Tesla K80. */ acceleratorType: string; } /** * Autoscale defines the autoscaling policy of a worker pool. */ interface GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscaleResponse { /** * The maximal number of workers. Must be equal to or greater than min_size. */ maxSize: string; /** * The minimal number of workers. Must be greater than 0. */ minSize: string; } /** * Defines whether a feature can be used or what values are accepted. */ interface GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeatureResponse { /** * A list of acceptable values. Only effective when the policy is `RESTRICTED`. */ allowedValues: string[]; /** * The policy of the feature. */ policy: string; } /** * FeaturePolicy defines features allowed to be used on RBE instances, as well as instance-wide behavior changes that take effect without opt-in or opt-out at usage time. */ interface GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyResponse { /** * Which container image sources are allowed. Currently only RBE-supported registry (gcr.io) is allowed. One can allow all repositories under a project or one specific repository only. E.g. container_image_sources { policy: RESTRICTED allowed_values: [ "gcr.io/project-foo", "gcr.io/project-bar/repo-baz", ] } will allow any repositories under "gcr.io/project-foo" plus the repository "gcr.io/project-bar/repo-baz". Default (UNSPECIFIED) is equivalent to any source is allowed. */ containerImageSources: outputs.remotebuildexecution.v1alpha.GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeatureResponse; /** * Whether dockerAddCapabilities can be used or what capabilities are allowed. */ dockerAddCapabilities: outputs.remotebuildexecution.v1alpha.GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeatureResponse; /** * Whether dockerChrootPath can be used. */ dockerChrootPath: outputs.remotebuildexecution.v1alpha.GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeatureResponse; /** * Whether dockerNetwork can be used or what network modes are allowed. E.g. one may allow `off` value only via `allowed_values`. */ dockerNetwork: outputs.remotebuildexecution.v1alpha.GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeatureResponse; /** * Whether dockerPrivileged can be used. */ dockerPrivileged: outputs.remotebuildexecution.v1alpha.GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeatureResponse; /** * Whether dockerRunAsRoot can be used. */ dockerRunAsRoot: outputs.remotebuildexecution.v1alpha.GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeatureResponse; /** * Whether dockerRuntime is allowed to be set or what runtimes are allowed. Note linux_isolation takes precedence, and if set, docker_runtime values may be rejected if they are incompatible with the selected isolation. */ dockerRuntime: outputs.remotebuildexecution.v1alpha.GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeatureResponse; /** * Whether dockerSiblingContainers can be used. */ dockerSiblingContainers: outputs.remotebuildexecution.v1alpha.GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeatureResponse; /** * linux_isolation allows overriding the docker runtime used for containers started on Linux. */ linuxIsolation: string; } /** * Defines the configuration to be used for creating workers in the worker pool. */ interface GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfigResponse { /** * The accelerator card attached to each VM. */ accelerator: outputs.remotebuildexecution.v1alpha.GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfigResponse; /** * Size of the disk attached to the worker, in GB. See https://cloud.google.com/compute/docs/disks/ */ diskSizeGb: string; /** * Disk Type to use for the worker. See [Storage options](https://cloud.google.com/compute/docs/disks/#introduction). Currently only `pd-standard` and `pd-ssd` are supported. */ diskType: string; /** * Labels associated with the workers. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International letters are permitted. Label keys must start with a letter. Label values are optional. There can not be more than 64 labels per resource. */ labels: { [key: string]: string; }; /** * Machine type of the worker, such as `e2-standard-2`. See https://cloud.google.com/compute/docs/machine-types for a list of supported machine types. Note that `f1-micro` and `g1-small` are not yet supported. */ machineType: string; /** * The maximum number of actions a worker can execute concurrently. */ maxConcurrentActions: string; /** * Minimum CPU platform to use when creating the worker. See [CPU Platforms](https://cloud.google.com/compute/docs/cpu-platforms). */ minCpuPlatform: string; /** * Determines the type of network access granted to workers. Possible values: - "public": Workers can connect to the public internet. - "private": Workers can only connect to Google APIs and services. - "restricted-private": Workers can only connect to Google APIs that are reachable through `restricted.googleapis.com` (`199.36.153.4/30`). */ networkAccess: string; /** * Determines whether the worker is reserved (equivalent to a Compute Engine on-demand VM and therefore won't be preempted). See [Preemptible VMs](https://cloud.google.com/preemptible-vms/) for more details. */ reserved: boolean; /** * The node type name to be used for sole-tenant nodes. */ soleTenantNodeType: string; /** * The name of the image used by each VM. */ vmImage: string; } } } export declare namespace retail { namespace v2 { /** * An intended audience of the Product for whom it's sold. */ interface GoogleCloudRetailV2AudienceResponse { /** * The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). */ ageGroups: string[]; /** * The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). */ genders: string[]; } /** * The color information of a Product. */ interface GoogleCloudRetailV2ColorInfoResponse { /** * The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). */ colorFamilies: string[]; /** * The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 75 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). */ colors: string[]; } /** * Query terms that we want to match on. */ interface GoogleCloudRetailV2ConditionQueryTermResponse { /** * Whether this is supposed to be a full or partial match. */ fullMatch: boolean; /** * The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, "a b c" is 3 terms and allowed, but " a b c d" is 4 terms and not allowed for a partial match. */ value: string; } /** * Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted. */ interface GoogleCloudRetailV2ConditionResponse { /** * Range of time(s) specifying when Condition is active. Condition true if any time range matches. */ activeTimeRange: outputs.retail.v2.GoogleCloudRetailV2ConditionTimeRangeResponse[]; /** * Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories; */ pageCategories: string[]; /** * A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator). */ queryTerms: outputs.retail.v2.GoogleCloudRetailV2ConditionQueryTermResponse[]; } /** * Used for time-dependent conditions. Example: Want to have rule applied for week long sale. */ interface GoogleCloudRetailV2ConditionTimeRangeResponse { /** * End of time range. Range is inclusive. */ endTime: string; /** * Start of time range. Range is inclusive. */ startTime: string; } /** * Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. */ interface GoogleCloudRetailV2FulfillmentInfoResponse { /** * The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 3000 values are allowed. Each value must be a string with a length limit of 30 characters, matching the pattern `[a-zA-Z0-9_-]+`, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. */ placeIds: string[]; /** * The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. */ type: string; } /** * Product image. Recommendations AI and Retail Search do not use product images to improve prediction and search results. However, product images can be returned in results, and are shown in prediction or search previews in the console. */ interface GoogleCloudRetailV2ImageResponse { /** * Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. */ height: number; /** * URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). */ uri: string; /** * Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. */ width: number; } /** * A floating point interval. */ interface GoogleCloudRetailV2IntervalResponse { /** * Exclusive upper bound. */ exclusiveMaximum: number; /** * Exclusive lower bound. */ exclusiveMinimum: number; /** * Inclusive upper bound. */ maximum: number; /** * Inclusive lower bound. */ minimum: number; } /** * The inventory information at a place (e.g. a store) identified by a place ID. */ interface GoogleCloudRetailV2LocalInventoryResponse { /** * Additional local inventory attributes, for example, store name, promotion tags, etc. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * At most 30 attributes are allowed. * The key must be a UTF-8 encoded string with a length limit of 32 characters. * The key must match the pattern: `a-zA-Z0-9*`. For example, key0LikeThis or KEY_1_LIKE_THIS. * The attribute values must be of the same type (text or number). * Only 1 value is allowed for each attribute. * For text values, the length limit is 256 UTF-8 characters. * The attribute does not support search. The `searchable` field should be unset or set to false. * The max summed total bytes of custom attribute keys and values per product is 5MiB. */ attributes: { [key: string]: string; }; /** * Input only. Supported fulfillment types. Valid fulfillment type values include commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is returned. */ fulfillmentTypes: string[]; /** * The place ID for the current set of inventory information. */ placeId: string; /** * Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). */ priceInfo: outputs.retail.v2.GoogleCloudRetailV2PriceInfoResponse; } /** * Additional configs for the frequently-bought-together model type. */ interface GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfigResponse { /** * Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS. */ contextProductsType: string; } /** * Additional model features config. */ interface GoogleCloudRetailV2ModelModelFeaturesConfigResponse { /** * Additional configs for frequently-bought-together models. */ frequentlyBoughtTogetherConfig: outputs.retail.v2.GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfigResponse; } /** * Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations. */ interface GoogleCloudRetailV2ModelServingConfigListResponse { /** * Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`. */ servingConfigIds: string[]; } /** * The price range of all variant Product having the same Product.primary_product_id. */ interface GoogleCloudRetailV2PriceInfoPriceRangeResponse { /** * The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. */ originalPrice: outputs.retail.v2.GoogleCloudRetailV2IntervalResponse; /** * The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. */ price: outputs.retail.v2.GoogleCloudRetailV2IntervalResponse; } /** * The price information of a Product. */ interface GoogleCloudRetailV2PriceInfoResponse { /** * The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). */ cost: number; /** * The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. */ currencyCode: string; /** * Price of the product without any discount. If zero, by default set to be the price. If set, original_price should be greater than or equal to price, otherwise an INVALID_ARGUMENT error is thrown. */ originalPrice: number; /** * Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.price](https://schema.org/price). */ price: number; /** * The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. */ priceEffectiveTime: string; /** * The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. */ priceExpireTime: string; /** * The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. */ priceRange: outputs.retail.v2.GoogleCloudRetailV2PriceInfoPriceRangeResponse; } /** * Product captures all metadata information of items to be recommended or searched. */ interface GoogleCloudRetailV2ProductResponse { /** * Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * For indexable attribute, the key must match the pattern: `a-zA-Z0-9*`. For example, `key0LikeThis` or `KEY_1_LIKE_THIS`. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a non-empty UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. */ attributes: { [key: string]: string; }; /** * The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. */ audience: outputs.retail.v2.GoogleCloudRetailV2AudienceResponse; /** * The online availability of the Product. Default to Availability.IN_STOCK. Corresponding properties: Google Merchant Center property [availability](https://support.google.com/merchants/answer/6324448). Schema.org property [Offer.availability](https://schema.org/availability). */ availability: string; /** * The available quantity of the item. */ availableQuantity: number; /** * The timestamp when this Product becomes available for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. */ availableTime: string; /** * The brands of the product. A maximum of 30 brands are allowed unless overridden through the Google Cloud console. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). */ brands: string[]; /** * Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 */ categories: string[]; /** * The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise an INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. */ collectionMemberIds: string[]; /** * The color of the product. Corresponding properties: Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). */ colorInfo: outputs.retail.v2.GoogleCloudRetailV2ColorInfoResponse; /** * The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 1 value is allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). */ conditions: string[]; /** * Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). Schema.org property [Product.description](https://schema.org/description). */ description: string; /** * The timestamp when this product becomes unavailable for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. expire_time must be later than available_time and publish_time, otherwise an INVALID_ARGUMENT error is thrown. Corresponding properties: Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). */ expireTime: string; /** * Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. */ fulfillmentInfo: outputs.retail.v2.GoogleCloudRetailV2FulfillmentInfoResponse[]; /** * The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn), [Product.gtin8](https://schema.org/gtin8), [Product.gtin12](https://schema.org/gtin12), [Product.gtin13](https://schema.org/gtin13), or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. */ gtin: string; /** * Product images for the product. We highly recommend putting the main image first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). */ images: outputs.retail.v2.GoogleCloudRetailV2ImageResponse[]; /** * Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. */ languageCode: string; /** * A list of local inventories specific to different places. This field can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs if fine-grained, high-volume updates are necessary. */ localInventories: outputs.retail.v2.GoogleCloudRetailV2LocalInventoryResponse[]; /** * The material of the product. For example, "leather", "wooden". A maximum of 20 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). */ materials: string[]; /** * Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. */ name: string; /** * The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). */ patterns: string[]; /** * Product price and cost information. Corresponding properties: Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). */ priceInfo: outputs.retail.v2.GoogleCloudRetailV2PriceInfoResponse; /** * Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). */ primaryProductId: string; /** * The promotions applied to the product. A maximum of 10 values are allowed per Product. Only Promotion.promotion_id will be used, other fields will be ignored if set. */ promotions: outputs.retail.v2.GoogleCloudRetailV2PromotionResponse[]; /** * The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. */ publishTime: string; /** * The rating of this product. */ rating: outputs.retail.v2.GoogleCloudRetailV2RatingResponse; /** * Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead. * * @deprecated Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead. */ retrievableFields: string; /** * The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497), and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). */ sizes: string[]; /** * Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Corresponding properties: Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). */ tags: string[]; /** * Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). */ title: string; /** * Input only. The TTL (time to live) of the product. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. If it is set, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. */ ttl: string; /** * Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. */ type: string; /** * Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). */ uri: string; /** * Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. */ variants: outputs.retail.v2.GoogleCloudRetailV2ProductResponse[]; } /** * Promotion specification. */ interface GoogleCloudRetailV2PromotionResponse { /** * Promotion identifier, which is the final component of name. For example, this field is "free_gift", if name is `projects/*/locations/global/catalogs/default_catalog/promotions/free_gift`. The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Corresponds to Google Merchant Center property [promotion_id](https://support.google.com/merchants/answer/7050148). */ promotionId: string; } /** * The rating of a Product. */ interface GoogleCloudRetailV2RatingResponse { /** * The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. */ averageRating: number; /** * The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. */ ratingCount: number; /** * List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. */ ratingHistogram: number[]; } /** * A boost action to apply to results matching condition specified above. */ interface GoogleCloudRetailV2RuleBoostActionResponse { /** * Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored. */ boost: number; /** * The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) * */ productsFilter: string; } /** * Prevents `query_term` from being associated with specified terms during search. Example: Don't associate "gShoe" and "cheap". */ interface GoogleCloudRetailV2RuleDoNotAssociateActionResponse { /** * Cannot contain duplicates or the query term. Can specify up to 100 terms. */ doNotAssociateTerms: string[]; /** * Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms. */ queryTerms: string[]; /** * Will be [deprecated = true] post migration; */ terms: string[]; } /** * * Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter. */ interface GoogleCloudRetailV2RuleFilterActionResponse { /** * A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) * */ filter: string; } /** * Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position. */ interface GoogleCloudRetailV2RuleForceReturnFacetActionFacetPositionAdjustmentResponse { /** * The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long. */ attributeName: string; /** * This is the position in the request as explained above. It should be strictly positive be at most 100. */ position: number; } /** * Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is "size" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key "size" is not already in the top 8 slots, then the facet "size" will appear at a position close to 8. b) The facet key "size" in among the top 8 positions in the request, then it will stay at its current rank. */ interface GoogleCloudRetailV2RuleForceReturnFacetActionResponse { /** * Each instance corresponds to a force return attribute for the given condition. There can't be more 3 instances here. */ facetPositionAdjustments: outputs.retail.v2.GoogleCloudRetailV2RuleForceReturnFacetActionFacetPositionAdjustmentResponse[]; } /** * Prevents a term in the query from being used in search. Example: Don't search for "shoddy". */ interface GoogleCloudRetailV2RuleIgnoreActionResponse { /** * Terms to ignore in the search query. */ ignoreTerms: string[]; } /** * Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "shoes" will not use a synonym of "sneakers". */ interface GoogleCloudRetailV2RuleOnewaySynonymsActionResponse { /** * Will be [deprecated = true] post migration; */ onewayTerms: string[]; /** * Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms. */ queryTerms: string[]; /** * Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms. */ synonyms: string[]; } /** * Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri. */ interface GoogleCloudRetailV2RuleRedirectActionResponse { /** * URL must have length equal or less than 2000 characters. */ redirectUri: string; } /** * Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes" and the attribute name "size", then facet key "size" will be removed from the request (if it is present). */ interface GoogleCloudRetailV2RuleRemoveFacetActionResponse { /** * The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters. */ attributeNames: string[]; } /** * Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace "gShoe" with "google shoe". */ interface GoogleCloudRetailV2RuleReplacementActionResponse { /** * Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms. */ queryTerms: string[]; /** * Term that will be used for replacement. */ replacementTerm: string; /** * Will be [deprecated = true] post migration; */ term: string; } /** * A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH. */ interface GoogleCloudRetailV2RuleResponse { /** * A boost action. */ boostAction: outputs.retail.v2.GoogleCloudRetailV2RuleBoostActionResponse; /** * The condition that triggers the rule. If the condition is empty, the rule will always apply. */ condition: outputs.retail.v2.GoogleCloudRetailV2ConditionResponse; /** * Prevents term from being associated with other terms. */ doNotAssociateAction: outputs.retail.v2.GoogleCloudRetailV2RuleDoNotAssociateActionResponse; /** * Filters results. */ filterAction: outputs.retail.v2.GoogleCloudRetailV2RuleFilterActionResponse; /** * Force returns an attribute as a facet in the request. */ forceReturnFacetAction: outputs.retail.v2.GoogleCloudRetailV2RuleForceReturnFacetActionResponse; /** * Ignores specific terms from query during search. */ ignoreAction: outputs.retail.v2.GoogleCloudRetailV2RuleIgnoreActionResponse; /** * Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term. */ onewaySynonymsAction: outputs.retail.v2.GoogleCloudRetailV2RuleOnewaySynonymsActionResponse; /** * Redirects a shopper to a specific page. */ redirectAction: outputs.retail.v2.GoogleCloudRetailV2RuleRedirectActionResponse; /** * Remove an attribute as a facet in the request (if present). */ removeFacetAction: outputs.retail.v2.GoogleCloudRetailV2RuleRemoveFacetActionResponse; /** * Replaces specific terms in the query. */ replacementAction: outputs.retail.v2.GoogleCloudRetailV2RuleReplacementActionResponse; /** * Treats a set of terms as synonyms of one another. */ twowaySynonymsAction: outputs.retail.v2.GoogleCloudRetailV2RuleTwowaySynonymsActionResponse; } /** * Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of "sneakers" and "shoes": * "sneakers" will use a synonym of "shoes". * "shoes" will use a synonym of "sneakers". */ interface GoogleCloudRetailV2RuleTwowaySynonymsActionResponse { /** * Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms. */ synonyms: string[]; } /** * The specifications of dynamically generated facets. */ interface GoogleCloudRetailV2SearchRequestDynamicFacetSpecResponse { /** * Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset. */ mode: string; } /** * The specification for personalization. */ interface GoogleCloudRetailV2SearchRequestPersonalizationSpecResponse { /** * Defaults to Mode.AUTO. */ mode: string; } } namespace v2alpha { /** * An intended audience of the Product for whom it's sold. */ interface GoogleCloudRetailV2alphaAudienceResponse { /** * The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). */ ageGroups: string[]; /** * The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). */ genders: string[]; } /** * The color information of a Product. */ interface GoogleCloudRetailV2alphaColorInfoResponse { /** * The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). */ colorFamilies: string[]; /** * The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 75 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). */ colors: string[]; } /** * Query terms that we want to match on. */ interface GoogleCloudRetailV2alphaConditionQueryTermResponse { /** * Whether this is supposed to be a full or partial match. */ fullMatch: boolean; /** * The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, "a b c" is 3 terms and allowed, but " a b c d" is 4 terms and not allowed for a partial match. */ value: string; } /** * Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted. */ interface GoogleCloudRetailV2alphaConditionResponse { /** * Range of time(s) specifying when Condition is active. Condition true if any time range matches. */ activeTimeRange: outputs.retail.v2alpha.GoogleCloudRetailV2alphaConditionTimeRangeResponse[]; /** * Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories; */ pageCategories: string[]; /** * A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator). */ queryTerms: outputs.retail.v2alpha.GoogleCloudRetailV2alphaConditionQueryTermResponse[]; } /** * Used for time-dependent conditions. Example: Want to have rule applied for week long sale. */ interface GoogleCloudRetailV2alphaConditionTimeRangeResponse { /** * End of time range. Range is inclusive. */ endTime: string; /** * Start of time range. Range is inclusive. */ startTime: string; } /** * Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. */ interface GoogleCloudRetailV2alphaFulfillmentInfoResponse { /** * The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 3000 values are allowed. Each value must be a string with a length limit of 30 characters, matching the pattern `[a-zA-Z0-9_-]+`, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. */ placeIds: string[]; /** * The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. */ type: string; } /** * Product image. Recommendations AI and Retail Search do not use product images to improve prediction and search results. However, product images can be returned in results, and are shown in prediction or search previews in the console. */ interface GoogleCloudRetailV2alphaImageResponse { /** * Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. */ height: number; /** * URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). */ uri: string; /** * Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. */ width: number; } /** * A floating point interval. */ interface GoogleCloudRetailV2alphaIntervalResponse { /** * Exclusive upper bound. */ exclusiveMaximum: number; /** * Exclusive lower bound. */ exclusiveMinimum: number; /** * Inclusive upper bound. */ maximum: number; /** * Inclusive lower bound. */ minimum: number; } /** * The inventory information at a place (e.g. a store) identified by a place ID. */ interface GoogleCloudRetailV2alphaLocalInventoryResponse { /** * Additional local inventory attributes, for example, store name, promotion tags, etc. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * At most 30 attributes are allowed. * The key must be a UTF-8 encoded string with a length limit of 32 characters. * The key must match the pattern: `a-zA-Z0-9*`. For example, key0LikeThis or KEY_1_LIKE_THIS. * The attribute values must be of the same type (text or number). * Only 1 value is allowed for each attribute. * For text values, the length limit is 256 UTF-8 characters. * The attribute does not support search. The `searchable` field should be unset or set to false. * The max summed total bytes of custom attribute keys and values per product is 5MiB. */ attributes: { [key: string]: string; }; /** * Input only. Supported fulfillment types. Valid fulfillment type values include commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is returned. */ fulfillmentTypes: string[]; /** * The place ID for the current set of inventory information. */ placeId: string; /** * Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). */ priceInfo: outputs.retail.v2alpha.GoogleCloudRetailV2alphaPriceInfoResponse; } /** * Additional configs for the frequently-bought-together model type. */ interface GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfigResponse { /** * Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS. */ contextProductsType: string; } /** * Additional model features config. */ interface GoogleCloudRetailV2alphaModelModelFeaturesConfigResponse { /** * Additional configs for frequently-bought-together models. */ frequentlyBoughtTogetherConfig: outputs.retail.v2alpha.GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfigResponse; } /** * A candidate to consider for a given panel. Currently only ServingConfig are valid candidates. */ interface GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidateResponse { /** * This has to be a valid ServingConfig identifier. For example, for a ServingConfig with full name: `projects/*/locations/global/catalogs/default_catalog/servingConfigs/my_candidate_config`, this would be `my_candidate_config`. */ servingConfigId: string; } /** * An individual panel with a list of ServingConfigs to consider for it. */ interface GoogleCloudRetailV2alphaModelPageOptimizationConfigPanelResponse { /** * The candidates to consider on the panel. */ candidates: outputs.retail.v2alpha.GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidateResponse[]; /** * The default candidate. If the model fails at serving time, we fall back to the default. */ defaultCandidate: outputs.retail.v2alpha.GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidateResponse; /** * Optional. The name to display for the panel. */ displayName: string; } /** * The PageOptimizationConfig for model training. This determines how many panels to optimize for, and which serving configs to consider for each panel. The purpose of this model is to optimize which ServingConfig to show on which panels in way that optimizes the visitors shopping journey. */ interface GoogleCloudRetailV2alphaModelPageOptimizationConfigResponse { /** * The type of UserEvent this page optimization is shown for. Each page has an associated event type - this will be the corresponding event type for the page that the page optimization model is used on. Supported types: * `add-to-cart`: Products being added to cart. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed * `category-page-view`: Homepage viewed * `shopping-cart-page-view`: User viewing a shopping cart. `home-page-view` only allows models with type `recommended-for-you`. All other page_optimization_event_type allow all Model.types. */ pageOptimizationEventType: string; /** * A list of panel configurations. Limit = 5. */ panels: outputs.retail.v2alpha.GoogleCloudRetailV2alphaModelPageOptimizationConfigPanelResponse[]; /** * Optional. How to restrict results across panels e.g. can the same ServingConfig be shown on multiple panels at once. If unspecified, default to `UNIQUE_MODEL_RESTRICTION`. */ restriction: string; } /** * Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations. */ interface GoogleCloudRetailV2alphaModelServingConfigListResponse { /** * Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`. */ servingConfigIds: string[]; } /** * The price range of all variant Product having the same Product.primary_product_id. */ interface GoogleCloudRetailV2alphaPriceInfoPriceRangeResponse { /** * The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. */ originalPrice: outputs.retail.v2alpha.GoogleCloudRetailV2alphaIntervalResponse; /** * The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. */ price: outputs.retail.v2alpha.GoogleCloudRetailV2alphaIntervalResponse; } /** * The price information of a Product. */ interface GoogleCloudRetailV2alphaPriceInfoResponse { /** * The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). */ cost: number; /** * The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. */ currencyCode: string; /** * Price of the product without any discount. If zero, by default set to be the price. If set, original_price should be greater than or equal to price, otherwise an INVALID_ARGUMENT error is thrown. */ originalPrice: number; /** * Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.price](https://schema.org/price). */ price: number; /** * The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. */ priceEffectiveTime: string; /** * The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. */ priceExpireTime: string; /** * The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. */ priceRange: outputs.retail.v2alpha.GoogleCloudRetailV2alphaPriceInfoPriceRangeResponse; } /** * Product captures all metadata information of items to be recommended or searched. */ interface GoogleCloudRetailV2alphaProductResponse { /** * Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * For indexable attribute, the key must match the pattern: `a-zA-Z0-9*`. For example, `key0LikeThis` or `KEY_1_LIKE_THIS`. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a non-empty UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. */ attributes: { [key: string]: string; }; /** * The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. */ audience: outputs.retail.v2alpha.GoogleCloudRetailV2alphaAudienceResponse; /** * The online availability of the Product. Default to Availability.IN_STOCK. Corresponding properties: Google Merchant Center property [availability](https://support.google.com/merchants/answer/6324448). Schema.org property [Offer.availability](https://schema.org/availability). */ availability: string; /** * The available quantity of the item. */ availableQuantity: number; /** * The timestamp when this Product becomes available for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. */ availableTime: string; /** * The brands of the product. A maximum of 30 brands are allowed unless overridden through the Google Cloud console. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). */ brands: string[]; /** * Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 */ categories: string[]; /** * The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise an INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. */ collectionMemberIds: string[]; /** * The color of the product. Corresponding properties: Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). */ colorInfo: outputs.retail.v2alpha.GoogleCloudRetailV2alphaColorInfoResponse; /** * The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 1 value is allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). */ conditions: string[]; /** * Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). Schema.org property [Product.description](https://schema.org/description). */ description: string; /** * The timestamp when this product becomes unavailable for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. expire_time must be later than available_time and publish_time, otherwise an INVALID_ARGUMENT error is thrown. Corresponding properties: Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). */ expireTime: string; /** * Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. */ fulfillmentInfo: outputs.retail.v2alpha.GoogleCloudRetailV2alphaFulfillmentInfoResponse[]; /** * The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn), [Product.gtin8](https://schema.org/gtin8), [Product.gtin12](https://schema.org/gtin12), [Product.gtin13](https://schema.org/gtin13), or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. */ gtin: string; /** * Product images for the product. We highly recommend putting the main image first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). */ images: outputs.retail.v2alpha.GoogleCloudRetailV2alphaImageResponse[]; /** * Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. */ languageCode: string; /** * A list of local inventories specific to different places. This field can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs if fine-grained, high-volume updates are necessary. */ localInventories: outputs.retail.v2alpha.GoogleCloudRetailV2alphaLocalInventoryResponse[]; /** * The material of the product. For example, "leather", "wooden". A maximum of 20 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). */ materials: string[]; /** * Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. */ name: string; /** * The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). */ patterns: string[]; /** * Product price and cost information. Corresponding properties: Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). */ priceInfo: outputs.retail.v2alpha.GoogleCloudRetailV2alphaPriceInfoResponse; /** * Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). */ primaryProductId: string; /** * The promotions applied to the product. A maximum of 10 values are allowed per Product. Only Promotion.promotion_id will be used, other fields will be ignored if set. */ promotions: outputs.retail.v2alpha.GoogleCloudRetailV2alphaPromotionResponse[]; /** * The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. */ publishTime: string; /** * The rating of this product. */ rating: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRatingResponse; /** * Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead. * * @deprecated Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead. */ retrievableFields: string; /** * The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497), and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). */ sizes: string[]; /** * Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Corresponding properties: Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). */ tags: string[]; /** * Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). */ title: string; /** * Input only. The TTL (time to live) of the product. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. If it is set, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. */ ttl: string; /** * Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. */ type: string; /** * Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). */ uri: string; /** * Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. */ variants: outputs.retail.v2alpha.GoogleCloudRetailV2alphaProductResponse[]; } /** * Promotion specification. */ interface GoogleCloudRetailV2alphaPromotionResponse { /** * Promotion identifier, which is the final component of name. For example, this field is "free_gift", if name is `projects/*/locations/global/catalogs/default_catalog/promotions/free_gift`. The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Corresponds to Google Merchant Center property [promotion_id](https://support.google.com/merchants/answer/7050148). */ promotionId: string; } /** * The rating of a Product. */ interface GoogleCloudRetailV2alphaRatingResponse { /** * The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. */ averageRating: number; /** * The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. */ ratingCount: number; /** * List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. */ ratingHistogram: number[]; } /** * A boost action to apply to results matching condition specified above. */ interface GoogleCloudRetailV2alphaRuleBoostActionResponse { /** * Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored. */ boost: number; /** * The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) * */ productsFilter: string; } /** * Prevents `query_term` from being associated with specified terms during search. Example: Don't associate "gShoe" and "cheap". */ interface GoogleCloudRetailV2alphaRuleDoNotAssociateActionResponse { /** * Cannot contain duplicates or the query term. Can specify up to 100 terms. */ doNotAssociateTerms: string[]; /** * Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms. */ queryTerms: string[]; /** * Will be [deprecated = true] post migration; */ terms: string[]; } /** * * Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter. */ interface GoogleCloudRetailV2alphaRuleFilterActionResponse { /** * A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) * */ filter: string; } /** * Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position. */ interface GoogleCloudRetailV2alphaRuleForceReturnFacetActionFacetPositionAdjustmentResponse { /** * The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long. */ attributeName: string; /** * This is the position in the request as explained above. It should be strictly positive be at most 100. */ position: number; } /** * Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is "size" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key "size" is not already in the top 8 slots, then the facet "size" will appear at a position close to 8. b) The facet key "size" in among the top 8 positions in the request, then it will stay at its current rank. */ interface GoogleCloudRetailV2alphaRuleForceReturnFacetActionResponse { /** * Each instance corresponds to a force return attribute for the given condition. There can't be more 3 instances here. */ facetPositionAdjustments: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleForceReturnFacetActionFacetPositionAdjustmentResponse[]; } /** * Prevents a term in the query from being used in search. Example: Don't search for "shoddy". */ interface GoogleCloudRetailV2alphaRuleIgnoreActionResponse { /** * Terms to ignore in the search query. */ ignoreTerms: string[]; } /** * Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "shoes" will not use a synonym of "sneakers". */ interface GoogleCloudRetailV2alphaRuleOnewaySynonymsActionResponse { /** * Will be [deprecated = true] post migration; */ onewayTerms: string[]; /** * Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms. */ queryTerms: string[]; /** * Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms. */ synonyms: string[]; } /** * Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri. */ interface GoogleCloudRetailV2alphaRuleRedirectActionResponse { /** * URL must have length equal or less than 2000 characters. */ redirectUri: string; } /** * Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes" and the attribute name "size", then facet key "size" will be removed from the request (if it is present). */ interface GoogleCloudRetailV2alphaRuleRemoveFacetActionResponse { /** * The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters. */ attributeNames: string[]; } /** * Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace "gShoe" with "google shoe". */ interface GoogleCloudRetailV2alphaRuleReplacementActionResponse { /** * Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms. */ queryTerms: string[]; /** * Term that will be used for replacement. */ replacementTerm: string; /** * Will be [deprecated = true] post migration; */ term: string; } /** * A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH. */ interface GoogleCloudRetailV2alphaRuleResponse { /** * A boost action. */ boostAction: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleBoostActionResponse; /** * The condition that triggers the rule. If the condition is empty, the rule will always apply. */ condition: outputs.retail.v2alpha.GoogleCloudRetailV2alphaConditionResponse; /** * Prevents term from being associated with other terms. */ doNotAssociateAction: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleDoNotAssociateActionResponse; /** * Filters results. */ filterAction: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleFilterActionResponse; /** * Force returns an attribute as a facet in the request. */ forceReturnFacetAction: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleForceReturnFacetActionResponse; /** * Ignores specific terms from query during search. */ ignoreAction: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleIgnoreActionResponse; /** * Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term. */ onewaySynonymsAction: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleOnewaySynonymsActionResponse; /** * Redirects a shopper to a specific page. */ redirectAction: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleRedirectActionResponse; /** * Remove an attribute as a facet in the request (if present). */ removeFacetAction: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleRemoveFacetActionResponse; /** * Replaces specific terms in the query. */ replacementAction: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleReplacementActionResponse; /** * Treats a set of terms as synonyms of one another. */ twowaySynonymsAction: outputs.retail.v2alpha.GoogleCloudRetailV2alphaRuleTwowaySynonymsActionResponse; } /** * Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of "sneakers" and "shoes": * "sneakers" will use a synonym of "shoes". * "shoes" will use a synonym of "sneakers". */ interface GoogleCloudRetailV2alphaRuleTwowaySynonymsActionResponse { /** * Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms. */ synonyms: string[]; } /** * The specifications of dynamically generated facets. */ interface GoogleCloudRetailV2alphaSearchRequestDynamicFacetSpecResponse { /** * Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset. */ mode: string; } /** * Specifies how a facet is computed. */ interface GoogleCloudRetailV2alphaSearchRequestFacetSpecFacetKeyResponse { /** * True to make facet keys case insensitive when getting faceting values with prefixes or contains; false otherwise. */ caseInsensitive: boolean; /** * Only get facet values that contains the given strings. For example, suppose "categories" has three values "Women > Shoe", "Women > Dress" and "Men > Shoe". If set "contains" to "Shoe", the "categories" facet gives only "Women > Shoe" and "Men > Shoe". Only supported on textual fields. Maximum is 10. */ contains: string[]; /** * Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles become the bounds for its intervals and are returned in the response. If the facet key intervals are specified in the request, then the specified intervals are returned instead. */ intervals: outputs.retail.v2alpha.GoogleCloudRetailV2alphaIntervalResponse[]; /** * Supported textual and numerical facet keys in Product object, over which the facet values are computed. Facet key is case-sensitive. Allowed facet keys when FacetKey.query is not specified: * textual_field = * "brands" * "categories" * "genders" * "ageGroups" * "availability" * "colorFamilies" * "colors" * "sizes" * "materials" * "patterns" * "conditions" * "attributes.key" * "pickupInStore" * "shipToStore" * "sameDayDelivery" * "nextDayDelivery" * "customFulfillment1" * "customFulfillment2" * "customFulfillment3" * "customFulfillment4" * "customFulfillment5" * "inventory(place_id,attributes.key)" * numerical_field = * "price" * "discount" * "rating" * "ratingCount" * "attributes.key" * "inventory(place_id,price)" * "inventory(place_id,original_price)" * "inventory(place_id,attributes.key)" */ key: string; /** * The order in which SearchResponse.Facet.values are returned. Allowed values are: * "count desc", which means order by SearchResponse.Facet.values.count descending. * "value desc", which means order by SearchResponse.Facet.values.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are sorted in the order given by FacetSpec.FacetKey.restricted_values. */ orderBy: string; /** * Only get facet values that start with the given string prefix. For example, suppose "categories" has three values "Women > Shoe", "Women > Dress" and "Men > Shoe". If set "prefixes" to "Women", the "categories" facet gives only "Women > Shoe" and "Women > Dress". Only supported on textual fields. Maximum is 10. */ prefixes: string[]; /** * The query that is used to compute facet for the given facet key. When provided, it overrides the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value is always "1" and SearchResponse.Facet.values.count is the number of results that match the query. For example, you can set a customized facet for "shipToStore", where FacetKey.key is "customizedShipToStore", and FacetKey.query is "availability: ANY(\"IN_STOCK\") AND shipToStore: ANY(\"123\")". Then the facet counts the products that are both in stock and ship to store "123". */ query: string; /** * Only get facet for the given restricted values. For example, when using "pickupInStore" as key and set restricted values to ["store123", "store456"], only facets for "store123" and "store456" are returned. Only supported on predefined textual fields, custom textual attributes and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5 */ restrictedValues: string[]; /** * Returns the min and max value for each numerical facet intervals. Ignored for textual facets. */ returnMinMax: boolean; } /** * A facet specification to perform faceted search. */ interface GoogleCloudRetailV2alphaSearchRequestFacetSpecResponse { /** * Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It is ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response is the same as in the request, and it is ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response is determined by Google Retail Search. Another example, assuming you have the following facets in the request: * "rating", enable_dynamic_position = true * "price", enable_dynamic_position = false * "brands", enable_dynamic_position = false And also you have a dynamic facets enable, which generates a facet "gender". Then, the final order of the facets in the response can be ("price", "brands", "rating", "gender") or ("price", "brands", "gender", "rating") depends on how Google Retail Search orders "gender" and "rating" facets. However, notice that "price" and "brands" are always ranked at first and second position because their enable_dynamic_position values are false. */ enableDynamicPosition: boolean; /** * List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. Listing a facet key in this field allows its values to appear as facet results, even when they are filtered out of search results. Using this field does not affect what search results are returned. For example, suppose there are 100 products with the color facet "Red" and 200 products with the color facet "Blue". A query containing the filter "colorFamilies:ANY("Red")" and having "colorFamilies" as FacetKey.key would by default return only "Red" products in the search results, and also return "Red" with count 100 as the only color facet. Although there are also blue products available, "Blue" would not be shown as an available facet value. If "colorFamilies" is listed in "excludedFilterKeys", then the query returns the facet values "Red" with count 100 and "Blue" with count 200, because the "colorFamilies" key is now excluded from the filter. Because this field doesn't affect search results, the search results are still correctly filtered to return only "Red" products. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned. */ excludedFilterKeys: string[]; /** * The facet key specification. */ facetKey: outputs.retail.v2alpha.GoogleCloudRetailV2alphaSearchRequestFacetSpecFacetKeyResponse; /** * Maximum of facet values that should be returned for this facet. If unspecified, defaults to 50. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned. */ limit: number; } /** * The specification for personalization. */ interface GoogleCloudRetailV2alphaSearchRequestPersonalizationSpecResponse { /** * Defaults to Mode.AUTO. */ mode: string; } } namespace v2beta { /** * An intended audience of the Product for whom it's sold. */ interface GoogleCloudRetailV2betaAudienceResponse { /** * The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). */ ageGroups: string[]; /** * The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). */ genders: string[]; } /** * The color information of a Product. */ interface GoogleCloudRetailV2betaColorInfoResponse { /** * The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). */ colorFamilies: string[]; /** * The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 75 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). */ colors: string[]; } /** * Query terms that we want to match on. */ interface GoogleCloudRetailV2betaConditionQueryTermResponse { /** * Whether this is supposed to be a full or partial match. */ fullMatch: boolean; /** * The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, "a b c" is 3 terms and allowed, but " a b c d" is 4 terms and not allowed for a partial match. */ value: string; } /** * Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted. */ interface GoogleCloudRetailV2betaConditionResponse { /** * Range of time(s) specifying when Condition is active. Condition true if any time range matches. */ activeTimeRange: outputs.retail.v2beta.GoogleCloudRetailV2betaConditionTimeRangeResponse[]; /** * Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories; */ pageCategories: string[]; /** * A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator). */ queryTerms: outputs.retail.v2beta.GoogleCloudRetailV2betaConditionQueryTermResponse[]; } /** * Used for time-dependent conditions. Example: Want to have rule applied for week long sale. */ interface GoogleCloudRetailV2betaConditionTimeRangeResponse { /** * End of time range. Range is inclusive. */ endTime: string; /** * Start of time range. Range is inclusive. */ startTime: string; } /** * Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. */ interface GoogleCloudRetailV2betaFulfillmentInfoResponse { /** * The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 3000 values are allowed. Each value must be a string with a length limit of 30 characters, matching the pattern `[a-zA-Z0-9_-]+`, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. */ placeIds: string[]; /** * The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. */ type: string; } /** * Product image. Recommendations AI and Retail Search do not use product images to improve prediction and search results. However, product images can be returned in results, and are shown in prediction or search previews in the console. */ interface GoogleCloudRetailV2betaImageResponse { /** * Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. */ height: number; /** * URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). */ uri: string; /** * Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. */ width: number; } /** * A floating point interval. */ interface GoogleCloudRetailV2betaIntervalResponse { /** * Exclusive upper bound. */ exclusiveMaximum: number; /** * Exclusive lower bound. */ exclusiveMinimum: number; /** * Inclusive upper bound. */ maximum: number; /** * Inclusive lower bound. */ minimum: number; } /** * The inventory information at a place (e.g. a store) identified by a place ID. */ interface GoogleCloudRetailV2betaLocalInventoryResponse { /** * Additional local inventory attributes, for example, store name, promotion tags, etc. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * At most 30 attributes are allowed. * The key must be a UTF-8 encoded string with a length limit of 32 characters. * The key must match the pattern: `a-zA-Z0-9*`. For example, key0LikeThis or KEY_1_LIKE_THIS. * The attribute values must be of the same type (text or number). * Only 1 value is allowed for each attribute. * For text values, the length limit is 256 UTF-8 characters. * The attribute does not support search. The `searchable` field should be unset or set to false. * The max summed total bytes of custom attribute keys and values per product is 5MiB. */ attributes: { [key: string]: string; }; /** * Input only. Supported fulfillment types. Valid fulfillment type values include commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is returned. */ fulfillmentTypes: string[]; /** * The place ID for the current set of inventory information. */ placeId: string; /** * Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). */ priceInfo: outputs.retail.v2beta.GoogleCloudRetailV2betaPriceInfoResponse; } /** * Additional configs for the frequently-bought-together model type. */ interface GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfigResponse { /** * Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS. */ contextProductsType: string; } /** * Additional model features config. */ interface GoogleCloudRetailV2betaModelModelFeaturesConfigResponse { /** * Additional configs for frequently-bought-together models. */ frequentlyBoughtTogetherConfig: outputs.retail.v2beta.GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfigResponse; } /** * Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations. */ interface GoogleCloudRetailV2betaModelServingConfigListResponse { /** * Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`. */ servingConfigIds: string[]; } /** * The price range of all variant Product having the same Product.primary_product_id. */ interface GoogleCloudRetailV2betaPriceInfoPriceRangeResponse { /** * The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. */ originalPrice: outputs.retail.v2beta.GoogleCloudRetailV2betaIntervalResponse; /** * The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. */ price: outputs.retail.v2beta.GoogleCloudRetailV2betaIntervalResponse; } /** * The price information of a Product. */ interface GoogleCloudRetailV2betaPriceInfoResponse { /** * The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). */ cost: number; /** * The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. */ currencyCode: string; /** * Price of the product without any discount. If zero, by default set to be the price. If set, original_price should be greater than or equal to price, otherwise an INVALID_ARGUMENT error is thrown. */ originalPrice: number; /** * Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.price](https://schema.org/price). */ price: number; /** * The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. */ priceEffectiveTime: string; /** * The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. */ priceExpireTime: string; /** * The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. */ priceRange: outputs.retail.v2beta.GoogleCloudRetailV2betaPriceInfoPriceRangeResponse; } /** * Product captures all metadata information of items to be recommended or searched. */ interface GoogleCloudRetailV2betaProductResponse { /** * Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * For indexable attribute, the key must match the pattern: `a-zA-Z0-9*`. For example, `key0LikeThis` or `KEY_1_LIKE_THIS`. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a non-empty UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. */ attributes: { [key: string]: string; }; /** * The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. */ audience: outputs.retail.v2beta.GoogleCloudRetailV2betaAudienceResponse; /** * The online availability of the Product. Default to Availability.IN_STOCK. Corresponding properties: Google Merchant Center property [availability](https://support.google.com/merchants/answer/6324448). Schema.org property [Offer.availability](https://schema.org/availability). */ availability: string; /** * The available quantity of the item. */ availableQuantity: number; /** * The timestamp when this Product becomes available for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. */ availableTime: string; /** * The brands of the product. A maximum of 30 brands are allowed unless overridden through the Google Cloud console. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). */ brands: string[]; /** * Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 */ categories: string[]; /** * The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise an INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. */ collectionMemberIds: string[]; /** * The color of the product. Corresponding properties: Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). */ colorInfo: outputs.retail.v2beta.GoogleCloudRetailV2betaColorInfoResponse; /** * The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 1 value is allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). */ conditions: string[]; /** * Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). Schema.org property [Product.description](https://schema.org/description). */ description: string; /** * The timestamp when this product becomes unavailable for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. expire_time must be later than available_time and publish_time, otherwise an INVALID_ARGUMENT error is thrown. Corresponding properties: Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). */ expireTime: string; /** * Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. */ fulfillmentInfo: outputs.retail.v2beta.GoogleCloudRetailV2betaFulfillmentInfoResponse[]; /** * The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn), [Product.gtin8](https://schema.org/gtin8), [Product.gtin12](https://schema.org/gtin12), [Product.gtin13](https://schema.org/gtin13), or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. */ gtin: string; /** * Product images for the product. We highly recommend putting the main image first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). */ images: outputs.retail.v2beta.GoogleCloudRetailV2betaImageResponse[]; /** * Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. */ languageCode: string; /** * A list of local inventories specific to different places. This field can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs if fine-grained, high-volume updates are necessary. */ localInventories: outputs.retail.v2beta.GoogleCloudRetailV2betaLocalInventoryResponse[]; /** * The material of the product. For example, "leather", "wooden". A maximum of 20 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). */ materials: string[]; /** * Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. */ name: string; /** * The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). */ patterns: string[]; /** * Product price and cost information. Corresponding properties: Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). */ priceInfo: outputs.retail.v2beta.GoogleCloudRetailV2betaPriceInfoResponse; /** * Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). */ primaryProductId: string; /** * The promotions applied to the product. A maximum of 10 values are allowed per Product. Only Promotion.promotion_id will be used, other fields will be ignored if set. */ promotions: outputs.retail.v2beta.GoogleCloudRetailV2betaPromotionResponse[]; /** * The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. */ publishTime: string; /** * The rating of this product. */ rating: outputs.retail.v2beta.GoogleCloudRetailV2betaRatingResponse; /** * Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead. * * @deprecated Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead. */ retrievableFields: string; /** * The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497), and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). */ sizes: string[]; /** * Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Corresponding properties: Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). */ tags: string[]; /** * Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). */ title: string; /** * Input only. The TTL (time to live) of the product. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. If it is set, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. */ ttl: string; /** * Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. */ type: string; /** * Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). */ uri: string; /** * Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. */ variants: outputs.retail.v2beta.GoogleCloudRetailV2betaProductResponse[]; } /** * Promotion specification. */ interface GoogleCloudRetailV2betaPromotionResponse { /** * Promotion identifier, which is the final component of name. For example, this field is "free_gift", if name is `projects/*/locations/global/catalogs/default_catalog/promotions/free_gift`. The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Corresponds to Google Merchant Center property [promotion_id](https://support.google.com/merchants/answer/7050148). */ promotionId: string; } /** * The rating of a Product. */ interface GoogleCloudRetailV2betaRatingResponse { /** * The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. */ averageRating: number; /** * The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. */ ratingCount: number; /** * List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. */ ratingHistogram: number[]; } /** * A boost action to apply to results matching condition specified above. */ interface GoogleCloudRetailV2betaRuleBoostActionResponse { /** * Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored. */ boost: number; /** * The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) * */ productsFilter: string; } /** * Prevents `query_term` from being associated with specified terms during search. Example: Don't associate "gShoe" and "cheap". */ interface GoogleCloudRetailV2betaRuleDoNotAssociateActionResponse { /** * Cannot contain duplicates or the query term. Can specify up to 100 terms. */ doNotAssociateTerms: string[]; /** * Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms. */ queryTerms: string[]; /** * Will be [deprecated = true] post migration; */ terms: string[]; } /** * * Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter. */ interface GoogleCloudRetailV2betaRuleFilterActionResponse { /** * A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) * */ filter: string; } /** * Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position. */ interface GoogleCloudRetailV2betaRuleForceReturnFacetActionFacetPositionAdjustmentResponse { /** * The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long. */ attributeName: string; /** * This is the position in the request as explained above. It should be strictly positive be at most 100. */ position: number; } /** * Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is "size" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key "size" is not already in the top 8 slots, then the facet "size" will appear at a position close to 8. b) The facet key "size" in among the top 8 positions in the request, then it will stay at its current rank. */ interface GoogleCloudRetailV2betaRuleForceReturnFacetActionResponse { /** * Each instance corresponds to a force return attribute for the given condition. There can't be more 3 instances here. */ facetPositionAdjustments: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleForceReturnFacetActionFacetPositionAdjustmentResponse[]; } /** * Prevents a term in the query from being used in search. Example: Don't search for "shoddy". */ interface GoogleCloudRetailV2betaRuleIgnoreActionResponse { /** * Terms to ignore in the search query. */ ignoreTerms: string[]; } /** * Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "shoes" will not use a synonym of "sneakers". */ interface GoogleCloudRetailV2betaRuleOnewaySynonymsActionResponse { /** * Will be [deprecated = true] post migration; */ onewayTerms: string[]; /** * Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms. */ queryTerms: string[]; /** * Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms. */ synonyms: string[]; } /** * Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri. */ interface GoogleCloudRetailV2betaRuleRedirectActionResponse { /** * URL must have length equal or less than 2000 characters. */ redirectUri: string; } /** * Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes" and the attribute name "size", then facet key "size" will be removed from the request (if it is present). */ interface GoogleCloudRetailV2betaRuleRemoveFacetActionResponse { /** * The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters. */ attributeNames: string[]; } /** * Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace "gShoe" with "google shoe". */ interface GoogleCloudRetailV2betaRuleReplacementActionResponse { /** * Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms. */ queryTerms: string[]; /** * Term that will be used for replacement. */ replacementTerm: string; /** * Will be [deprecated = true] post migration; */ term: string; } /** * A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH. */ interface GoogleCloudRetailV2betaRuleResponse { /** * A boost action. */ boostAction: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleBoostActionResponse; /** * The condition that triggers the rule. If the condition is empty, the rule will always apply. */ condition: outputs.retail.v2beta.GoogleCloudRetailV2betaConditionResponse; /** * Prevents term from being associated with other terms. */ doNotAssociateAction: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleDoNotAssociateActionResponse; /** * Filters results. */ filterAction: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleFilterActionResponse; /** * Force returns an attribute as a facet in the request. */ forceReturnFacetAction: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleForceReturnFacetActionResponse; /** * Ignores specific terms from query during search. */ ignoreAction: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleIgnoreActionResponse; /** * Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term. */ onewaySynonymsAction: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleOnewaySynonymsActionResponse; /** * Redirects a shopper to a specific page. */ redirectAction: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleRedirectActionResponse; /** * Remove an attribute as a facet in the request (if present). */ removeFacetAction: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleRemoveFacetActionResponse; /** * Replaces specific terms in the query. */ replacementAction: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleReplacementActionResponse; /** * Treats a set of terms as synonyms of one another. */ twowaySynonymsAction: outputs.retail.v2beta.GoogleCloudRetailV2betaRuleTwowaySynonymsActionResponse; } /** * Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of "sneakers" and "shoes": * "sneakers" will use a synonym of "shoes". * "shoes" will use a synonym of "sneakers". */ interface GoogleCloudRetailV2betaRuleTwowaySynonymsActionResponse { /** * Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms. */ synonyms: string[]; } /** * The specifications of dynamically generated facets. */ interface GoogleCloudRetailV2betaSearchRequestDynamicFacetSpecResponse { /** * Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset. */ mode: string; } /** * Specifies how a facet is computed. */ interface GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKeyResponse { /** * True to make facet keys case insensitive when getting faceting values with prefixes or contains; false otherwise. */ caseInsensitive: boolean; /** * Only get facet values that contains the given strings. For example, suppose "categories" has three values "Women > Shoe", "Women > Dress" and "Men > Shoe". If set "contains" to "Shoe", the "categories" facet gives only "Women > Shoe" and "Men > Shoe". Only supported on textual fields. Maximum is 10. */ contains: string[]; /** * Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles become the bounds for its intervals and are returned in the response. If the facet key intervals are specified in the request, then the specified intervals are returned instead. */ intervals: outputs.retail.v2beta.GoogleCloudRetailV2betaIntervalResponse[]; /** * Supported textual and numerical facet keys in Product object, over which the facet values are computed. Facet key is case-sensitive. Allowed facet keys when FacetKey.query is not specified: * textual_field = * "brands" * "categories" * "genders" * "ageGroups" * "availability" * "colorFamilies" * "colors" * "sizes" * "materials" * "patterns" * "conditions" * "attributes.key" * "pickupInStore" * "shipToStore" * "sameDayDelivery" * "nextDayDelivery" * "customFulfillment1" * "customFulfillment2" * "customFulfillment3" * "customFulfillment4" * "customFulfillment5" * "inventory(place_id,attributes.key)" * numerical_field = * "price" * "discount" * "rating" * "ratingCount" * "attributes.key" * "inventory(place_id,price)" * "inventory(place_id,original_price)" * "inventory(place_id,attributes.key)" */ key: string; /** * The order in which SearchResponse.Facet.values are returned. Allowed values are: * "count desc", which means order by SearchResponse.Facet.values.count descending. * "value desc", which means order by SearchResponse.Facet.values.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are sorted in the order given by FacetSpec.FacetKey.restricted_values. */ orderBy: string; /** * Only get facet values that start with the given string prefix. For example, suppose "categories" has three values "Women > Shoe", "Women > Dress" and "Men > Shoe". If set "prefixes" to "Women", the "categories" facet gives only "Women > Shoe" and "Women > Dress". Only supported on textual fields. Maximum is 10. */ prefixes: string[]; /** * The query that is used to compute facet for the given facet key. When provided, it overrides the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value is always "1" and SearchResponse.Facet.values.count is the number of results that match the query. For example, you can set a customized facet for "shipToStore", where FacetKey.key is "customizedShipToStore", and FacetKey.query is "availability: ANY(\"IN_STOCK\") AND shipToStore: ANY(\"123\")". Then the facet counts the products that are both in stock and ship to store "123". */ query: string; /** * Only get facet for the given restricted values. For example, when using "pickupInStore" as key and set restricted values to ["store123", "store456"], only facets for "store123" and "store456" are returned. Only supported on predefined textual fields, custom textual attributes and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5 */ restrictedValues: string[]; /** * Returns the min and max value for each numerical facet intervals. Ignored for textual facets. */ returnMinMax: boolean; } /** * A facet specification to perform faceted search. */ interface GoogleCloudRetailV2betaSearchRequestFacetSpecResponse { /** * Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It is ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response is the same as in the request, and it is ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response is determined by Google Retail Search. Another example, assuming you have the following facets in the request: * "rating", enable_dynamic_position = true * "price", enable_dynamic_position = false * "brands", enable_dynamic_position = false And also you have a dynamic facets enable, which generates a facet "gender". Then, the final order of the facets in the response can be ("price", "brands", "rating", "gender") or ("price", "brands", "gender", "rating") depends on how Google Retail Search orders "gender" and "rating" facets. However, notice that "price" and "brands" are always ranked at first and second position because their enable_dynamic_position values are false. */ enableDynamicPosition: boolean; /** * List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. Listing a facet key in this field allows its values to appear as facet results, even when they are filtered out of search results. Using this field does not affect what search results are returned. For example, suppose there are 100 products with the color facet "Red" and 200 products with the color facet "Blue". A query containing the filter "colorFamilies:ANY("Red")" and having "colorFamilies" as FacetKey.key would by default return only "Red" products in the search results, and also return "Red" with count 100 as the only color facet. Although there are also blue products available, "Blue" would not be shown as an available facet value. If "colorFamilies" is listed in "excludedFilterKeys", then the query returns the facet values "Red" with count 100 and "Blue" with count 200, because the "colorFamilies" key is now excluded from the filter. Because this field doesn't affect search results, the search results are still correctly filtered to return only "Red" products. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned. */ excludedFilterKeys: string[]; /** * The facet key specification. */ facetKey: outputs.retail.v2beta.GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKeyResponse; /** * Maximum of facet values that should be returned for this facet. If unspecified, defaults to 50. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned. */ limit: number; } /** * The specification for personalization. */ interface GoogleCloudRetailV2betaSearchRequestPersonalizationSpecResponse { /** * Defaults to Mode.AUTO. */ mode: string; } } } export declare namespace run { namespace v1 { /** * Information for connecting over HTTP(s). */ interface AddressableResponse { url: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.run.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.run.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Not supported by Cloud Run. ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables. */ interface ConfigMapEnvSourceResponse { /** * This field should not be used directly as it is meant to be inlined directly into the message. Use the "name" field instead. */ localObjectReference: outputs.run.v1.LocalObjectReferenceResponse; /** * The ConfigMap to select from. */ name: string; /** * Specify whether the ConfigMap must be defined. */ optional: boolean; } /** * Not supported by Cloud Run. */ interface ConfigMapKeySelectorResponse { /** * Not supported by Cloud Run. */ key: string; /** * Not supported by Cloud Run. */ localObjectReference: outputs.run.v1.LocalObjectReferenceResponse; /** * Not supported by Cloud Run. */ name: string; /** * Not supported by Cloud Run. */ optional: boolean; } /** * Not supported by Cloud Run. Adapts a ConfigMap into a volume. The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. */ interface ConfigMapVolumeSourceResponse { /** * (Optional) Integer representation of mode bits to use on created files by default. Must be a value between 01 and 0777 (octal). If 0 or not set, it will default to 0644. Directories within the path are not affected by this setting. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. */ defaultMode: number; /** * (Optional) If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified that is not present in the Secret, the volume setup will error unless it is marked optional. */ items: outputs.run.v1.KeyToPathResponse[]; /** * Name of the config. */ name: string; /** * (Optional) Specify whether the Secret or its keys must be defined. */ optional: boolean; } /** * ContainerPort represents a network port in a single container. */ interface ContainerPortResponse { /** * Port number the container listens on. If present, this must be a valid port number, 0 < x < 65536. If not present, it will default to port 8080. For more information, see https://cloud.google.com/run/docs/container-contract#port */ containerPort: number; /** * If specified, used to specify which protocol to use. Allowed values are "http1" and "h2c". */ name: string; /** * Protocol for port. Must be "TCP". Defaults to "TCP". */ protocol: string; } /** * A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. */ interface ContainerResponse { /** * Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references are not supported in Cloud Run. */ args: string[]; /** * Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references are not supported in Cloud Run. */ command: string[]; /** * List of environment variables to set in the container. EnvVar with duplicate names are generally allowed; if referencing a secret, the name must be unique for the container. For non-secret EnvVar names, the Container will only get the last-declared one. */ env: outputs.run.v1.EnvVarResponse[]; /** * Not supported by Cloud Run. */ envFrom: outputs.run.v1.EnvFromSourceResponse[]; /** * Name of the container image in Dockerhub, Google Artifact Registry, or Google Container Registry. If the host is not provided, Dockerhub is assumed. */ image: string; /** * Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. */ imagePullPolicy: string; /** * Periodic probe of container liveness. Container will be restarted if the probe fails. */ livenessProbe: outputs.run.v1.ProbeResponse; /** * Name of the container specified as a DNS_LABEL (RFC 1123). */ name: string; /** * List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on. */ ports: outputs.run.v1.ContainerPortResponse[]; /** * Not supported by Cloud Run. */ readinessProbe: outputs.run.v1.ProbeResponse; /** * Compute Resources required by this container. */ resources: outputs.run.v1.ResourceRequirementsResponse; /** * Not supported by Cloud Run. */ securityContext: outputs.run.v1.SecurityContextResponse; /** * Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not receive traffic if the probe fails. If not provided, a default startup probe with TCP socket action is used. */ startupProbe: outputs.run.v1.ProbeResponse; /** * Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. */ terminationMessagePath: string; /** * Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated. */ terminationMessagePolicy: string; /** * Volume to mount into the container's filesystem. Only supports SecretVolumeSources. Pod volumes to mount into the container's filesystem. */ volumeMounts: outputs.run.v1.VolumeMountResponse[]; /** * Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. */ workingDir: string; } /** * The desired state of the Domain Mapping. */ interface DomainMappingSpecResponse { /** * The mode of the certificate. */ certificateMode: string; /** * If set, the mapping will override any mapping set before this spec was set. It is recommended that the user leaves this empty to receive an error warning about a potential conflict and only set it once the respective UI has given such a warning. */ forceOverride: boolean; /** * The name of the Knative Route that this DomainMapping applies to. The route must exist. */ routeName: string; } /** * The current state of the Domain Mapping. */ interface DomainMappingStatusResponse { /** * Array of observed DomainMappingConditions, indicating the current state of the DomainMapping. */ conditions: outputs.run.v1.GoogleCloudRunV1ConditionResponse[]; /** * The name of the route that the mapping currently points to. */ mappedRouteName: string; /** * ObservedGeneration is the 'Generation' of the DomainMapping that was last processed by the controller. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation and the Ready condition's status is True or False. */ observedGeneration: number; /** * The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping. */ resourceRecords: outputs.run.v1.ResourceRecordResponse[]; /** * Optional. Not supported by Cloud Run. */ url: string; } /** * In memory (tmpfs) ephemeral storage. It is ephemeral in the sense that when the sandbox is taken down, the data is destroyed with it (it does not persist across sandbox runs). */ interface EmptyDirVolumeSourceResponse { /** * The medium on which the data is stored. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir */ medium: string; /** * Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers. The default is nil which means that the limit is undefined. More info: https://cloud.google.com/run/docs/configuring/in-memory-volumes#configure-volume. Info in Kubernetes: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir */ sizeLimit: string; } /** * Not supported by Cloud Run. EnvFromSource represents the source of a set of ConfigMaps */ interface EnvFromSourceResponse { /** * The ConfigMap to select from */ configMapRef: outputs.run.v1.ConfigMapEnvSourceResponse; /** * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. */ prefix: string; /** * The Secret to select from */ secretRef: outputs.run.v1.SecretEnvSourceResponse; } /** * EnvVar represents an environment variable present in a Container. */ interface EnvVarResponse { /** * Name of the environment variable. */ name: string; /** * Value of the environment variable. Defaults to "". Variable references are not supported in Cloud Run. */ value: string; /** * Source for the environment variable's value. Only supports secret_key_ref. Cannot be used if value is not empty. */ valueFrom: outputs.run.v1.EnvVarSourceResponse; } /** * EnvVarSource represents a source for the value of an EnvVar. */ interface EnvVarSourceResponse { /** * Not supported by Cloud Run. Not supported in Cloud Run. */ configMapKeyRef: outputs.run.v1.ConfigMapKeySelectorResponse; /** * Selects a key (version) of a secret in Secret Manager. */ secretKeyRef: outputs.run.v1.SecretKeySelectorResponse; } /** * Not supported by Cloud Run. ExecAction describes a "run in container" action. */ interface ExecActionResponse { /** * Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. */ command: string[]; } /** * Reference to an Execution. Use /Executions.GetExecution with the given name to get full execution including the latest status. */ interface ExecutionReferenceResponse { /** * Optional. Completion timestamp of the execution. */ completionTimestamp: string; /** * Optional. Creation timestamp of the execution. */ creationTimestamp: string; /** * Optional. Name of the execution. */ name: string; } /** * ExecutionSpec describes how the execution will look. */ interface ExecutionSpecResponse { /** * Optional. Specifies the maximum desired number of tasks the execution should run at given time. Must be <= task_count. When the job is run, if this field is 0 or unset, the maximum possible value will be used for that execution. The actual number of tasks running in steady state will be less than this number when there are fewer tasks waiting to be completed, i.e. when the work left to do is less than max parallelism. */ parallelism: number; /** * Optional. Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution. Defaults to 1. */ taskCount: number; /** * Optional. The template used to create tasks for this execution. */ template: outputs.run.v1.TaskTemplateSpecResponse; } /** * ExecutionTemplateSpec describes the metadata and spec an Execution should have when created from a job. */ interface ExecutionTemplateSpecResponse { /** * Optional. Optional metadata for this Execution, including labels and annotations. The following annotation keys set properties of the created execution: * `run.googleapis.com/cloudsql-instances` sets Cloud SQL connections. Multiple values should be comma separated. * `run.googleapis.com/vpc-access-connector` sets a Serverless VPC Access connector. * `run.googleapis.com/vpc-access-egress` sets VPC egress. Supported values are `all-traffic`, `all` (deprecated), and `private-ranges-only`. `all-traffic` and `all` provide the same functionality. `all` is deprecated but will continue to be supported. Prefer `all-traffic`. */ metadata: outputs.run.v1.ObjectMetaResponse; /** * ExecutionSpec holds the desired configuration for executions of this job. */ spec: outputs.run.v1.ExecutionSpecResponse; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * GRPCAction describes an action involving a GRPC port. */ interface GRPCActionResponse { /** * Port number of the gRPC service. Number must be in the range 1 to 65535. */ port: number; /** * Service is the name of the service to place in the gRPC HealthCheckRequest. If this is not specified, the default behavior is defined by gRPC. */ service: string; } /** * Conditions show the status of reconciliation progress on a given resource. Most resource use a top-level condition type "Ready" or "Completed" to show overall status with other conditions to checkpoint each stage of reconciliation. Note that if metadata.Generation does not equal status.ObservedGeneration, the conditions shown may not be relevant for the current spec. */ interface GoogleCloudRunV1ConditionResponse { /** * Optional. Last time the condition transitioned from one status to another. */ lastTransitionTime: string; /** * Optional. Human readable message indicating details about the current status. */ message: string; /** * Optional. One-word CamelCase reason for the condition's last transition. These are intended to be stable, unique values which the client may use to trigger error handling logic, whereas messages which may be changed later by the server. */ reason: string; /** * Optional. How to interpret this condition. One of Error, Warning, or Info. Conditions of severity Info do not contribute to resource readiness. */ severity: string; /** * Status of the condition, one of True, False, Unknown. */ status: string; /** * type is used to communicate the status of the reconciliation process. Types common to all resources include: * "Ready" or "Completed": True when the Resource is ready. */ type: string; } /** * HTTPGetAction describes an action based on HTTP Get requests. */ interface HTTPGetActionResponse { /** * Not supported by Cloud Run. */ host: string; /** * Custom headers to set in the request. HTTP allows repeated headers. */ httpHeaders: outputs.run.v1.HTTPHeaderResponse[]; /** * Path to access on the HTTP server. */ path: string; /** * Port number to access on the container. Number must be in the range 1 to 65535. */ port: number; /** * Not supported by Cloud Run. */ scheme: string; } /** * HTTPHeader describes a custom header to be used in HTTP probes */ interface HTTPHeaderResponse { /** * The header field name */ name: string; /** * The header field value */ value: string; } /** * JobSpec describes how the job will look. */ interface JobSpecResponse { /** * Optional. Describes the execution that will be created when running a job. */ template: outputs.run.v1.ExecutionTemplateSpecResponse; } /** * JobStatus represents the current state of a Job. */ interface JobStatusResponse { /** * Conditions communicate information about ongoing/complete reconciliation processes that bring the "spec" inline with the observed state of the world. Job-specific conditions include: * `Ready`: `True` when the job is ready to be executed. */ conditions: outputs.run.v1.GoogleCloudRunV1ConditionResponse[]; /** * Number of executions created for this job. */ executionCount: number; /** * A pointer to the most recently created execution for this job. This is set regardless of the eventual state of the execution. */ latestCreatedExecution: outputs.run.v1.ExecutionReferenceResponse; /** * The 'generation' of the job that was last processed by the controller. */ observedGeneration: number; } /** * Maps a string key to a path within a volume. */ interface KeyToPathResponse { /** * The Cloud Secret Manager secret version. Can be 'latest' for the latest value, or an integer or a secret alias for a specific version. The key to project. */ key: string; /** * (Optional) Mode bits to use on this file, must be a value between 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be used. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. */ mode: number; /** * The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. */ path: string; } /** * Not supported by Cloud Run. LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. */ interface LocalObjectReferenceResponse { /** * Name of the referent. */ name: string; } /** * google.cloud.run.meta.v1.ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. */ interface ObjectMetaResponse { /** * Unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. In Cloud Run, annotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted, and the accepted annotations will be different depending on the resource type. * `autoscaling.knative.dev/maxScale`: Revision. * `autoscaling.knative.dev/minScale`: Revision. * `run.googleapis.com/binary-authorization-breakglass`: Service, Job, * `run.googleapis.com/binary-authorization`: Service, Job, Execution. * `run.googleapis.com/client-name`: All resources. * `run.googleapis.com/cloudsql-instances`: Revision, Execution. * `run.googleapis.com/container-dependencies`: Revision. * `run.googleapis.com/cpu-throttling`: Revision. * `run.googleapis.com/custom-audiences`: Service. * `run.googleapis.com/description`: Service. * `run.googleapis.com/disable-default-url`: Service. * `run.googleapis.com/encryption-key-shutdown-hours`: Revision * `run.googleapis.com/encryption-key`: Revision, Execution. * `run.googleapis.com/execution-environment`: Revision, Execution. * `run.googleapis.com/gc-traffic-tags`: Service. * `run.googleapis.com/ingress`: Service. * `run.googleapis.com/launch-stage`: Service, Job. * `run.googleapis.com/minScale`: Service (ALPHA) * `run.googleapis.com/network-interfaces`: Revision, Execution. * `run.googleapis.com/post-key-revocation-action-type`: Revision. * `run.googleapis.com/secrets`: Revision, Execution. * `run.googleapis.com/secure-session-agent`: Revision. * `run.googleapis.com/sessionAffinity`: Revision. * `run.googleapis.com/startup-cpu-boost`: Revision. * `run.googleapis.com/vpc-access-connector`: Revision, Execution. * `run.googleapis.com/vpc-access-egress`: Revision, Execution. */ annotations: { [key: string]: string; }; /** * Not supported by Cloud Run */ clusterName: string; /** * UTC timestamp representing the server time when this object was created. */ creationTimestamp: string; /** * Not supported by Cloud Run */ deletionGracePeriodSeconds: number; /** * The read-only soft deletion timestamp for this resource. In Cloud Run, users are not able to set this field. Instead, they must call the corresponding Delete API. */ deletionTimestamp: string; /** * Not supported by Cloud Run */ finalizers: string[]; /** * Not supported by Cloud Run */ generateName: string; /** * A system-provided sequence number representing a specific generation of the desired state. */ generation: number; /** * Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and routes. */ labels: { [key: string]: string; }; /** * The name of the resource. Name is required when creating top-level resources (Service, Job), must be unique within a Cloud Run project/region, and cannot be changed once created. */ name: string; /** * Defines the space within each name must be unique within a Cloud Run region. In Cloud Run, it must be project ID or number. */ namespace: string; /** * Not supported by Cloud Run */ ownerReferences: outputs.run.v1.OwnerReferenceResponse[]; /** * Opaque, system-generated value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. */ resourceVersion: string; /** * URL representing this object. */ selfLink: string; /** * Unique, system-generated identifier for this resource. */ uid: string; } /** * This is not supported or used by Cloud Run. */ interface OwnerReferenceResponse { /** * This is not supported or used by Cloud Run. */ apiVersion: string; /** * This is not supported or used by Cloud Run. */ blockOwnerDeletion: boolean; /** * This is not supported or used by Cloud Run. */ controller: boolean; /** * This is not supported or used by Cloud Run. */ kind: string; /** * This is not supported or used by Cloud Run. */ name: string; /** * This is not supported or used by Cloud Run. */ uid: string; } /** * Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. */ interface ProbeResponse { /** * Not supported by Cloud Run. */ exec: outputs.run.v1.ExecActionResponse; /** * Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. */ failureThreshold: number; /** * GRPCAction specifies an action involving a GRPC port. */ grpc: outputs.run.v1.GRPCActionResponse; /** * HTTPGet specifies the http request to perform. */ httpGet: outputs.run.v1.HTTPGetActionResponse; /** * Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. */ initialDelaySeconds: number; /** * How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds. */ periodSeconds: number; /** * Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 if set. */ successThreshold: number; /** * TCPSocket specifies an action involving a TCP port. */ tcpSocket: outputs.run.v1.TCPSocketActionResponse; /** * Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds; if period_seconds is not set, must be less or equal than 10. */ timeoutSeconds: number; } /** * A DNS resource record. */ interface ResourceRecordResponse { /** * Relative name of the object affected by this record. Only applicable for `CNAME` records. Example: 'www'. */ name: string; /** * Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1). */ rrdata: string; /** * Resource record type. Example: `AAAA`. */ type: string; } /** * ResourceRequirements describes the compute resource requirements. */ interface ResourceRequirementsResponse { /** * Limits describes the maximum amount of compute resources allowed. Only 'cpu' and 'memory' keys are supported. * For supported 'cpu' values, go to https://cloud.google.com/run/docs/configuring/cpu. * For supported 'memory' values and syntax, go to https://cloud.google.com/run/docs/configuring/memory-limits */ limits: { [key: string]: string; }; /** * Requests describes the minimum amount of compute resources required. Only `cpu` and `memory` are supported. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. * For supported 'cpu' values, go to https://cloud.google.com/run/docs/configuring/cpu. * For supported 'memory' values and syntax, go to https://cloud.google.com/run/docs/configuring/memory-limits */ requests: { [key: string]: string; }; } /** * RevisionSpec holds the desired state of the Revision (from the client). */ interface RevisionSpecResponse { /** * ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. If not specified, defaults to 80. */ containerConcurrency: number; /** * Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. */ containers: outputs.run.v1.ContainerResponse[]; /** * Not supported by Cloud Run. */ enableServiceLinks: boolean; /** * Not supported by Cloud Run. */ imagePullSecrets: outputs.run.v1.LocalObjectReferenceResponse[]; /** * Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account. */ serviceAccountName: string; /** * TimeoutSeconds holds the max duration the instance is allowed for responding to a request. Cloud Run: defaults to 300 seconds (5 minutes). Maximum allowed value is 3600 seconds (1 hour). */ timeoutSeconds: number; volumes: outputs.run.v1.VolumeResponse[]; } /** * RevisionTemplateSpec describes the data a revision should have when created from a template. */ interface RevisionTemplateResponse { /** * Optional metadata for this Revision, including labels and annotations. Name will be generated by the Configuration. The following annotation keys set properties of the created revision: * `autoscaling.knative.dev/minScale` sets the minimum number of instances. * `autoscaling.knative.dev/maxScale` sets the maximum number of instances. * `run.googleapis.com/cloudsql-instances` sets Cloud SQL connections. Multiple values should be comma separated. * `run.googleapis.com/vpc-access-connector` sets a Serverless VPC Access connector. * `run.googleapis.com/vpc-access-egress` sets VPC egress. Supported values are `all-traffic`, `all` (deprecated), and `private-ranges-only`. `all-traffic` and `all` provide the same functionality. `all` is deprecated but will continue to be supported. Prefer `all-traffic`. */ metadata: outputs.run.v1.ObjectMetaResponse; /** * RevisionSpec holds the desired state of the Revision (from the client). */ spec: outputs.run.v1.RevisionSpecResponse; } /** * Not supported by Cloud Run. SecretEnvSource selects a Secret to populate the environment variables with. The contents of the target Secret's Data field will represent the key-value pairs as environment variables. */ interface SecretEnvSourceResponse { /** * This field should not be used directly as it is meant to be inlined directly into the message. Use the "name" field instead. */ localObjectReference: outputs.run.v1.LocalObjectReferenceResponse; /** * The Secret to select from. */ name: string; /** * Specify whether the Secret must be defined */ optional: boolean; } /** * SecretKeySelector selects a key of a Secret. */ interface SecretKeySelectorResponse { /** * A Cloud Secret Manager secret version. Must be 'latest' for the latest version, an integer for a specific version, or a version alias. The key of the secret to select from. Must be a valid secret key. */ key: string; /** * This field should not be used directly as it is meant to be inlined directly into the message. Use the "name" field instead. */ localObjectReference: outputs.run.v1.LocalObjectReferenceResponse; /** * The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. The name of the secret in the pod's namespace to select from. */ name: string; /** * Specify whether the Secret or its key must be defined. */ optional: boolean; } /** * A volume representing a secret stored in Google Secret Manager. The secret's value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. */ interface SecretVolumeSourceResponse { /** * Integer representation of mode bits to use on created files by default. Must be a value between 01 and 0777 (octal). If 0 or not set, it will default to 0444. Directories within the path are not affected by this setting. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. */ defaultMode: number; /** * A list of secret versions to mount in the volume. If no items are specified, the volume will expose a file with the same name as the secret name. The contents of the file will be the data in the latest version of the secret. If items are specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify both a key and a path. */ items: outputs.run.v1.KeyToPathResponse[]; /** * Not supported by Cloud Run. */ optional: boolean; /** * The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Name of the secret in the container's namespace to use. */ secretName: string; } /** * Not supported by Cloud Run. SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. */ interface SecurityContextResponse { /** * The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. */ runAsUser: number; } /** * ServiceSpec holds the desired state of the Route (from the client), which is used to manipulate the underlying Route and Configuration(s). */ interface ServiceSpecResponse { /** * Holds the latest specification for the Revision to be stamped out. */ template: outputs.run.v1.RevisionTemplateResponse; /** * Specifies how to distribute traffic over a collection of Knative Revisions and Configurations to the Service's main URL. */ traffic: outputs.run.v1.TrafficTargetResponse[]; } /** * The current state of the Service. Output only. */ interface ServiceStatusResponse { /** * Similar to url, information on where the service is available on HTTP. */ address: outputs.run.v1.AddressableResponse; /** * Conditions communicate information about ongoing/complete reconciliation processes that bring the `spec` inline with the observed state of the world. Service-specific conditions include: * `ConfigurationsReady`: `True` when the underlying Configuration is ready. * `RoutesReady`: `True` when the underlying Route is ready. * `Ready`: `True` when all underlying resources are ready. */ conditions: outputs.run.v1.GoogleCloudRunV1ConditionResponse[]; /** * Name of the last revision that was created from this Service's Configuration. It might not be ready yet, for that use LatestReadyRevisionName. */ latestCreatedRevisionName: string; /** * Name of the latest Revision from this Service's Configuration that has had its `Ready` condition become `True`. */ latestReadyRevisionName: string; /** * Returns the generation last seen by the system. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation and the Ready condition's status is True or False. */ observedGeneration: number; /** * Holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. */ traffic: outputs.run.v1.TrafficTargetResponse[]; /** * URL that will distribute traffic over the provided traffic targets. It generally has the form `https://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app` */ url: string; } /** * TCPSocketAction describes an action based on opening a socket */ interface TCPSocketActionResponse { /** * Not supported by Cloud Run. */ host: string; /** * Port number to access on the container. Number must be in the range 1 to 65535. */ port: number; } /** * TaskSpec is a description of a task. */ interface TaskSpecResponse { /** * Optional. List of containers belonging to the task. We disallow a number of fields on this Container. Only a single container may be provided. */ containers: outputs.run.v1.ContainerResponse[]; /** * Optional. Number of retries allowed per task, before marking this job failed. Defaults to 3. */ maxRetries: number; /** * Optional. Email address of the IAM service account associated with the task of a job execution. The service account represents the identity of the running task, and determines what permissions the task has. If not provided, the task will use the project's default service account. */ serviceAccountName: string; /** * Optional. Duration in seconds the task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout. Defaults to 600 seconds. */ timeoutSeconds: string; /** * Optional. List of volumes that can be mounted by containers belonging to the task. */ volumes: outputs.run.v1.VolumeResponse[]; } /** * TaskTemplateSpec describes the data a task should have when created from a template. */ interface TaskTemplateSpecResponse { /** * Optional. Specification of the desired behavior of the task. */ spec: outputs.run.v1.TaskSpecResponse; } /** * TrafficTarget holds a single entry of the routing table for a Route. */ interface TrafficTargetResponse { /** * [Deprecated] Not supported in Cloud Run. It must be empty. * * @deprecated [Deprecated] Not supported in Cloud Run. It must be empty. */ configurationName: string; /** * Uses the "status.latestReadyRevisionName" of the Service to determine the traffic target. When it changes, traffic will automatically migrate from the prior "latest ready" revision to the new one. This field must be false if RevisionName is set. This field defaults to true otherwise. If the field is set to true on Status, this means that the Revision was resolved from the Service's latest ready revision. */ latestRevision: boolean; /** * Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. */ percent: number; /** * Points this traffic target to a specific Revision. This field is mutually exclusive with latest_revision. */ revisionName: string; /** * Tag is used to expose a dedicated url for referencing this target exclusively. */ tag: string; /** * URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. https://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) */ url: string; } /** * VolumeMount describes a mounting of a Volume within a container. */ interface VolumeMountResponse { /** * Path within the container at which the volume should be mounted. Must not contain ':'. */ mountPath: string; /** * The name of the volume. There must be a corresponding Volume with the same name. */ name: string; /** * Sets the mount to be read-only or read-write. Not used by Cloud Run. */ readOnly: boolean; /** * Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). */ subPath: string; } /** * Volume represents a named volume in a container. */ interface VolumeResponse { /** * Not supported in Cloud Run. */ configMap: outputs.run.v1.ConfigMapVolumeSourceResponse; /** * Ephemeral storage used as a shared volume. */ emptyDir: outputs.run.v1.EmptyDirVolumeSourceResponse; /** * Volume's name. In Cloud Run Fully Managed, the name 'cloudsql' is reserved. */ name: string; /** * The secret's value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secretName. */ secret: outputs.run.v1.SecretVolumeSourceResponse; } } namespace v2 { /** * Settings for Binary Authorization feature. */ interface GoogleCloudRunV2BinaryAuthorizationResponse { /** * If present, indicates to use Breakglass using this justification. If use_default is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass */ breakglassJustification: string; /** * If True, indicates to use the default project's binary authorization policy. If False, binary authorization will be disabled. */ useDefault: boolean; } /** * Represents a set of Cloud SQL instances. Each one will be available under /cloudsql/[instance]. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run. */ interface GoogleCloudRunV2CloudSqlInstanceResponse { /** * The Cloud SQL instance connection names, as can be found in https://console.cloud.google.com/sql/instances. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run. Format: {project}:{location}:{instance} */ instances: string[]; } /** * Defines a status condition for a resource. */ interface GoogleCloudRunV2ConditionResponse { /** * A reason for the execution condition. */ executionReason: string; /** * Last time the condition transitioned from one status to another. */ lastTransitionTime: string; /** * Human readable message indicating details about the current status. */ message: string; /** * A common (service-level) reason for this condition. */ reason: string; /** * A reason for the revision condition. */ revisionReason: string; /** * How to interpret failures of this condition, one of Error, Warning, Info */ severity: string; /** * State of the condition. */ state: string; /** * type is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * "Ready": True when the Resource is ready. */ type: string; } /** * ContainerPort represents a network port in a single container. */ interface GoogleCloudRunV2ContainerPortResponse { /** * Port number the container listens on. This must be a valid TCP port number, 0 < container_port < 65536. */ containerPort: number; /** * If specified, used to specify which protocol to use. Allowed values are "http1" and "h2c". */ name: string; } /** * A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments can be supplied by the system to the container at runtime. */ interface GoogleCloudRunV2ContainerResponse { /** * Arguments to the entrypoint. The docker image's CMD is used if this is not provided. */ args: string[]; /** * Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. */ command: string[]; /** * Names of the containers that must start before this container. */ dependsOn: string[]; /** * List of environment variables to set in the container. */ env: outputs.run.v2.GoogleCloudRunV2EnvVarResponse[]; /** * Name of the container image in Dockerhub, Google Artifact Registry, or Google Container Registry. If the host is not provided, Dockerhub is assumed. */ image: string; /** * Periodic probe of container liveness. Container will be restarted if the probe fails. */ livenessProbe: outputs.run.v2.GoogleCloudRunV2ProbeResponse; /** * Name of the container specified as a DNS_LABEL (RFC 1123). */ name: string; /** * List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on. */ ports: outputs.run.v2.GoogleCloudRunV2ContainerPortResponse[]; /** * Compute Resource requirements by this container. */ resources: outputs.run.v2.GoogleCloudRunV2ResourceRequirementsResponse; /** * Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. */ startupProbe: outputs.run.v2.GoogleCloudRunV2ProbeResponse; /** * Volume to mount into the container's filesystem. */ volumeMounts: outputs.run.v2.GoogleCloudRunV2VolumeMountResponse[]; /** * Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. */ workingDir: string; } /** * In memory (tmpfs) ephemeral storage. It is ephemeral in the sense that when the sandbox is taken down, the data is destroyed with it (it does not persist across sandbox runs). */ interface GoogleCloudRunV2EmptyDirVolumeSourceResponse { /** * The medium on which the data is stored. Acceptable values today is only MEMORY or none. When none, the default will currently be backed by memory but could change over time. +optional */ medium: string; /** * Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers. The default is nil which means that the limit is undefined. More info: https://cloud.google.com/run/docs/configuring/in-memory-volumes#configure-volume. Info in Kubernetes: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir */ sizeLimit: string; } /** * EnvVar represents an environment variable present in a Container. */ interface GoogleCloudRunV2EnvVarResponse { /** * Name of the environment variable. Must not exceed 32768 characters. */ name: string; /** * Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "", and the maximum length is 32768 bytes. */ value: string; /** * Source for the environment variable's value. */ valueSource: outputs.run.v2.GoogleCloudRunV2EnvVarSourceResponse; } /** * EnvVarSource represents a source for the value of an EnvVar. */ interface GoogleCloudRunV2EnvVarSourceResponse { /** * Selects a secret and a specific version from Cloud Secret Manager. */ secretKeyRef: outputs.run.v2.GoogleCloudRunV2SecretKeySelectorResponse; } /** * Reference to an Execution. Use /Executions.GetExecution with the given name to get full execution including the latest status. */ interface GoogleCloudRunV2ExecutionReferenceResponse { /** * Creation timestamp of the execution. */ completionTime: string; /** * Creation timestamp of the execution. */ createTime: string; /** * Name of the execution. */ name: string; } /** * ExecutionTemplate describes the data an execution should have when created from a template. */ interface GoogleCloudRunV2ExecutionTemplateResponse { /** * Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. Cloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. All system annotations in v1 now have a corresponding field in v2 ExecutionTemplate. This field follows Kubernetes annotations' namespacing, limits, and rules. */ annotations: { [key: string]: string; }; /** * Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. Cloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. All system labels in v1 now have a corresponding field in v2 ExecutionTemplate. */ labels: { [key: string]: string; }; /** * Specifies the maximum desired number of tasks the execution should run at given time. Must be <= task_count. When the job is run, if this field is 0 or unset, the maximum possible value will be used for that execution. The actual number of tasks running in steady state will be less than this number when there are fewer tasks waiting to be completed remaining, i.e. when the work left to do is less than max parallelism. */ parallelism: number; /** * Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution. Defaults to 1. */ taskCount: number; /** * Describes the task(s) that will be created when executing an execution. */ template: outputs.run.v2.GoogleCloudRunV2TaskTemplateResponse; } /** * GRPCAction describes an action involving a GRPC port. */ interface GoogleCloudRunV2GRPCActionResponse { /** * Port number of the gRPC service. Number must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort. */ port: number; /** * Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If this is not specified, the default behavior is defined by gRPC. */ service: string; } /** * HTTPGetAction describes an action based on HTTP Get requests. */ interface GoogleCloudRunV2HTTPGetActionResponse { /** * Custom headers to set in the request. HTTP allows repeated headers. */ httpHeaders: outputs.run.v2.GoogleCloudRunV2HTTPHeaderResponse[]; /** * Path to access on the HTTP server. Defaults to '/'. */ path: string; /** * Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort. */ port: number; } /** * HTTPHeader describes a custom header to be used in HTTP probes */ interface GoogleCloudRunV2HTTPHeaderResponse { /** * The header field name */ name: string; /** * The header field value */ value: string; } /** * Direct VPC egress settings. */ interface GoogleCloudRunV2NetworkInterfaceResponse { /** * The VPC network that the Cloud Run resource will be able to send traffic to. At least one of network or subnetwork must be specified. If both network and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If network is not specified, it will be looked up from the subnetwork. */ network: string; /** * The VPC subnetwork that the Cloud Run resource will get IPs from. At least one of network or subnetwork must be specified. If both network and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the subnetwork with the same name with the network will be used. */ subnetwork: string; /** * Network tags applied to this Cloud Run resource. */ tags: string[]; } /** * Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. */ interface GoogleCloudRunV2ProbeResponse { /** * Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. */ failureThreshold: number; /** * GRPC specifies an action involving a gRPC port. Exactly one of httpGet, tcpSocket, or grpc must be specified. */ grpc: outputs.run.v2.GoogleCloudRunV2GRPCActionResponse; /** * HTTPGet specifies the http request to perform. Exactly one of httpGet, tcpSocket, or grpc must be specified. */ httpGet: outputs.run.v2.GoogleCloudRunV2HTTPGetActionResponse; /** * Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. */ initialDelaySeconds: number; /** * How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds. */ periodSeconds: number; /** * TCPSocket specifies an action involving a TCP port. Exactly one of httpGet, tcpSocket, or grpc must be specified. */ tcpSocket: outputs.run.v2.GoogleCloudRunV2TCPSocketActionResponse; /** * Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds. */ timeoutSeconds: number; } /** * ResourceRequirements describes the compute resource requirements. */ interface GoogleCloudRunV2ResourceRequirementsResponse { /** * Determines whether CPU should be throttled or not outside of requests. */ cpuIdle: boolean; /** * Only ´memory´ and 'cpu' are supported. Notes: * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 CPU requires at least 2Gi of memory. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. * For supported 'memory' values and syntax, go to https://cloud.google.com/run/docs/configuring/memory-limits */ limits: { [key: string]: string; }; /** * Determines whether CPU should be boosted on startup of a new container instance above the requested CPU threshold, this can help reduce cold-start latency. */ startupCpuBoost: boolean; } /** * Settings for revision-level scaling settings. */ interface GoogleCloudRunV2RevisionScalingResponse { /** * Maximum number of serving instances that this resource should have. */ maxInstanceCount: number; /** * Minimum number of serving instances that this resource should have. */ minInstanceCount: number; } /** * RevisionTemplate describes the data a revision should have when created from a template. */ interface GoogleCloudRunV2RevisionTemplateResponse { /** * Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. Cloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. All system annotations in v1 now have a corresponding field in v2 RevisionTemplate. This field follows Kubernetes annotations' namespacing, limits, and rules. */ annotations: { [key: string]: string; }; /** * Holds the single container that defines the unit of execution for this Revision. */ containers: outputs.run.v2.GoogleCloudRunV2ContainerResponse[]; /** * A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek */ encryptionKey: string; /** * The sandbox environment to host this Revision. */ executionEnvironment: string; /** * Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. Cloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. All system labels in v1 now have a corresponding field in v2 RevisionTemplate. */ labels: { [key: string]: string; }; /** * Sets the maximum number of requests that each serving instance can receive. */ maxInstanceRequestConcurrency: number; /** * The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name. */ revision: string; /** * Scaling settings for this Revision. */ scaling: outputs.run.v2.GoogleCloudRunV2RevisionScalingResponse; /** * Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account. */ serviceAccount: string; /** * Enable session affinity. */ sessionAffinity: boolean; /** * Max allowed time for an instance to respond to a request. */ timeout: string; /** * A list of Volumes to make available to containers. */ volumes: outputs.run.v2.GoogleCloudRunV2VolumeResponse[]; /** * VPC Access configuration to use for this Revision. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc. */ vpcAccess: outputs.run.v2.GoogleCloudRunV2VpcAccessResponse; } /** * SecretEnvVarSource represents a source for the value of an EnvVar. */ interface GoogleCloudRunV2SecretKeySelectorResponse { /** * The name of the secret in Cloud Secret Manager. Format: {secret_name} if the secret is in the same project. projects/{project}/secrets/{secret_name} if the secret is in a different project. */ secret: string; /** * The Cloud Secret Manager secret version. Can be 'latest' for the latest version, an integer for a specific version, or a version alias. */ version: string; } /** * The secret's value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret. */ interface GoogleCloudRunV2SecretVolumeSourceResponse { /** * Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. This might be in conflict with other options that affect the file mode, like fsGroup, and as a result, other mode bits could be set. */ defaultMode: number; /** * If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version. */ items: outputs.run.v2.GoogleCloudRunV2VersionToPathResponse[]; /** * The name of the secret in Cloud Secret Manager. Format: {secret} if the secret is in the same project. projects/{project}/secrets/{secret} if the secret is in a different project. */ secret: string; } /** * Scaling settings applied at the service level rather than at the revision level. */ interface GoogleCloudRunV2ServiceScalingResponse { /** * total min instances for the service. This number of instances is divided among all revisions with specified traffic based on the percent of traffic they are receiving. (ALPHA) */ minInstanceCount: number; } /** * TCPSocketAction describes an action based on opening a socket */ interface GoogleCloudRunV2TCPSocketActionResponse { /** * Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort. */ port: number; } /** * TaskTemplate describes the data a task should have when created from a template. */ interface GoogleCloudRunV2TaskTemplateResponse { /** * Holds the single container that defines the unit of execution for this task. */ containers: outputs.run.v2.GoogleCloudRunV2ContainerResponse[]; /** * A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek */ encryptionKey: string; /** * The execution environment being used to host this Task. */ executionEnvironment: string; /** * Number of retries allowed per Task, before marking this Task failed. Defaults to 3. */ maxRetries: number; /** * Email address of the IAM service account associated with the Task of a Job. The service account represents the identity of the running task, and determines what permissions the task has. If not provided, the task will use the project's default service account. */ serviceAccount: string; /** * Max allowed time duration the Task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout. Defaults to 600 seconds. */ timeout: string; /** * A list of Volumes to make available to containers. */ volumes: outputs.run.v2.GoogleCloudRunV2VolumeResponse[]; /** * VPC Access configuration to use for this Task. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc. */ vpcAccess: outputs.run.v2.GoogleCloudRunV2VpcAccessResponse; } /** * Holds a single traffic routing entry for the Service. Allocations can be done to a specific Revision name, or pointing to the latest Ready Revision. */ interface GoogleCloudRunV2TrafficTargetResponse { /** * Specifies percent of the traffic to this Revision. This defaults to zero if unspecified. */ percent: number; /** * Revision to which to send this portion of traffic, if traffic allocation is by revision. */ revision: string; /** * Indicates a string to be part of the URI to exclusively reference this target. */ tag: string; /** * The allocation type for this traffic target. */ type: string; } /** * Represents the observed state of a single `TrafficTarget` entry. */ interface GoogleCloudRunV2TrafficTargetStatusResponse { /** * Specifies percent of the traffic to this Revision. */ percent: number; /** * Revision to which this traffic is sent. */ revision: string; /** * Indicates the string used in the URI to exclusively reference this target. */ tag: string; /** * The allocation type for this traffic target. */ type: string; /** * Displays the target URI. */ uri: string; } /** * VersionToPath maps a specific version of a secret to a relative file to mount to, relative to VolumeMount's mount_path. */ interface GoogleCloudRunV2VersionToPathResponse { /** * Integer octal mode bits to use on this file, must be a value between 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be used. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. */ mode: number; /** * The relative path of the secret in the container. */ path: string; /** * The Cloud Secret Manager secret version. Can be 'latest' for the latest value, or an integer or a secret alias for a specific version. */ version: string; } /** * VolumeMount describes a mounting of a Volume within a container. */ interface GoogleCloudRunV2VolumeMountResponse { /** * Path within the container at which the volume should be mounted. Must not contain ':'. For Cloud SQL volumes, it can be left empty, or must otherwise be `/cloudsql`. All instances defined in the Volume will be available as `/cloudsql/[instance]`. For more information on Cloud SQL volumes, visit https://cloud.google.com/sql/docs/mysql/connect-run */ mountPath: string; /** * This must match the Name of a Volume. */ name: string; } /** * Volume represents a named volume in a container. */ interface GoogleCloudRunV2VolumeResponse { /** * For Cloud SQL volumes, contains the specific instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run. */ cloudSqlInstance: outputs.run.v2.GoogleCloudRunV2CloudSqlInstanceResponse; /** * Ephemeral storage used as a shared volume. */ emptyDir: outputs.run.v2.GoogleCloudRunV2EmptyDirVolumeSourceResponse; /** * Volume's name. */ name: string; /** * Secret represents a secret that should populate this volume. */ secret: outputs.run.v2.GoogleCloudRunV2SecretVolumeSourceResponse; } /** * VPC Access settings. For more information on sending traffic to a VPC network, visit https://cloud.google.com/run/docs/configuring/connecting-vpc. */ interface GoogleCloudRunV2VpcAccessResponse { /** * VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number. For more information on sending traffic to a VPC network via a connector, visit https://cloud.google.com/run/docs/configuring/vpc-connectors. */ connector: string; /** * Traffic VPC egress settings. If not provided, it defaults to PRIVATE_RANGES_ONLY. */ egress: string; /** * Direct VPC egress settings. Currently only single network interface is supported. */ networkInterfaces: outputs.run.v2.GoogleCloudRunV2NetworkInterfaceResponse[]; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface GoogleIamV1AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.run.v2.GoogleIamV1AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface GoogleIamV1AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface GoogleIamV1BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.run.v2.GoogleTypeExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface GoogleTypeExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace runtimeconfig { namespace v1beta1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.runtimeconfig.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * A Cardinality condition for the Waiter resource. A cardinality condition is met when the number of variables under a specified path prefix reaches a predefined number. For example, if you set a Cardinality condition where the `path` is set to `/foo` and the number of paths is set to `2`, the following variables would meet the condition in a RuntimeConfig resource: + `/foo/variable1 = "value1"` + `/foo/variable2 = "value2"` + `/bar/variable3 = "value3"` It would not satisfy the same condition with the `number` set to `3`, however, because there is only 2 paths that start with `/foo`. Cardinality conditions are recursive; all subtrees under the specific path prefix are counted. */ interface CardinalityResponse { /** * The number variables under the `path` that must exist to meet this condition. Defaults to 1 if not specified. */ number: number; /** * The root of the variable subtree to monitor. For example, `/foo`. */ path: string; } /** * The condition that a Waiter resource is waiting for. */ interface EndConditionResponse { /** * The cardinality of the `EndCondition`. */ cardinality: outputs.runtimeconfig.v1beta1.CardinalityResponse; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } } export declare namespace secretmanager { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.secretmanager.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * A replication policy that replicates the Secret payload without any restrictions. */ interface AutomaticResponse { /** * Optional. The customer-managed encryption configuration of the Secret. If no configuration is provided, Google-managed default encryption is used. Updates to the Secret encryption configuration only apply to SecretVersions added afterwards. They do not apply retroactively to existing SecretVersions. */ customerManagedEncryption: outputs.secretmanager.v1.CustomerManagedEncryptionResponse; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.secretmanager.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Configuration for encrypting secret payloads using customer-managed encryption keys (CMEK). */ interface CustomerManagedEncryptionResponse { /** * The resource name of the Cloud KMS CryptoKey used to encrypt secret payloads. For secrets using the UserManaged replication policy type, Cloud KMS CryptoKeys must reside in the same location as the replica location. For secrets using the Automatic replication policy type, Cloud KMS CryptoKeys must reside in `global`. The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`. */ kmsKeyName: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Represents a Replica for this Secret. */ interface ReplicaResponse { /** * Optional. The customer-managed encryption configuration of the User-Managed Replica. If no configuration is provided, Google-managed default encryption is used. Updates to the Secret encryption configuration only apply to SecretVersions added afterwards. They do not apply retroactively to existing SecretVersions. */ customerManagedEncryption: outputs.secretmanager.v1.CustomerManagedEncryptionResponse; /** * The canonical IDs of the location to replicate data. For example: `"us-east1"`. */ location: string; } /** * A policy that defines the replication and encryption configuration of data. */ interface ReplicationResponse { /** * The Secret will automatically be replicated without any restrictions. */ automatic: outputs.secretmanager.v1.AutomaticResponse; /** * The Secret will only be replicated into the locations specified. */ userManaged: outputs.secretmanager.v1.UserManagedResponse; } /** * The rotation time and period for a Secret. At next_rotation_time, Secret Manager will send a Pub/Sub notification to the topics configured on the Secret. Secret.topics must be set to configure rotation. */ interface RotationResponse { /** * Optional. Timestamp in UTC at which the Secret is scheduled to rotate. Cannot be set to less than 300s (5 min) in the future and at most 3153600000s (100 years). next_rotation_time MUST be set if rotation_period is set. */ nextRotationTime: string; /** * Input only. The Duration between rotation notifications. Must be in seconds and at least 3600s (1h) and at most 3153600000s (100 years). If rotation_period is set, next_rotation_time must be set. next_rotation_time will be advanced by this period when the service automatically sends rotation notifications. */ rotationPeriod: string; } /** * A Pub/Sub topic which Secret Manager will publish to when control plane events occur on this secret. */ interface TopicResponse { /** * The resource name of the Pub/Sub topic that will be published to, in the following format: `projects/*/topics/*`. For publication to succeed, the Secret Manager service agent must have the `pubsub.topic.publish` permission on the topic. The Pub/Sub Publisher role (`roles/pubsub.publisher`) includes this permission. */ name: string; } /** * A replication policy that replicates the Secret payload into the locations specified in Secret.replication.user_managed.replicas */ interface UserManagedResponse { /** * The list of Replicas for this Secret. Cannot be empty. */ replicas: outputs.secretmanager.v1.ReplicaResponse[]; } } namespace v1beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.secretmanager.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * A replication policy that replicates the Secret payload without any restrictions. */ interface AutomaticResponse { } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.secretmanager.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Represents a Replica for this Secret. */ interface ReplicaResponse { /** * The canonical IDs of the location to replicate data. For example: `"us-east1"`. */ location: string; } /** * A policy that defines the replication configuration of data. */ interface ReplicationResponse { /** * The Secret will automatically be replicated without any restrictions. */ automatic: outputs.secretmanager.v1beta1.AutomaticResponse; /** * The Secret will only be replicated into the locations specified. */ userManaged: outputs.secretmanager.v1beta1.UserManagedResponse; } /** * A replication policy that replicates the Secret payload into the locations specified in Secret.replication.user_managed.replicas */ interface UserManagedResponse { /** * The list of Replicas for this Secret. Cannot be empty. */ replicas: outputs.secretmanager.v1beta1.ReplicaResponse[]; } } } export declare namespace securitycenter { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.securitycenter.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.securitycenter.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Defines the properties in a custom module configuration for Security Health Analytics. Use the custom module configuration to create custom detectors that generate custom findings for resources that you specify. */ interface GoogleCloudSecuritycenterV1CustomConfigResponse { /** * Custom output properties. */ customOutput: outputs.securitycenter.v1.GoogleCloudSecuritycenterV1CustomOutputSpecResponse; /** * Text that describes the vulnerability or misconfiguration that the custom module detects. This explanation is returned with each finding instance to help investigators understand the detected issue. The text must be enclosed in quotation marks. */ description: string; /** * The CEL expression to evaluate to produce findings. When the expression evaluates to true against a resource, a finding is generated. */ predicate: outputs.securitycenter.v1.ExprResponse; /** * An explanation of the recommended steps that security teams can take to resolve the detected issue. This explanation is returned with each finding generated by this module in the `nextSteps` property of the finding JSON. */ recommendation: string; /** * The resource types that the custom module operates on. Each custom module can specify up to 5 resource types. */ resourceSelector: outputs.securitycenter.v1.GoogleCloudSecuritycenterV1ResourceSelectorResponse; /** * The severity to assign to findings generated by the module. */ severity: string; } /** * A set of optional name-value pairs that define custom source properties to return with each finding that is generated by the custom module. The custom source properties that are defined here are included in the finding JSON under `sourceProperties`. */ interface GoogleCloudSecuritycenterV1CustomOutputSpecResponse { /** * A list of custom output properties to add to the finding. */ properties: outputs.securitycenter.v1.GoogleCloudSecuritycenterV1PropertyResponse[]; } /** * An individual name-value pair that defines a custom source property. */ interface GoogleCloudSecuritycenterV1PropertyResponse { /** * Name of the property for the custom output. */ name: string; /** * The CEL expression for the custom output. A resource property can be specified to return the value of the property or a text string enclosed in quotation marks. */ valueExpression: outputs.securitycenter.v1.ExprResponse; } /** * Resource for selecting resource type. */ interface GoogleCloudSecuritycenterV1ResourceSelectorResponse { /** * The resource types to run the detector on. */ resourceTypes: string[]; } /** * The config for streaming-based notifications, which send each event as soon as it is detected. */ interface StreamingConfigResponse { /** * Expression that defines the filter to apply across create/update events of assets or findings as specified by the event type. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the corresponding resource. The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. */ filter: string; } } namespace v1beta1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.securitycenter.v1beta1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.securitycenter.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace servicedirectory { namespace v1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.servicedirectory.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * An individual endpoint that provides a service. The service must already exist to create an endpoint. */ interface EndpointResponse { /** * Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. */ address: string; /** * Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. */ annotations: { [key: string]: string; }; /** * Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. */ name: string; /** * Immutable. The Google Compute Engine network (VPC) of the endpoint in the format `projects//locations/global/networks/*`. The project must be specified by project number (project id is rejected). Incorrectly formatted networks are rejected, we also check to make sure that you have the servicedirectory.networks.attach permission on the project specified. */ network: string; /** * Optional. Service Directory rejects values outside of `[0, 65535]`. */ port: number; /** * The globally unique identifier of the endpoint in the UUID4 format. */ uid: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } namespace v1beta1 { /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.servicedirectory.v1beta1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * An individual endpoint that provides a service. The service must already exist to create an endpoint. */ interface EndpointResponse { /** * Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. */ address: string; /** * The timestamp when the endpoint was created. */ createTime: string; /** * Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. */ metadata: { [key: string]: string; }; /** * Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. */ name: string; /** * Immutable. The Google Compute Engine network (VPC) of the endpoint in the format `projects//locations/global/networks/*`. The project must be specified by project number (project id is rejected). Incorrectly formatted networks are rejected, but no other validation is performed on this field (ex. network or project existence, reachability, or permissions). */ network: string; /** * Optional. Service Directory rejects values outside of `[0, 65535]`. */ port: number; /** * A globally unique identifier (in UUID4 format) for this endpoint. */ uid: string; /** * The timestamp when the endpoint was last updated. */ updateTime: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } } } export declare namespace servicemanagement { namespace v1 { /** * Api is a light-weight descriptor for an API Interface. Interfaces are also described as "protocol buffer services" in some contexts, such as by the "service" keyword in a .proto file, but they are different from API Services, which represent a concrete implementation of an interface as opposed to simply a description of methods and bindings. They are also sometimes simply referred to as "APIs" in other contexts, such as the name of this message itself. See https://cloud.google.com/apis/design/glossary for detailed terminology. */ interface ApiResponse { /** * The methods of this interface, in unspecified order. */ methods: outputs.servicemanagement.v1.MethodResponse[]; /** * Included interfaces. See Mixin. */ mixins: outputs.servicemanagement.v1.MixinResponse[]; /** * The fully qualified name of this interface, including package name followed by the interface's simple name. */ name: string; /** * Any metadata attached to the interface. */ options: outputs.servicemanagement.v1.OptionResponse[]; /** * Source context for the protocol buffer service represented by this message. */ sourceContext: outputs.servicemanagement.v1.SourceContextResponse; /** * The source syntax of the service. */ syntax: string; /** * A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces. */ version: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.servicemanagement.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). */ interface AuthProviderResponse { /** * The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, JWTs with audiences: - "https://[service.name]/[google.protobuf.Api.name]" - "https://[service.name]/" will be accepted. For example, if no audiences are in the setting, LibraryService API will accept JWTs with the following audiences: - https://library-example.googleapis.com/google.example.library.v1.LibraryService - https://library-example.googleapis.com/ Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com */ audiences: string; /** * Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec. */ authorizationUrl: string; /** * Identifies the principal that issued the JWT. See https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 Usually a URL or an email address. Example: https://securetoken.google.com Example: 1234567-compute@developer.gserviceaccount.com */ issuer: string; /** * URL of the provider's public key set to validate signature of the JWT. See [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). Optional if the key set document: - can be retrieved from [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html) of the issuer. - can be inferred from the email domain of the issuer (e.g. a Google service account). Example: https://www.googleapis.com/oauth2/v1/certs */ jwksUri: string; /** * Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: "Bearer " - header: x-goog-iap-jwt-assertion - query: access_token */ jwtLocations: outputs.servicemanagement.v1.JwtLocationResponse[]; } /** * User-defined authentication requirements, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). */ interface AuthRequirementResponse { /** * NOTE: This will be deprecated soon, once AuthProvider.audiences is implemented and accepted in all the runtime components. The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, only JWTs with audience "https://Service_name/API_name" will be accepted. For example, if no audiences are in the setting, LibraryService API will only accept JWTs with the following audience "https://library-example.googleapis.com/google.example.library.v1.LibraryService". Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com */ audiences: string; /** * id from authentication provider. Example: provider_id: bookstore_auth */ providerId: string; } /** * `Authentication` defines the authentication configuration for API methods provided by an API service. Example: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: "*" requirements: provider_id: google_calendar_auth - selector: google.calendar.Delegate oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read */ interface AuthenticationResponse { /** * Defines a set of authentication providers that a service supports. */ providers: outputs.servicemanagement.v1.AuthProviderResponse[]; /** * A list of authentication rules that apply to individual API methods. **NOTE:** All service configuration rules follow "last one wins" order. */ rules: outputs.servicemanagement.v1.AuthenticationRuleResponse[]; } /** * Authentication rules for the service. By default, if a method has any authentication requirements, every request must include a valid credential matching one of the requirements. It's an error to include more than one kind of credential in a single request. If a method doesn't have any auth requirements, request credentials will be ignored. */ interface AuthenticationRuleResponse { /** * If true, the service accepts API keys without any other credential. This flag only applies to HTTP and gRPC requests. */ allowWithoutCredential: boolean; /** * The requirements for OAuth credentials. */ oauth: outputs.servicemanagement.v1.OAuthRequirementsResponse; /** * Requirements for additional authentication providers. */ requirements: outputs.servicemanagement.v1.AuthRequirementResponse[]; /** * Selects the methods to which this rule applies. Refer to selector for syntax details. */ selector: string; } /** * `Backend` defines the backend configuration for a service. */ interface BackendResponse { /** * A list of API backend rules that apply to individual API methods. **NOTE:** All service configuration rules follow "last one wins" order. */ rules: outputs.servicemanagement.v1.BackendRuleResponse[]; } /** * A backend rule provides configuration for an individual API element. */ interface BackendRuleResponse { /** * The address of the API backend. The scheme is used to determine the backend protocol and security. The following schemes are accepted: SCHEME PROTOCOL SECURITY http:// HTTP None https:// HTTP TLS grpc:// gRPC None grpcs:// gRPC TLS It is recommended to explicitly include a scheme. Leaving out the scheme may cause constrasting behaviors across platforms. If the port is unspecified, the default is: - 80 for schemes without TLS - 443 for schemes with TLS For HTTP backends, use protocol to specify the protocol version. */ address: string; /** * The number of seconds to wait for a response from a request. The default varies based on the request protocol and deployment environment. */ deadline: number; /** * When disable_auth is true, a JWT ID token won't be generated and the original "Authorization" HTTP header will be preserved. If the header is used to carry the original token and is expected by the backend, this field must be set to true to preserve the header. */ disableAuth: boolean; /** * The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP "authorization" header, and sent to the backend. */ jwtAudience: string; /** * Deprecated, do not use. * * @deprecated Deprecated, do not use. */ minDeadline: number; /** * The number of seconds to wait for the completion of a long running operation. The default is no deadline. */ operationDeadline: number; /** * The map between request protocol and the backend address. */ overridesByRequestProtocol: { [key: string]: string; }; pathTranslation: string; /** * The protocol used for sending a request to the backend. The supported values are "http/1.1" and "h2". The default value is inferred from the scheme in the address field: SCHEME PROTOCOL http:// http/1.1 https:// http/1.1 grpc:// h2 grpcs:// h2 For secure HTTP backends (https://) that support HTTP/2, set this field to "h2" for improved performance. Configuring this field to non-default values is only supported for secure HTTP backends. This field will be ignored for all other backends. See https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids for more details on the supported values. */ protocol: string; /** * Selects the methods to which this rule applies. Refer to selector for syntax details. */ selector: string; } /** * Configuration of a specific billing destination (Currently only support bill against consumer project). */ interface BillingDestinationResponse { /** * Names of the metrics to report to this billing destination. Each name must be defined in Service.metrics section. */ metrics: string[]; /** * The monitored resource type. The type must be defined in Service.monitored_resources section. */ monitoredResource: string; } /** * Billing related configuration of the service. The following example shows how to configure monitored resources and metrics for billing, `consumer_destinations` is the only supported destination and the monitored resources need at least one label key `cloud.googleapis.com/location` to indicate the location of the billing usage, using different monitored resources between monitoring and billing is recommended so they can be evolved independently: monitored_resources: - type: library.googleapis.com/billing_branch labels: - key: cloud.googleapis.com/location description: | Predefined label to support billing location restriction. - key: city description: | Custom label to define the city where the library branch is located in. - key: name description: Custom label to define the name of the library branch. metrics: - name: library.googleapis.com/book/borrowed_count metric_kind: DELTA value_type: INT64 unit: "1" billing: consumer_destinations: - monitored_resource: library.googleapis.com/billing_branch metrics: - library.googleapis.com/book/borrowed_count */ interface BillingResponse { /** * Billing configurations for sending metrics to the consumer project. There can be multiple consumer destinations per service, each one must have a different monitored resource type. A metric can be used in at most one consumer destination. */ consumerDestinations: outputs.servicemanagement.v1.BillingDestinationResponse[]; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.servicemanagement.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Details about how and where to publish client libraries. */ interface ClientLibrarySettingsResponse { /** * Settings for C++ client libraries. */ cppSettings: outputs.servicemanagement.v1.CppSettingsResponse; /** * Settings for .NET client libraries. */ dotnetSettings: outputs.servicemanagement.v1.DotnetSettingsResponse; /** * Settings for Go client libraries. */ goSettings: outputs.servicemanagement.v1.GoSettingsResponse; /** * Settings for legacy Java features, supported in the Service YAML. */ javaSettings: outputs.servicemanagement.v1.JavaSettingsResponse; /** * Launch stage of this version of the API. */ launchStage: string; /** * Settings for Node client libraries. */ nodeSettings: outputs.servicemanagement.v1.NodeSettingsResponse; /** * Settings for PHP client libraries. */ phpSettings: outputs.servicemanagement.v1.PhpSettingsResponse; /** * Settings for Python client libraries. */ pythonSettings: outputs.servicemanagement.v1.PythonSettingsResponse; /** * When using transport=rest, the client request will encode enums as numbers rather than strings. */ restNumericEnums: boolean; /** * Settings for Ruby client libraries. */ rubySettings: outputs.servicemanagement.v1.RubySettingsResponse; /** * Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1". */ version: string; } /** * Required information for every language. */ interface CommonLanguageSettingsResponse { /** * The destination where API teams want this client library to be published. */ destinations: string[]; /** * Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest */ referenceDocsUri: string; } /** * `Context` defines which contexts an API requests. Example: context: rules: - selector: "*" requested: - google.rpc.context.ProjectContext - google.rpc.context.OriginContext The above specifies that all methods in the API request `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`. Available context types are defined in package `google.rpc.context`. This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file: Example: context: rules: - selector: "google.example.library.v1.LibraryService.CreateBook" allowed_request_extensions: - google.foo.v1.NewExtension allowed_response_extensions: - google.foo.v1.NewExtension You can also specify extension ID instead of fully qualified extension name here. */ interface ContextResponse { /** * A list of RPC context rules that apply to individual API methods. **NOTE:** All service configuration rules follow "last one wins" order. */ rules: outputs.servicemanagement.v1.ContextRuleResponse[]; } /** * A context rule provides information about the context for an individual API element. */ interface ContextRuleResponse { /** * A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend. */ allowedRequestExtensions: string[]; /** * A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client. */ allowedResponseExtensions: string[]; /** * A list of full type names of provided contexts. */ provided: string[]; /** * A list of full type names of requested contexts. */ requested: string[]; /** * Selects the methods to which this rule applies. Refer to selector for syntax details. */ selector: string; } /** * Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com */ interface ControlResponse { /** * The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com */ environment: string; /** * Defines policies applying to the API methods of the service. */ methodPolicies: outputs.servicemanagement.v1.MethodPolicyResponse[]; } /** * Settings for C++ client libraries. */ interface CppSettingsResponse { /** * Some settings. */ common: outputs.servicemanagement.v1.CommonLanguageSettingsResponse; } /** * Customize service error responses. For example, list any service specific protobuf types that can appear in error detail lists of error responses. Example: custom_error: types: - google.foo.v1.CustomError - google.foo.v1.AnotherError */ interface CustomErrorResponse { /** * The list of custom error rules that apply to individual API messages. **NOTE:** All service configuration rules follow "last one wins" order. */ rules: outputs.servicemanagement.v1.CustomErrorRuleResponse[]; /** * The list of custom error detail types, e.g. 'google.foo.v1.CustomError'. */ types: string[]; } /** * A custom error rule. */ interface CustomErrorRuleResponse { /** * Mark this message as possible payload in error response. Otherwise, objects of this type will be filtered when they appear in error payload. */ isErrorType: boolean; /** * Selects messages to which this rule applies. Refer to selector for syntax details. */ selector: string; } /** * A custom pattern is used for defining custom HTTP verb. */ interface CustomHttpPatternResponse { /** * The name of this custom HTTP verb. */ kind: string; /** * The path matched by this custom verb. */ path: string; } /** * Strategy used to delete a service. This strategy is a placeholder only used by the system generated rollout to delete a service. */ interface DeleteServiceStrategyResponse { } /** * `Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation. */ interface DocumentationResponse { /** * The URL to the root of documentation. */ documentationRootUrl: string; /** * Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field. */ overview: string; /** * The top level pages for the documentation set. */ pages: outputs.servicemanagement.v1.PageResponse[]; /** * A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow "last one wins" order. */ rules: outputs.servicemanagement.v1.DocumentationRuleResponse[]; /** * Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries */ sectionOverrides: outputs.servicemanagement.v1.PageResponse[]; /** * Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to. */ serviceRootUrl: string; /** * A short description of what the service does. The summary must be plain text. It becomes the overview of the service displayed in Google Cloud Console. NOTE: This field is equivalent to the standard field `description`. */ summary: string; } /** * A documentation rule provides information about individual API elements. */ interface DocumentationRuleResponse { /** * Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`. */ deprecationDescription: string; /** * Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element. */ description: string; /** * String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen. */ disableReplacementWords: string; /** * The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in "*", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern "*" is used. */ selector: string; } /** * Settings for Dotnet client libraries. */ interface DotnetSettingsResponse { /** * Some settings. */ common: outputs.servicemanagement.v1.CommonLanguageSettingsResponse; /** * Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision */ forcedNamespaceAliases: string[]; /** * Method signatures (in the form "service.method(signature)") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however. */ handwrittenSignatures: string[]; /** * List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: "documentai.googleapis.com/Location" */ ignoredResources: string[]; /** * Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: "datalabeling.googleapis.com/Dataset": "DataLabelingDataset" */ renamedResources: { [key: string]: string; }; /** * Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi. */ renamedServices: { [key: string]: string; }; } /** * `Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true */ interface EndpointResponse { /** * Unimplemented. Dot not use. DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on. * * @deprecated Unimplemented. Dot not use. DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on. */ aliases: string[]; /** * Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed. */ allowCors: boolean; /** * The canonical name of this endpoint. */ name: string; /** * The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, "8.8.8.8" or "myservice.appspot.com". */ target: string; } /** * Enum type definition. */ interface EnumResponse { /** * The source edition string, only valid when syntax is SYNTAX_EDITIONS. */ edition: string; /** * Enum value definitions. */ enumvalue: outputs.servicemanagement.v1.EnumValueResponse[]; /** * Enum type name. */ name: string; /** * Protocol buffer options. */ options: outputs.servicemanagement.v1.OptionResponse[]; /** * The source context. */ sourceContext: outputs.servicemanagement.v1.SourceContextResponse; /** * The source syntax. */ syntax: string; } /** * Enum value definition. */ interface EnumValueResponse { /** * Enum value name. */ name: string; /** * Enum value number. */ number: number; /** * Protocol buffer options. */ options: outputs.servicemanagement.v1.OptionResponse[]; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation. */ interface FieldPolicyResponse { /** * Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, "resourcemanager.projects.get". */ resourcePermission: string; /** * Specifies the resource type for the resource referred to by the field. */ resourceType: string; /** * Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as "foo.bar" or "foo.bar,foo.baz". */ selector: string; } /** * A single field of a message type. */ interface FieldResponse { /** * The field cardinality. */ cardinality: string; /** * The string value of the default value of this field. Proto2 syntax only. */ defaultValue: string; /** * The field JSON name. */ jsonName: string; /** * The field type. */ kind: string; /** * The field name. */ name: string; /** * The field number. */ number: number; /** * The index of the field type in `Type.oneofs`, for message or enumeration types. The first type has index 1; zero means the type is not in the list. */ oneofIndex: number; /** * The protocol buffer options. */ options: outputs.servicemanagement.v1.OptionResponse[]; /** * Whether to use alternative packed wire representation. */ packed: boolean; /** * The field type URL, without the scheme, for message or enumeration types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. */ typeUrl: string; } /** * Settings for Go client libraries. */ interface GoSettingsResponse { /** * Some settings. */ common: outputs.servicemanagement.v1.CommonLanguageSettingsResponse; } /** * Defines the HTTP configuration for an API service. It contains a list of HttpRule, each specifying the mapping of an RPC method to one or more HTTP REST API methods. */ interface HttpResponse { /** * When set to true, URL path parameters will be fully URI-decoded except in cases of single segment matches in reserved expansion, where "%2F" will be left encoded. The default behavior is to not decode RFC 6570 reserved characters in multi segment matches. */ fullyDecodeReservedExpansion: boolean; /** * A list of HTTP configuration rules that apply to individual API methods. **NOTE:** All service configuration rules follow "last one wins" order. */ rules: outputs.servicemanagement.v1.HttpRuleResponse[]; } /** * # gRPC Transcoding gRPC Transcoding is a feature for mapping between a gRPC method and one or more HTTP REST endpoints. It allows developers to build a single API service that supports both gRPC APIs and REST APIs. Many systems, including [Google APIs](https://github.com/googleapis/googleapis), [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC Gateway](https://github.com/grpc-ecosystem/grpc-gateway), and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature and use it for large scale production services. `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies how different portions of the gRPC request message are mapped to the URL path, URL query parameters, and HTTP request body. It also controls how the gRPC response message is mapped to the HTTP response body. `HttpRule` is typically specified as an `google.api.http` annotation on the gRPC method. Each mapping specifies a URL path template and an HTTP method. The path template may refer to one or more fields in the gRPC request message, as long as each field is a non-repeated field with a primitive (non-message) type. The path template controls how fields of the request message are mapped to the URL path. Example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get: "/v1/{name=messages/*}" }; } } message GetMessageRequest { string name = 1; // Mapped to URL path. } message Message { string text = 1; // The resource content. } This enables an HTTP REST to gRPC mapping as below: HTTP | gRPC -----|----- `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` Any fields in the request message which are not bound by the path template automatically become HTTP query parameters if there is no HTTP request body. For example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get:"/v1/messages/{message_id}" }; } } message GetMessageRequest { message SubMessage { string subfield = 1; } string message_id = 1; // Mapped to URL path. int64 revision = 2; // Mapped to URL query parameter `revision`. SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. } This enables a HTTP JSON to RPC mapping as below: HTTP | gRPC -----|----- `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))` Note that fields which are mapped to URL query parameters must have a primitive type or a repeated primitive type or a non-repeated message type. In the case of a repeated type, the parameter can be repeated in the URL as `...?param=A¶m=B`. In the case of a message type, each field of the message is mapped to a separate parameter, such as `...?foo.a=A&foo.b=B&foo.c=C`. For HTTP methods that allow a request body, the `body` field specifies the mapping. Consider a REST update method on the message resource collection: service Messaging { rpc UpdateMessage(UpdateMessageRequest) returns (Message) { option (google.api.http) = { patch: "/v1/messages/{message_id}" body: "message" }; } } message UpdateMessageRequest { string message_id = 1; // mapped to the URL Message message = 2; // mapped to the body } The following HTTP JSON to RPC mapping is enabled, where the representation of the JSON in the request body is determined by protos JSON encoding: HTTP | gRPC -----|----- `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })` The special name `*` can be used in the body mapping to define that every field not bound by the path template should be mapped to the request body. This enables the following alternative definition of the update method: service Messaging { rpc UpdateMessage(Message) returns (Message) { option (google.api.http) = { patch: "/v1/messages/{message_id}" body: "*" }; } } message Message { string message_id = 1; string text = 2; } The following HTTP JSON to RPC mapping is enabled: HTTP | gRPC -----|----- `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")` Note that when using `*` in the body mapping, it is not possible to have HTTP parameters, as all fields not bound by the path end in the body. This makes this option more rarely used in practice when defining REST APIs. The common usage of `*` is in custom methods which don't use the URL at all for transferring data. It is possible to define multiple HTTP methods for one RPC by using the `additional_bindings` option. Example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get: "/v1/messages/{message_id}" additional_bindings { get: "/v1/users/{user_id}/messages/{message_id}" } }; } } message GetMessageRequest { string message_id = 1; string user_id = 2; } This enables the following two alternative HTTP JSON to RPC mappings: HTTP | gRPC -----|----- `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")` ## Rules for HTTP mapping 1. Leaf request fields (recursive expansion nested messages in the request message) are classified into three categories: - Fields referred by the path template. They are passed via the URL path. - Fields referred by the HttpRule.body. They are passed via the HTTP request body. - All other fields are passed via the URL query parameters, and the parameter name is the field path in the request message. A repeated field can be represented as multiple query parameters under the same name. 2. If HttpRule.body is "*", there is no URL query parameter, all fields are passed via URL path and HTTP request body. 3. If HttpRule.body is omitted, there is no HTTP request body, all fields are passed via URL path and URL query parameters. ### Path template syntax Template = "/" Segments [ Verb ] ; Segments = Segment { "/" Segment } ; Segment = "*" | "**" | LITERAL | Variable ; Variable = "{" FieldPath [ "=" Segments ] "}" ; FieldPath = IDENT { "." IDENT } ; Verb = ":" LITERAL ; The syntax `*` matches a single URL path segment. The syntax `**` matches zero or more URL path segments, which must be the last part of the URL path except the `Verb`. The syntax `Variable` matches part of the URL path as specified by its template. A variable template must not contain other variables. If a variable matches a single path segment, its template may be omitted, e.g. `{var}` is equivalent to `{var=*}`. The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` contains any reserved character, such characters should be percent-encoded before the matching. If a variable contains exactly one path segment, such as `"{var}"` or `"{var=*}"`, when such a variable is expanded into a URL path on the client side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The server side does the reverse decoding. Such variables show up in the [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) as `{var}`. If a variable contains multiple path segments, such as `"{var=foo/*}"` or `"{var=**}"`, when such a variable is expanded into a URL path on the client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. The server side does the reverse decoding, except "%2F" and "%2f" are left unchanged. Such variables show up in the [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) as `{+var}`. ## Using gRPC API Service Configuration gRPC API Service Configuration (service config) is a configuration language for configuring a gRPC service to become a user-facing product. The service config is simply the YAML representation of the `google.api.Service` proto message. As an alternative to annotating your proto file, you can configure gRPC transcoding in your service config YAML files. You do this by specifying a `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same effect as the proto annotation. This can be particularly useful if you have a proto that is reused in multiple services. Note that any transcoding specified in the service config will override any matching transcoding configuration in the proto. Example: http: rules: # Selects a gRPC method and applies HttpRule to it. - selector: example.v1.Messaging.GetMessage get: /v1/messages/{message_id}/{sub.subfield} ## Special notes When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the proto to JSON conversion must follow the [proto3 specification](https://developers.google.com/protocol-buffers/docs/proto3#json). While the single segment variable follows the semantics of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String Expansion, the multi segment variable **does not** follow RFC 6570 Section 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion does not expand special characters like `?` and `#`, which would lead to invalid URLs. As the result, gRPC Transcoding uses a custom encoding for multi segment variables. The path variables **must not** refer to any repeated or mapped field, because client libraries are not capable of handling such variable expansion. The path variables **must not** capture the leading "/" character. The reason is that the most common use case "{var}" does not capture the leading "/" character. For consistency, all path variables must share the same behavior. Repeated message fields must not be mapped to URL query parameters, because no client library can support such complicated mapping. If an API needs to use a JSON array for request or response body, it can map the request or response body to a repeated field. However, some gRPC Transcoding implementations may not support this feature. */ interface HttpRuleResponse { /** * Additional HTTP bindings for the selector. Nested bindings must not contain an `additional_bindings` field themselves (that is, the nesting may only be one level deep). */ additionalBindings: outputs.servicemanagement.v1.HttpRuleResponse[]; /** * The name of the request field whose value is mapped to the HTTP request body, or `*` for mapping all request fields not captured by the path pattern to the HTTP body, or omitted for not having any HTTP request body. NOTE: the referred field must be present at the top-level of the request message type. */ body: string; /** * The custom pattern is used for specifying an HTTP method that is not included in the `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified for this rule. The wild-card rule is useful for services that provide content to Web (HTML) clients. */ custom: outputs.servicemanagement.v1.CustomHttpPatternResponse; /** * Maps to HTTP DELETE. Used for deleting a resource. */ delete: string; /** * Maps to HTTP GET. Used for listing and getting information about resources. */ get: string; /** * Maps to HTTP PATCH. Used for updating a resource. */ patch: string; /** * Maps to HTTP POST. Used for creating a resource or performing an action. */ post: string; /** * Maps to HTTP PUT. Used for replacing a resource. */ put: string; /** * Optional. The name of the response field whose value is mapped to the HTTP response body. When omitted, the entire response message will be used as the HTTP response body. NOTE: The referred field must be present at the top-level of the response message type. */ responseBody: string; /** * Selects a method to which this rule applies. Refer to selector for syntax details. */ selector: string; } /** * Settings for Java client libraries. */ interface JavaSettingsResponse { /** * Some settings. */ common: outputs.servicemanagement.v1.CommonLanguageSettingsResponse; /** * The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1 */ libraryPackage: string; /** * Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin */ serviceClassNames: { [key: string]: string; }; } /** * Specifies a location to extract JWT from an API request. */ interface JwtLocationResponse { /** * Specifies cookie name to extract JWT token. */ cookie: string; /** * Specifies HTTP header name to extract JWT token. */ header: string; /** * Specifies URL query parameter name to extract JWT token. */ query: string; /** * The value prefix. The value format is "value_prefix{token}" Only applies to "in" header type. Must be empty for "in" query type. If not empty, the header value has to match (case sensitive) this prefix. If not matched, JWT will not be extracted. If matched, JWT will be extracted after the prefix is removed. For example, for "Authorization: Bearer {JWT}", value_prefix="Bearer " with a space at the end. */ valuePrefix: string; } /** * A description of a label. */ interface LabelDescriptorResponse { /** * A human-readable description for the label. */ description: string; /** * The label key. */ key: string; /** * The type of data that can be assigned to the label. */ valueType: string; } /** * A description of a log type. Example in YAML format: - name: library.googleapis.com/activity_history description: The history of borrowing and returning library items. display_name: Activity labels: - key: /customer_id description: Identifier of a library customer */ interface LogDescriptorResponse { /** * A human-readable description of this log. This information appears in the documentation and can contain details. */ description: string; /** * The human-readable name for this log. This information appears on the user interface and should be concise. */ displayName: string; /** * The set of labels that are available to describe a specific log entry. Runtime requests that contain labels not specified here are considered invalid. */ labels: outputs.servicemanagement.v1.LabelDescriptorResponse[]; /** * The name of the log. It must be less than 512 characters long and can include the following characters: upper- and lower-case alphanumeric characters [A-Za-z0-9], and punctuation characters including slash, underscore, hyphen, period [/_-.]. */ name: string; } /** * Configuration of a specific logging destination (the producer project or the consumer project). */ interface LoggingDestinationResponse { /** * Names of the logs to be sent to this destination. Each name must be defined in the Service.logs section. If the log name is not a domain scoped name, it will be automatically prefixed with the service name followed by "/". */ logs: string[]; /** * The monitored resource type. The type must be defined in the Service.monitored_resources section. */ monitoredResource: string; } /** * Logging configuration of the service. The following example shows how to configure logs to be sent to the producer and consumer projects. In the example, the `activity_history` log is sent to both the producer and consumer projects, whereas the `purchase_history` log is only sent to the producer project. monitored_resources: - type: library.googleapis.com/branch labels: - key: /city description: The city where the library branch is located in. - key: /name description: The name of the branch. logs: - name: activity_history labels: - key: /customer_id - name: purchase_history logging: producer_destinations: - monitored_resource: library.googleapis.com/branch logs: - activity_history - purchase_history consumer_destinations: - monitored_resource: library.googleapis.com/branch logs: - activity_history */ interface LoggingResponse { /** * Logging configurations for sending logs to the consumer project. There can be multiple consumer destinations, each one must have a different monitored resource type. A log can be used in at most one consumer destination. */ consumerDestinations: outputs.servicemanagement.v1.LoggingDestinationResponse[]; /** * Logging configurations for sending logs to the producer project. There can be multiple producer destinations, each one must have a different monitored resource type. A log can be used in at most one producer destination. */ producerDestinations: outputs.servicemanagement.v1.LoggingDestinationResponse[]; } /** * Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)). */ interface LongRunningResponse { /** * Initial delay after which the first poll request will be made. Default value: 5 seconds. */ initialPollDelay: string; /** * Maximum time between two subsequent poll requests. Default value: 45 seconds. */ maxPollDelay: string; /** * Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5. */ pollDelayMultiplier: number; /** * Total polling timeout. Default value: 5 minutes. */ totalPollTimeout: string; } /** * Defines policies applying to an RPC method. */ interface MethodPolicyResponse { /** * Policies that are applicable to the request message. */ requestPolicies: outputs.servicemanagement.v1.FieldPolicyResponse[]; /** * Selects a method to which these policies should be enforced, for example, "google.pubsub.v1.Subscriber.CreateSubscription". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler . */ selector: string; } /** * Method represents a method of an API interface. */ interface MethodResponse { /** * The simple name of this method. */ name: string; /** * Any metadata attached to the method. */ options: outputs.servicemanagement.v1.OptionResponse[]; /** * If true, the request is streamed. */ requestStreaming: boolean; /** * A URL of the input message type. */ requestTypeUrl: string; /** * If true, the response is streamed. */ responseStreaming: boolean; /** * The URL of the output message type. */ responseTypeUrl: string; /** * The source syntax of this method. */ syntax: string; } /** * Describes the generator configuration for a method. */ interface MethodSettingsResponse { /** * Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes */ longRunning: outputs.servicemanagement.v1.LongRunningResponse; /** * The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. */ selector: string; } /** * Additional annotations that can be used to guide the usage of a metric. */ interface MetricDescriptorMetadataResponse { /** * The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. */ ingestDelay: string; /** * Deprecated. Must use the MetricDescriptor.launch_stage instead. * * @deprecated Deprecated. Must use the MetricDescriptor.launch_stage instead. */ launchStage: string; /** * The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. */ samplePeriod: string; } /** * Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable. */ interface MetricDescriptorResponse { /** * A detailed description of the metric, which can be used in documentation. */ description: string; /** * A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota. */ displayName: string; /** * The set of labels that can be used to describe a specific instance of this metric type. For example, the `appengine.googleapis.com/http/server/response_latencies` metric type has a label for the HTTP response code, `response_code`, so you can look at latencies for successful responses or just for responses that failed. */ labels: outputs.servicemanagement.v1.LabelDescriptorResponse[]; /** * Optional. The launch stage of the metric definition. */ launchStage: string; /** * Optional. Metadata which can be used to guide usage of the metric. */ metadata: outputs.servicemanagement.v1.MetricDescriptorMetadataResponse; /** * Whether the metric records instantaneous values, changes to a value, etc. Some combinations of `metric_kind` and `value_type` might not be supported. */ metricKind: string; /** * Read-only. If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here. */ monitoredResourceTypes: string[]; /** * The resource name of the metric descriptor. */ name: string; /** * The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined metric types have the DNS name `custom.googleapis.com` or `external.googleapis.com`. Metric types should use a natural hierarchical grouping. For example: "custom.googleapis.com/invoice/paid/amount" "external.googleapis.com/prometheus/up" "appengine.googleapis.com/http/server/response_latencies" */ type: string; /** * The units in which the metric value is reported. It is only applicable if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` defines the representation of the stored metric values. Different systems might scale the values to be more easily displayed (so a value of `0.02kBy` _might_ be displayed as `20By`, and a value of `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is `kBy`, then the value of the metric is always in thousands of bytes, no matter how it might be displayed. If you want a custom metric to record the exact number of CPU-seconds used by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005 CPU-seconds, then the value is written as `12005`. Alternatively, if you want a custom metric to record data in a more granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`), or use `Kis{CPU}` and write `11.723` (which is `12005/1024`). The supported units are a subset of [The Unified Code for Units of Measure](https://unitsofmeasure.org/ucum.html) standard: **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second * `min` minute * `h` hour * `d` day * `1` dimensionless **Prefixes (PREFIX)** * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) * `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * `Y` yotta (10^24) * `m` milli (10^-3) * `u` micro (10^-6) * `n` nano (10^-9) * `p` pico (10^-12) * `f` femto (10^-15) * `a` atto (10^-18) * `z` zepto (10^-21) * `y` yocto (10^-24) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar also includes these connectors: * `/` division or ratio (as an infix operator). For examples, `kBy/{email}` or `MiBy/10ms` (although you should almost never have `/s` in a metric `unit`; rates should always be computed at query time from the underlying cumulative or delta value). * `.` multiplication or composition (as an infix operator). For examples, `GBy.d` or `k{watt}.h`. The grammar for a unit is as follows: Expression = Component { "." Component } { "/" Component } ; Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] | Annotation | "1" ; Annotation = "{" NAME "}" ; Notes: * `Annotation` is just a comment if it follows a `UNIT`. If the annotation is used alone, then the unit is equivalent to `1`. For examples, `{request}/s == 1/s`, `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank printable ASCII characters not containing `{` or `}`. * `1` represents a unitary [dimensionless unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such as in `1/s`. It is typically used when none of the basic units are appropriate. For example, "new users per day" can be represented as `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new users). Alternatively, "thousands of page views per day" would be represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric value of `5.3` would mean "5300 page views per day"). * `%` represents dimensionless value of 1/100, and annotates values giving a percentage (so the metric values are typically in the range of 0..100, and a metric value `3` means "3 percent"). * `10^2.%` indicates a metric contains a ratio, typically in the range 0..1, that will be multiplied by 100 and displayed as a percentage (so a metric value `0.03` means "3 percent"). */ unit: string; /** * Whether the measurement is an integer, a floating-point number, etc. Some combinations of `metric_kind` and `value_type` might not be supported. */ valueType: string; } /** * Bind API methods to metrics. Binding a method to a metric causes that metric's configured quota behaviors to apply to the method call. */ interface MetricRuleResponse { /** * Metrics to update when the selected methods are called, and the associated cost applied to each metric. The key of the map is the metric name, and the values are the amount increased for the metric against which the quota limits are defined. The value must not be negative. */ metricCosts: { [key: string]: string; }; /** * Selects the methods to which this rule applies. Refer to selector for syntax details. */ selector: string; } /** * Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = "/v1/{resource=**}:getAcl"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = "/v2/{resource=**}"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inherting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = "/v2/{resource=**}:getAcl"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; } ... } */ interface MixinResponse { /** * The fully qualified name of the interface which is included. */ name: string; /** * If non-empty specifies a path under which inherited HTTP paths are rooted. */ root: string; } /** * An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of `"gce_instance"` and specifies the use of the labels `"instance_id"` and `"zone"` to identify particular VM instances. Different APIs can support different monitored resource types. APIs generally provide a `list` method that returns the monitored resource descriptors used by the API. */ interface MonitoredResourceDescriptorResponse { /** * Optional. A detailed description of the monitored resource type that might be used in documentation. */ description: string; /** * Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, `"Google Cloud SQL Database"`. */ displayName: string; /** * A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels `"database_id"` and `"zone"`. */ labels: outputs.servicemanagement.v1.LabelDescriptorResponse[]; /** * Optional. The launch stage of the monitored resource definition. */ launchStage: string; /** * Optional. The resource name of the monitored resource descriptor: `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where {type} is the value of the `type` field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format `"monitoredResourceDescriptors/{type}"`. */ name: string; /** * The monitored resource type. For example, the type `"cloudsql_database"` represents databases in Google Cloud SQL. For a list of types, see [Monitoring resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list). */ type: string; } /** * Configuration of a specific monitoring destination (the producer project or the consumer project). */ interface MonitoringDestinationResponse { /** * Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section. */ metrics: string[]; /** * The monitored resource type. The type must be defined in Service.monitored_resources section. */ monitoredResource: string; } /** * Monitoring configuration of the service. The example below shows how to configure monitored resources and metrics for monitoring. In the example, a monitored resource and two metrics are defined. The `library.googleapis.com/book/returned_count` metric is sent to both producer and consumer projects, whereas the `library.googleapis.com/book/num_overdue` metric is only sent to the consumer project. monitored_resources: - type: library.googleapis.com/Branch display_name: "Library Branch" description: "A branch of a library." launch_stage: GA labels: - key: resource_container description: "The Cloud container (ie. project id) for the Branch." - key: location description: "The location of the library branch." - key: branch_id description: "The id of the branch." metrics: - name: library.googleapis.com/book/returned_count display_name: "Books Returned" description: "The count of books that have been returned." launch_stage: GA metric_kind: DELTA value_type: INT64 unit: "1" labels: - key: customer_id description: "The id of the customer." - name: library.googleapis.com/book/num_overdue display_name: "Books Overdue" description: "The current number of overdue books." launch_stage: GA metric_kind: GAUGE value_type: INT64 unit: "1" labels: - key: customer_id description: "The id of the customer." monitoring: producer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count consumer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count - library.googleapis.com/book/num_overdue */ interface MonitoringResponse { /** * Monitoring configurations for sending metrics to the consumer project. There can be multiple consumer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration. */ consumerDestinations: outputs.servicemanagement.v1.MonitoringDestinationResponse[]; /** * Monitoring configurations for sending metrics to the producer project. There can be multiple producer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration. */ producerDestinations: outputs.servicemanagement.v1.MonitoringDestinationResponse[]; } /** * Settings for Node client libraries. */ interface NodeSettingsResponse { /** * Some settings. */ common: outputs.servicemanagement.v1.CommonLanguageSettingsResponse; } /** * OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for "Read-only access to Google Calendar" and "Access to Cloud Platform". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions. */ interface OAuthRequirementsResponse { /** * The list of publicly documented OAuth scopes that are allowed access. An OAuth token containing any of these scopes will be accepted. Example: canonical_scopes: https://www.googleapis.com/auth/calendar, https://www.googleapis.com/auth/calendar.read */ canonicalScopes: string; } /** * A protocol buffer option, which can be attached to a message, field, enumeration, etc. */ interface OptionResponse { /** * The option's name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `"map_entry"`. For custom options, it should be the fully-qualified name. For example, `"google.api.http"`. */ name: string; /** * The option's value packed in an Any message. If the value is a primitive, the corresponding wrapper type defined in google/protobuf/wrappers.proto should be used. If the value is an enum, it should be stored as an int32 value using the google.protobuf.Int32Value type. */ value: { [key: string]: string; }; } /** * Represents a documentation page. A page can contain subpages to represent nested documentation set structure. */ interface PageResponse { /** * The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file. The content can be used to produce the documentation page such as HTML format page. */ content: string; /** * The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`. */ name: string; /** * Subpages of this page. The order of subpages specified here will be honored in the generated docset. */ subpages: outputs.servicemanagement.v1.PageResponse[]; } /** * Settings for Php client libraries. */ interface PhpSettingsResponse { /** * Some settings. */ common: outputs.servicemanagement.v1.CommonLanguageSettingsResponse; } /** * This message configures the settings for publishing [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from the service config. */ interface PublishingResponse { /** * Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: "speech". */ apiShortName: string; /** * GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API. */ codeownerGithubTeams: string[]; /** * A prefix used in sample code when demarking regions to be included in documentation. */ docTagPrefix: string; /** * Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview */ documentationUri: string; /** * GitHub label to apply to issues and pull requests opened for this API. */ githubLabel: string; /** * Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded. */ librarySettings: outputs.servicemanagement.v1.ClientLibrarySettingsResponse[]; /** * A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern. */ methodSettings: outputs.servicemanagement.v1.MethodSettingsResponse[]; /** * Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103 */ newIssueUri: string; /** * For whom the client library is being published. */ organization: string; /** * Optional link to proto reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rpc */ protoReferenceDocumentationUri: string; } /** * Settings for Python client libraries. */ interface PythonSettingsResponse { /** * Some settings. */ common: outputs.servicemanagement.v1.CommonLanguageSettingsResponse; } /** * `QuotaLimit` defines a specific limit that applies over a specified duration for a limit type. There can be at most one limit for a duration and limit type combination defined within a `QuotaGroup`. */ interface QuotaLimitResponse { /** * Default number of tokens that can be consumed during the specified duration. This is the number of tokens assigned when a client application developer activates the service for his/her project. Specifying a value of 0 will block all requests. This can be used if you are provisioning quota to selected consumers and blocking others. Similarly, a value of -1 will indicate an unlimited quota. No other negative values are allowed. Used by group-based quotas only. */ defaultLimit: string; /** * Optional. User-visible, extended description for this quota limit. Should be used only when more context is needed to understand this limit than provided by the limit's display name (see: `display_name`). */ description: string; /** * User-visible display name for this limit. Optional. If not set, the UI will provide a default display name based on the quota configuration. This field can be used to override the default display name generated from the configuration. */ displayName: string; /** * Duration of this limit in textual notation. Must be "100s" or "1d". Used by group-based quotas only. */ duration: string; /** * Free tier value displayed in the Developers Console for this limit. The free tier is the number of tokens that will be subtracted from the billed amount when billing is enabled. This field can only be set on a limit with duration "1d", in a billable group; it is invalid on any other limit. If this field is not set, it defaults to 0, indicating that there is no free tier for this service. Used by group-based quotas only. */ freeTier: string; /** * Maximum number of tokens that can be consumed during the specified duration. Client application developers can override the default limit up to this maximum. If specified, this value cannot be set to a value less than the default limit. If not specified, it is set to the default limit. To allow clients to apply overrides with no upper bound, set this to -1, indicating unlimited maximum quota. Used by group-based quotas only. */ maxLimit: string; /** * The name of the metric this quota limit applies to. The quota limits with the same metric will be checked together during runtime. The metric must be defined within the service config. */ metric: string; /** * Name of the quota limit. The name must be provided, and it must be unique within the service. The name can only include alphanumeric characters as well as '-'. The maximum length of the limit name is 64 characters. */ name: string; /** * Specify the unit of the quota limit. It uses the same syntax as Metric.unit. The supported unit kinds are determined by the quota backend system. Here are some examples: * "1/min/{project}" for quota per minute per project. Note: the order of unit components is insignificant. The "1" at the beginning is required to follow the metric unit syntax. */ unit: string; /** * Tiered limit values. You must specify this as a key:value pair, with an integer value that is the maximum number of requests allowed for the specified unit. Currently only STANDARD is supported. */ values: { [key: string]: string; }; } /** * Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: "1/min/{project}" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: "*" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 */ interface QuotaResponse { /** * List of QuotaLimit definitions for the service. */ limits: outputs.servicemanagement.v1.QuotaLimitResponse[]; /** * List of MetricRule definitions, each one mapping a selected method to one or more metrics. */ metricRules: outputs.servicemanagement.v1.MetricRuleResponse[]; } /** * Settings for Ruby client libraries. */ interface RubySettingsResponse { /** * Some settings. */ common: outputs.servicemanagement.v1.CommonLanguageSettingsResponse; } /** * `SourceContext` represents information about the source of a protobuf element, like the file in which it is defined. */ interface SourceContextResponse { /** * The path-qualified name of the .proto file that contained the associated protobuf element. For example: `"google/protobuf/source_context.proto"`. */ fileName: string; } /** * Source information used to create a Service Config */ interface SourceInfoResponse { /** * All files used during config generation. */ sourceFiles: { [key: string]: string; }[]; } /** * Define a parameter's name and location. The parameter may be passed as either an HTTP header or a URL query parameter, and if both are passed the behavior is implementation-dependent. */ interface SystemParameterResponse { /** * Define the HTTP header name to use for the parameter. It is case insensitive. */ httpHeader: string; /** * Define the name of the parameter, such as "api_key" . It is case sensitive. */ name: string; /** * Define the URL query parameter name to use for the parameter. It is case sensitive. */ urlQueryParameter: string; } /** * Define a system parameter rule mapping system parameter definitions to methods. */ interface SystemParameterRuleResponse { /** * Define parameters. Multiple names may be defined for a parameter. For a given method call, only one of them should be used. If multiple names are used the behavior is implementation-dependent. If none of the specified names are present the behavior is parameter-dependent. */ parameters: outputs.servicemanagement.v1.SystemParameterResponse[]; /** * Selects the methods to which this rule applies. Use '*' to indicate all methods in all APIs. Refer to selector for syntax details. */ selector: string; } /** * ### System parameter configuration A system parameter is a special kind of parameter defined by the API system, not by an individual API. It is typically mapped to an HTTP header and/or a URL query parameter. This configuration specifies which methods change the names of the system parameters. */ interface SystemParametersResponse { /** * Define system parameters. The parameters defined here will override the default parameters implemented by the system. If this field is missing from the service config, default system parameters will be used. Default system parameters and names is implementation-dependent. Example: define api key for all methods system_parameters rules: - selector: "*" parameters: - name: api_key url_query_parameter: api_key Example: define 2 api key names for a specific method. system_parameters rules: - selector: "/ListShelves" parameters: - name: api_key http_header: Api-Key1 - name: api_key http_header: Api-Key2 **NOTE:** All service configuration rules follow "last one wins" order. */ rules: outputs.servicemanagement.v1.SystemParameterRuleResponse[]; } /** * Strategy that specifies how clients of Google Service Controller want to send traffic to use different config versions. This is generally used by API proxy to split traffic based on your configured percentage for each config version. One example of how to gradually rollout a new service configuration using this strategy: Day 1 Rollout { id: "example.googleapis.com/rollout_20160206" traffic_percent_strategy { percentages: { "example.googleapis.com/20160201": 70.00 "example.googleapis.com/20160206": 30.00 } } } Day 2 Rollout { id: "example.googleapis.com/rollout_20160207" traffic_percent_strategy: { percentages: { "example.googleapis.com/20160206": 100.00 } } } */ interface TrafficPercentStrategyResponse { /** * Maps service configuration IDs to their corresponding traffic percentage. Key is the service configuration ID, Value is the traffic percentage which must be greater than 0.0 and the sum must equal to 100.0. */ percentages: { [key: string]: string; }; } /** * A protocol buffer message type. */ interface TypeResponse { /** * The source edition string, only valid when syntax is SYNTAX_EDITIONS. */ edition: string; /** * The list of fields. */ fields: outputs.servicemanagement.v1.FieldResponse[]; /** * The fully qualified message name. */ name: string; /** * The list of types appearing in `oneof` definitions in this type. */ oneofs: string[]; /** * The protocol buffer options. */ options: outputs.servicemanagement.v1.OptionResponse[]; /** * The source context. */ sourceContext: outputs.servicemanagement.v1.SourceContextResponse; /** * The source syntax. */ syntax: string; } /** * Configuration controlling usage of a service. */ interface UsageResponse { /** * The full resource name of a channel used for sending notifications to the service producer. Google Service Management currently only supports [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification channel. To use Google Cloud Pub/Sub as the channel, this must be the name of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format documented in https://cloud.google.com/pubsub/docs/overview. */ producerNotificationChannel: string; /** * Requirements that must be satisfied before a consumer project can use the service. Each requirement is of the form /; for example 'serviceusage.googleapis.com/billing-enabled'. For Google APIs, a Terms of Service requirement must be included here. Google Cloud APIs must include "serviceusage.googleapis.com/tos/cloud". Other Google APIs should include "serviceusage.googleapis.com/tos/universal". Additional ToS can be included based on the business needs. */ requirements: string[]; /** * A list of usage rules that apply to individual API methods. **NOTE:** All service configuration rules follow "last one wins" order. */ rules: outputs.servicemanagement.v1.UsageRuleResponse[]; } /** * Usage configuration rules for the service. NOTE: Under development. Use this rule to configure unregistered calls for the service. Unregistered calls are calls that do not contain consumer project identity. (Example: calls that do not contain an API key). By default, API methods do not allow unregistered calls, and each method call must be identified by a consumer project identity. Use this rule to allow/disallow unregistered calls. Example of an API that wants to allow unregistered calls for entire service. usage: rules: - selector: "*" allow_unregistered_calls: true Example of a method that wants to allow unregistered calls. usage: rules: - selector: "google.example.library.v1.LibraryService.CreateBook" allow_unregistered_calls: true */ interface UsageRuleResponse { /** * If true, the selected method allows unregistered calls, e.g. calls that don't identify any user or application. */ allowUnregisteredCalls: boolean; /** * Selects the methods to which this rule applies. Use '*' to indicate all methods in all APIs. Refer to selector for syntax details. */ selector: string; /** * If true, the selected method should skip service control and the control plane features, such as quota and billing, will not be available. This flag is used by Google Cloud Endpoints to bypass checks for internal methods, such as service health check methods. */ skipServiceControl: boolean; } } } export declare namespace sourcerepo { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.sourcerepo.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.sourcerepo.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Configuration to automatically mirror a repository from another hosting service, for example GitHub or Bitbucket. */ interface MirrorConfigResponse { /** * ID of the SSH deploy key at the other hosting service. Removing this key from the other service would deauthorize Google Cloud Source Repositories from mirroring. */ deployKeyId: string; /** * URL of the main repository at the other hosting service. */ url: string; /** * ID of the webhook listening to updates to trigger mirroring. Removing this webhook from the other hosting service will stop Google Cloud Source Repositories from receiving notifications, and thereby disabling mirroring. */ webhookId: string; } } } export declare namespace spanner { namespace v1 { /** * Autoscaling config for an instance. */ interface AutoscalingConfigResponse { /** * Autoscaling limits for an instance. */ autoscalingLimits: outputs.spanner.v1.AutoscalingLimitsResponse; /** * The autoscaling targets for an instance. */ autoscalingTargets: outputs.spanner.v1.AutoscalingTargetsResponse; } /** * The autoscaling limits for the instance. Users can define the minimum and maximum compute capacity allocated to the instance, and the autoscaler will only scale within that range. Users can either use nodes or processing units to specify the limits, but should use the same unit to set both the min_limit and max_limit. */ interface AutoscalingLimitsResponse { /** * Maximum number of nodes allocated to the instance. If set, this number should be greater than or equal to min_nodes. */ maxNodes: number; /** * Maximum number of processing units allocated to the instance. If set, this number should be multiples of 1000 and be greater than or equal to min_processing_units. */ maxProcessingUnits: number; /** * Minimum number of nodes allocated to the instance. If set, this number should be greater than or equal to 1. */ minNodes: number; /** * Minimum number of processing units allocated to the instance. If set, this number should be multiples of 1000. */ minProcessingUnits: number; } /** * The autoscaling targets for an instance. */ interface AutoscalingTargetsResponse { /** * The target high priority cpu utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization). The valid range is [10, 90] inclusive. */ highPriorityCpuUtilizationPercent: number; /** * The target storage utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization). The valid range is [10, 100] inclusive. */ storageUtilizationPercent: number; } /** * Information about a backup. */ interface BackupInfoResponse { /** * Name of the backup. */ backup: string; /** * The time the CreateBackup request was received. */ createTime: string; /** * Name of the database the backup was created from. */ sourceDatabase: string; /** * The backup contains an externally consistent copy of `source_database` at the timestamp specified by `version_time`. If the CreateBackup request did not specify `version_time`, the `version_time` of the backup is equivalent to the `create_time`. */ versionTime: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.spanner.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Encryption configuration for a Cloud Spanner database. */ interface EncryptionConfigResponse { /** * The Cloud KMS key to be used for encrypting and decrypting the database. Values are of the form `projects//locations//keyRings//cryptoKeys/`. */ kmsKeyName: string; } /** * Encryption information for a Cloud Spanner database or backup. */ interface EncryptionInfoResponse { /** * If present, the status of a recent encrypt/decrypt call on underlying data for this database or backup. Regardless of status, data is always encrypted at rest. */ encryptionStatus: outputs.spanner.v1.StatusResponse; /** * The type of encryption. */ encryptionType: string; /** * A Cloud KMS key version that is being used to protect the database or backup. */ kmsKeyVersion: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Free instance specific metadata that is kept even after an instance has been upgraded for tracking purposes. */ interface FreeInstanceMetadataResponse { /** * Specifies the expiration behavior of a free instance. The default of ExpireBehavior is `REMOVE_AFTER_GRACE_PERIOD`. This can be modified during or after creation, and before expiration. */ expireBehavior: string; /** * Timestamp after which the instance will either be upgraded or scheduled for deletion after a grace period. ExpireBehavior is used to choose between upgrading or scheduling the free instance for deletion. This timestamp is set during the creation of a free instance. */ expireTime: string; /** * If present, the timestamp at which the free instance was upgraded to a provisioned instance. */ upgradeTime: string; } interface ReplicaInfoResponse { /** * If true, this location is designated as the default leader location where leader replicas are placed. See the [region types documentation](https://cloud.google.com/spanner/docs/instances#region_types) for more details. */ defaultLeaderLocation: boolean; /** * The location of the serving resources, e.g. "us-central1". */ location: string; /** * The type of replica. */ type: string; } /** * Information about the database restore. */ interface RestoreInfoResponse { /** * Information about the backup used to restore the database. The backup may no longer exist. */ backupInfo: outputs.spanner.v1.BackupInfoResponse; /** * The type of the restore source. */ sourceType: string; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } } export declare namespace speech { namespace v1 { /** * An item of the class. */ interface ClassItemResponse { /** * The class item's value. */ value: string; } /** * A phrases containing words and phrase "hints" so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also include pre-built or custom classes containing groups of words that represent common concepts that occur in natural language. For example, rather than providing a phrase hint for every month of the year (e.g. "i was born in january", "i was born in febuary", ...), use the pre-built `$MONTH` class improves the likelihood of correctly transcribing audio that includes months (e.g. "i was born in $month"). To refer to pre-built classes, use the class' symbol prepended with `$` e.g. `$MONTH`. To refer to custom classes that were defined inline in the request, set the class's `custom_class_id` to a string unique to all class resources and inline classes. Then use the class' id wrapped in $`{...}` e.g. "${my-months}". To refer to custom classes resources, use the class' id wrapped in `${}` (e.g. `${my-months}`). Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value. */ interface PhraseResponse { /** * Hint Boost. Overrides the boost set at the phrase set level. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 and 20. We recommend using a binary search approach to finding the optimal value for your use case as well as adding phrases both with and without boost to your requests. */ boost: number; /** * The phrase itself. */ value: string; } } } export declare namespace sqladmin { namespace v1 { /** * An entry for an Access Control list. */ interface AclEntryResponse { /** * The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. */ expirationTime: string; /** * This is always `sql#aclEntry`. */ kind: string; /** * Optional. A label to identify this entry. */ name: string; /** * The allowlisted value for the access control list. */ value: string; } /** * Specifies options for controlling advanced machine features. */ interface AdvancedMachineFeaturesResponse { /** * The number of threads per physical core. */ threadsPerCore: number; } /** * Database instance backup configuration. */ interface BackupConfigurationResponse { /** * Backup retention settings. */ backupRetentionSettings: outputs.sqladmin.v1.BackupRetentionSettingsResponse; /** * (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well. */ binaryLogEnabled: boolean; /** * Whether this configuration is enabled. */ enabled: boolean; /** * This is always `sql#backupConfiguration`. */ kind: string; /** * Location of the backup */ location: string; /** * Whether point in time recovery is enabled. */ pointInTimeRecoveryEnabled: boolean; /** * Reserved for future use. */ replicationLogArchivingEnabled: boolean; /** * Start time for the daily backup configuration in UTC timezone in the 24 hour format - `HH:MM`. */ startTime: string; /** * The number of days of transaction logs we retain for point in time restore, from 1-7. */ transactionLogRetentionDays: number; } /** * We currently only support backup retention by specifying the number of backups we will retain. */ interface BackupRetentionSettingsResponse { /** * Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is 'COUNT', we will retain this many backups. */ retainedBackups: number; /** * The unit that 'retained_backups' represents. */ retentionUnit: string; } /** * Data cache configurations. */ interface DataCacheConfigResponse { /** * Whether data cache is enabled for the instance. */ dataCacheEnabled: boolean; } /** * Database flags for Cloud SQL instances. */ interface DatabaseFlagsResponse { /** * The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation. */ name: string; /** * The value of the flag. Boolean flags are set to `on` for true and `off` for false. This field must be omitted if the flag doesn't take a value. */ value: string; } /** * Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied. */ interface DenyMaintenancePeriodResponse { /** * "deny maintenance period" end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01 */ endDate: string; /** * "deny maintenance period" start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the deny maintenance period recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01 */ startDate: string; /** * Time in UTC when the "deny maintenance period" starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00 */ time: string; } /** * Disk encryption configuration for an instance. */ interface DiskEncryptionConfigurationResponse { /** * This is always `sql#diskEncryptionConfiguration`. */ kind: string; /** * Resource name of KMS key for disk encryption */ kmsKeyName: string; } /** * Disk encryption status for an instance. */ interface DiskEncryptionStatusResponse { /** * This is always `sql#diskEncryptionStatus`. */ kind: string; /** * KMS key version used to encrypt the Cloud SQL instance resource */ kmsKeyVersionName: string; } /** * Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. */ interface InsightsConfigResponse { /** * Whether Query Insights feature is enabled. */ queryInsightsEnabled: boolean; /** * Number of query execution plans captured by Insights per minute for all queries combined. Default is 5. */ queryPlansPerMinute: number; /** * Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database. */ queryStringLength: number; /** * Whether Query Insights will record application tags from query when enabled. */ recordApplicationTags: boolean; /** * Whether Query Insights will record client address when enabled. */ recordClientAddress: boolean; } /** * The name and status of the failover replica. */ interface InstanceFailoverReplicaResponse { /** * The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true. */ available: boolean; /** * The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. */ name: string; } /** * Reference to another Cloud SQL instance. */ interface InstanceReferenceResponse { /** * The name of the Cloud SQL instance being referenced. This does not include the project ID. */ name: string; /** * The project ID of the Cloud SQL instance being referenced. The default is the same project ID as the instance references it. */ project: string; /** * The region of the Cloud SQL instance being referenced. */ region: string; } /** * IP Management configuration. */ interface IpConfigurationResponse { /** * The name of the allocated ip range for the private ip Cloud SQL instance. For example: "google-managed-services-default". If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?.` */ allocatedIpRange: string; /** * The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: `157.197.200.0/24`). */ authorizedNetworks: outputs.sqladmin.v1.AclEntryResponse[]; /** * Controls connectivity to private IP instances from Google services, such as BigQuery. */ enablePrivatePathForGoogleCloudServices: boolean; /** * Whether the instance is assigned a public IP address or not. */ ipv4Enabled: boolean; /** * The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `/projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set. */ privateNetwork: string; /** * PSC settings for this instance. */ pscConfig: outputs.sqladmin.v1.PscConfigResponse; /** * Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won't be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the legacy `require_ssl` flag. */ requireSsl: boolean; /** * Specify how SSL/TLS is enforced in database connections. This flag is supported only for PostgreSQL. Use the legacy `require_ssl` flag for enforcing SSL/TLS in MySQL and SQL Server. But, for PostgreSQL, use the `ssl_mode` flag instead of the legacy `require_ssl` flag. To avoid the conflict between those flags in PostgreSQL, only the following value pairs are valid: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` Note that the value of `ssl_mode` gets priority over the value of the legacy `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY, require_ssl=false`, the `ssl_mode=ENCRYPTED_ONLY` means "only accepts SSL connection", while the `require_ssl=false` means "both non-SSL and SSL connections are allowed". The database respects `ssl_mode` in this case and only accepts SSL connections. */ sslMode: string; } /** * Database instance IP mapping */ interface IpMappingResponse { /** * The IP address assigned. */ ipAddress: string; /** * The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. This field is only available when the IP is scheduled to be retired. */ timeToRetire: string; /** * The type of this IP address. A `PRIMARY` address is a public address that can accept incoming connections. A `PRIVATE` address is a private address that can accept incoming connections. An `OUTGOING` address is the source address of connections originating from the instance, if supported. */ type: string; } /** * Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. */ interface LocationPreferenceResponse { /** * The App Engine application to follow, it must be in the same region as the Cloud SQL instance. WARNING: Changing this might restart the instance. */ followGaeApplication: string; /** * This is always `sql#locationPreference`. */ kind: string; /** * The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). To disable this field, set it to 'no_secondary_zone'. */ secondaryZone: string; /** * The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.). WARNING: Changing this might restart the instance. */ zone: string; } /** * Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. */ interface MaintenanceWindowResponse { /** * day of week (1-7), starting on Monday. */ day: number; /** * hour of day - 0 to 23. */ hour: number; /** * This is always `sql#maintenanceWindow`. */ kind: string; /** * Maintenance timing setting: `canary` (Earlier) or `stable` (Later). [Learn more](https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen). */ updateTrack: string; } /** * Read-replica configuration specific to MySQL databases. */ interface MySqlReplicaConfigurationResponse { /** * PEM representation of the trusted CA's x509 certificate. */ caCertificate: string; /** * PEM representation of the replica's x509 certificate. */ clientCertificate: string; /** * PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate. */ clientKey: string; /** * Seconds to wait between connect retries. MySQL's default is 60 seconds. */ connectRetryInterval: number; /** * Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump. */ dumpFilePath: string; /** * This is always `sql#mysqlReplicaConfiguration`. */ kind: string; /** * Interval in milliseconds between replication heartbeats. */ masterHeartbeatPeriod: string; /** * The password for the replication connection. */ password: string; /** * A list of permissible ciphers to use for SSL encryption. */ sslCipher: string; /** * The username for the replication connection. */ username: string; /** * Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake. */ verifyServerCertificate: boolean; } /** * On-premises instance configuration. */ interface OnPremisesConfigurationResponse { /** * PEM representation of the trusted CA's x509 certificate. */ caCertificate: string; /** * PEM representation of the replica's x509 certificate. */ clientCertificate: string; /** * PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate. */ clientKey: string; /** * The dump file to create the Cloud SQL replica. */ dumpFilePath: string; /** * The host and port of the on-premises instance in host:port format */ hostPort: string; /** * This is always `sql#onPremisesConfiguration`. */ kind: string; /** * The password for connecting to on-premises instance. */ password: string; /** * The reference to Cloud SQL instance if the source is Cloud SQL. */ sourceInstance: outputs.sqladmin.v1.InstanceReferenceResponse; /** * The username for connecting to on-premises instance. */ username: string; } /** * Database instance operation error. */ interface OperationErrorResponse { /** * Identifies the specific error that occurred. */ code: string; /** * This is always `sql#operationError`. */ kind: string; /** * Additional information about the error encountered. */ message: string; } /** * Read-only password status. */ interface PasswordStatusResponse { /** * If true, user does not have login privileges. */ locked: boolean; /** * The expiration time of the current password. */ passwordExpirationTime: string; } /** * Database instance local user password validation policy */ interface PasswordValidationPolicyResponse { /** * The complexity of the password. */ complexity: string; /** * Disallow credentials that have been previously compromised by a public data breach. */ disallowCompromisedCredentials: boolean; /** * Disallow username as a part of the password. */ disallowUsernameSubstring: boolean; /** * Whether the password policy is enabled or not. */ enablePasswordPolicy: boolean; /** * Minimum number of characters allowed. */ minLength: number; /** * Minimum interval after which the password can be changed. This flag is only supported for PostgreSQL. */ passwordChangeInterval: string; /** * Number of previous passwords that cannot be reused. */ reuseInterval: number; } /** * PSC settings for a Cloud SQL instance. */ interface PscConfigResponse { /** * Optional. The list of consumer projects that are allow-listed for PSC connections to this instance. This instance can be connected to with PSC from any network in these projects. Each consumer project in this list may be represented by a project number (numeric) or by a project id (alphanumeric). */ allowedConsumerProjects: string[]; /** * Whether PSC connectivity is enabled for this instance. */ pscEnabled: boolean; } /** * Read-replica configuration for connecting to the primary instance. */ interface ReplicaConfigurationResponse { /** * Optional. Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. */ cascadableReplica: boolean; /** * Specifies if the replica is the failover target. If the field is set to `true`, the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance. */ failoverTarget: boolean; /** * This is always `sql#replicaConfiguration`. */ kind: string; /** * MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata. The configuration information is used only to set up the replication connection and is stored by MySQL in a file named `master.info` in the data directory. */ mysqlReplicaConfiguration: outputs.sqladmin.v1.MySqlReplicaConfigurationResponse; } /** * Database instance settings. */ interface SettingsResponse { /** * The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: * `ALWAYS`: The instance is on, and remains so even in the absence of connection requests. * `NEVER`: The instance is off; it is not activated, even if a connection request arrives. */ activationPolicy: string; /** * Active Directory configuration, relevant only for Cloud SQL for SQL Server. */ activeDirectoryConfig: outputs.sqladmin.v1.SqlActiveDirectoryConfigResponse; /** * Specifies advance machine configuration for the instance relevant only for SQL Server. */ advancedMachineFeatures: outputs.sqladmin.v1.AdvancedMachineFeaturesResponse; /** * The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only. * * @deprecated The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only. */ authorizedGaeApplications: string[]; /** * Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available)./ For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability). */ availabilityType: string; /** * The daily backup configuration for the instance. */ backupConfiguration: outputs.sqladmin.v1.BackupConfigurationResponse; /** * The name of server Instance collation. */ collation: string; /** * Specifies if connections must use Cloud SQL connectors. Option values include the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud SQL Connectors). Note that using REQUIRED disables all existing authorized networks. If this field is not specified when creating a new instance, NOT_REQUIRED is used. If this field is not specified when patching or updating an existing instance, it is left unchanged in the instance. */ connectorEnforcement: string; /** * Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances. */ crashSafeReplicationEnabled: boolean; /** * Configuration for data cache. */ dataCacheConfig: outputs.sqladmin.v1.DataCacheConfigResponse; /** * The size of data disk, in GB. The data disk size minimum is 10GB. */ dataDiskSizeGb: string; /** * The type of data disk: `PD_SSD` (default) or `PD_HDD`. Not used for First Generation instances. */ dataDiskType: string; /** * The database flags passed to the instance at startup. */ databaseFlags: outputs.sqladmin.v1.DatabaseFlagsResponse[]; /** * Configuration specific to read replica instances. Indicates whether replication is enabled or not. WARNING: Changing this restarts the instance. */ databaseReplicationEnabled: boolean; /** * Configuration to protect against accidental instance deletion. */ deletionProtectionEnabled: boolean; /** * Deny maintenance periods */ denyMaintenancePeriods: outputs.sqladmin.v1.DenyMaintenancePeriodResponse[]; /** * Optional. The edition of the instance. */ edition: string; /** * Insights configuration, for now relevant only for Postgres. */ insightsConfig: outputs.sqladmin.v1.InsightsConfigResponse; /** * The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances. */ ipConfiguration: outputs.sqladmin.v1.IpConfigurationResponse; /** * This is always `sql#settings`. */ kind: string; /** * The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or Compute Engine zone for better performance. App Engine co-location was only applicable to First Generation instances. */ locationPreference: outputs.sqladmin.v1.LocationPreferenceResponse; /** * The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes. */ maintenanceWindow: outputs.sqladmin.v1.MaintenanceWindowResponse; /** * The local user password validation policy of the instance. */ passwordValidationPolicy: outputs.sqladmin.v1.PasswordValidationPolicyResponse; /** * The pricing plan for this instance. This can be either `PER_USE` or `PACKAGE`. Only `PER_USE` is supported for Second Generation instances. */ pricingPlan: string; /** * The type of replication this instance uses. This can be either `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First Generation instances. * * @deprecated The type of replication this instance uses. This can be either `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First Generation instances. */ replicationType: string; /** * The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value. */ settingsVersion: string; /** * SQL Server specific audit configuration. */ sqlServerAuditConfig: outputs.sqladmin.v1.SqlServerAuditConfigResponse; /** * Configuration to increase storage size automatically. The default value is true. */ storageAutoResize: boolean; /** * The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. */ storageAutoResizeLimit: string; /** * The tier (or machine type) for this instance, for example `db-custom-1-3840`. WARNING: Changing this restarts the instance. */ tier: string; /** * Server timezone, relevant only for Cloud SQL for SQL Server. */ timeZone: string; /** * User-provided labels, represented as a dictionary where each label is a single key value pair. */ userLabels: { [key: string]: string; }; } /** * Active Directory configuration, relevant only for Cloud SQL for SQL Server. */ interface SqlActiveDirectoryConfigResponse { /** * The name of the domain (e.g., mydomain.com). */ domain: string; /** * This is always sql#activeDirectoryConfig. */ kind: string; } /** * This message wraps up the information written by out-of-disk detection job. */ interface SqlOutOfDiskReportResponse { /** * The minimum recommended increase size in GigaBytes This field is consumed by the frontend * Writers: * the proactive database wellness job for OOD. * Readers: */ sqlMinRecommendedIncreaseSizeGb: number; /** * This field represents the state generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job */ sqlOutOfDiskState: string; } /** * Any scheduled maintenance for this instance. */ interface SqlScheduledMaintenanceResponse { canDefer: boolean; /** * If the scheduled maintenance can be rescheduled. */ canReschedule: boolean; /** * Maintenance cannot be rescheduled to start beyond this deadline. */ scheduleDeadlineTime: string; /** * The start time of any upcoming scheduled maintenance for this instance. */ startTime: string; } /** * SQL Server specific audit configuration. */ interface SqlServerAuditConfigResponse { /** * The name of the destination bucket (e.g., gs://mybucket). */ bucket: string; /** * This is always sql#sqlServerAuditConfig */ kind: string; /** * How long to keep generated audit files. */ retentionInterval: string; /** * How often to upload generated audit files. */ uploadInterval: string; } /** * Represents a Sql Server database on the Cloud SQL instance. */ interface SqlServerDatabaseDetailsResponse { /** * The version of SQL Server with which the database is to be made compatible */ compatibilityLevel: number; /** * The recovery model of a SQL Server database */ recoveryModel: string; } /** * Represents a Sql Server user on the Cloud SQL instance. */ interface SqlServerUserDetailsResponse { /** * If the user has been disabled */ disabled: boolean; /** * The server roles for this user */ serverRoles: string[]; } /** * SslCerts Resource */ interface SslCertResponse { /** * PEM representation. */ cert: string; /** * Serial number, as extracted from the certificate. */ certSerialNumber: string; /** * User supplied name. Constrained to [a-zA-Z.-_ ]+. */ commonName: string; /** * The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z` */ createTime: string; /** * The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. */ expirationTime: string; /** * Name of the database instance. */ instance: string; /** * This is always `sql#sslCert`. */ kind: string; /** * The URI of this resource. */ selfLink: string; /** * Sha1 Fingerprint. */ sha1Fingerprint: string; } /** * User level password validation policy. */ interface UserPasswordValidationPolicyResponse { /** * Number of failed login attempts allowed before user get locked. */ allowedFailedAttempts: number; /** * If true, failed login attempts check will be enabled. */ enableFailedAttemptsCheck: boolean; /** * If true, the user must specify the current password before changing the password. This flag is supported only for MySQL. */ enablePasswordVerification: boolean; /** * Expiration duration after password is updated. */ passwordExpirationDuration: string; /** * Read-only password status. */ status: outputs.sqladmin.v1.PasswordStatusResponse; } } namespace v1beta4 { /** * An entry for an Access Control list. */ interface AclEntryResponse { /** * The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. */ expirationTime: string; /** * This is always `sql#aclEntry`. */ kind: string; /** * Optional. A label to identify this entry. */ name: string; /** * The allowlisted value for the access control list. */ value: string; } /** * Specifies options for controlling advanced machine features. */ interface AdvancedMachineFeaturesResponse { /** * The number of threads per physical core. */ threadsPerCore: number; } /** * Database instance backup configuration. */ interface BackupConfigurationResponse { /** * Backup retention settings. */ backupRetentionSettings: outputs.sqladmin.v1beta4.BackupRetentionSettingsResponse; /** * (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well. */ binaryLogEnabled: boolean; /** * Whether this configuration is enabled. */ enabled: boolean; /** * This is always `sql#backupConfiguration`. */ kind: string; /** * Location of the backup */ location: string; /** * Whether point in time recovery is enabled. */ pointInTimeRecoveryEnabled: boolean; /** * Reserved for future use. */ replicationLogArchivingEnabled: boolean; /** * Start time for the daily backup configuration in UTC timezone in the 24 hour format - `HH:MM`. */ startTime: string; /** * The number of days of transaction logs we retain for point in time restore, from 1-7. */ transactionLogRetentionDays: number; } /** * We currently only support backup retention by specifying the number of backups we will retain. */ interface BackupRetentionSettingsResponse { /** * Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is 'COUNT', we will retain this many backups. */ retainedBackups: number; /** * The unit that 'retained_backups' represents. */ retentionUnit: string; } /** * Data cache configurations. */ interface DataCacheConfigResponse { /** * Whether data cache is enabled for the instance. */ dataCacheEnabled: boolean; } /** * Database flags for Cloud SQL instances. */ interface DatabaseFlagsResponse { /** * The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation. */ name: string; /** * The value of the flag. Boolean flags are set to `on` for true and `off` for false. This field must be omitted if the flag doesn't take a value. */ value: string; } /** * Deny Maintenance Periods. This specifies a date range during when all CSA rollout will be denied. */ interface DenyMaintenancePeriodResponse { /** * "deny maintenance period" end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the deny maintenance period recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01 */ endDate: string; /** * "deny maintenance period" start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the deny maintenance period recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01 */ startDate: string; /** * Time in UTC when the "deny maintenance period" starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00 */ time: string; } /** * Disk encryption configuration for an instance. */ interface DiskEncryptionConfigurationResponse { /** * This is always `sql#diskEncryptionConfiguration`. */ kind: string; /** * Resource name of KMS key for disk encryption */ kmsKeyName: string; } /** * Disk encryption status for an instance. */ interface DiskEncryptionStatusResponse { /** * This is always `sql#diskEncryptionStatus`. */ kind: string; /** * KMS key version used to encrypt the Cloud SQL instance resource */ kmsKeyVersionName: string; } /** * Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. */ interface InsightsConfigResponse { /** * Whether Query Insights feature is enabled. */ queryInsightsEnabled: boolean; /** * Number of query execution plans captured by Insights per minute for all queries combined. Default is 5. */ queryPlansPerMinute: number; /** * Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database. */ queryStringLength: number; /** * Whether Query Insights will record application tags from query when enabled. */ recordApplicationTags: boolean; /** * Whether Query Insights will record client address when enabled. */ recordClientAddress: boolean; } /** * The name and status of the failover replica. */ interface InstanceFailoverReplicaResponse { /** * The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true. */ available: boolean; /** * The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. */ name: string; } /** * Reference to another Cloud SQL instance. */ interface InstanceReferenceResponse { /** * The name of the Cloud SQL instance being referenced. This does not include the project ID. */ name: string; /** * The project ID of the Cloud SQL instance being referenced. The default is the same project ID as the instance references it. */ project: string; /** * The region of the Cloud SQL instance being referenced. */ region: string; } /** * IP Management configuration. */ interface IpConfigurationResponse { /** * The name of the allocated ip range for the private ip Cloud SQL instance. For example: "google-managed-services-default". If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?.` */ allocatedIpRange: string; /** * The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: `157.197.200.0/24`). */ authorizedNetworks: outputs.sqladmin.v1beta4.AclEntryResponse[]; /** * Controls connectivity to private IP instances from Google services, such as BigQuery. */ enablePrivatePathForGoogleCloudServices: boolean; /** * Whether the instance is assigned a public IP address or not. */ ipv4Enabled: boolean; /** * The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, `/projects/myProject/global/networks/default`. This setting can be updated, but it cannot be removed after it is set. */ privateNetwork: string; /** * PSC settings for this instance. */ pscConfig: outputs.sqladmin.v1beta4.PscConfigResponse; /** * Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won't be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the legacy `require_ssl` flag. */ requireSsl: boolean; /** * Specify how SSL/TLS is enforced in database connections. This flag is supported only for PostgreSQL. Use the legacy `require_ssl` flag for enforcing SSL/TLS in MySQL and SQL Server. But, for PostgreSQL, use the `ssl_mode` flag instead of the legacy `require_ssl` flag. To avoid the conflict between those flags in PostgreSQL, only the following value pairs are valid: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` Note that the value of `ssl_mode` gets priority over the value of the legacy `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY, require_ssl=false`, the `ssl_mode=ENCRYPTED_ONLY` means "only accepts SSL connection", while the `require_ssl=false` means "both non-SSL and SSL connections are allowed". The database respects `ssl_mode` in this case and only accepts SSL connections. */ sslMode: string; } /** * Database instance IP mapping */ interface IpMappingResponse { /** * The IP address assigned. */ ipAddress: string; /** * The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. This field is only available when the IP is scheduled to be retired. */ timeToRetire: string; /** * The type of this IP address. A `PRIMARY` address is a public address that can accept incoming connections. A `PRIVATE` address is a private address that can accept incoming connections. An `OUTGOING` address is the source address of connections originating from the instance, if supported. */ type: string; } /** * Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. */ interface LocationPreferenceResponse { /** * The App Engine application to follow, it must be in the same region as the Cloud SQL instance. WARNING: Changing this might restart the instance. */ followGaeApplication: string; /** * This is always `sql#locationPreference`. */ kind: string; /** * The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). To disable this field, set it to 'no_secondary_zone'. */ secondaryZone: string; /** * The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.). WARNING: Changing this might restart the instance. */ zone: string; } /** * Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. */ interface MaintenanceWindowResponse { /** * day of week (1-7), starting on Monday. */ day: number; /** * hour of day - 0 to 23. */ hour: number; /** * This is always `sql#maintenanceWindow`. */ kind: string; /** * Maintenance timing setting: `canary` (Earlier) or `stable` (Later). [Learn more](https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen). */ updateTrack: string; } /** * Read-replica configuration specific to MySQL databases. */ interface MySqlReplicaConfigurationResponse { /** * PEM representation of the trusted CA's x509 certificate. */ caCertificate: string; /** * PEM representation of the replica's x509 certificate. */ clientCertificate: string; /** * PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate. */ clientKey: string; /** * Seconds to wait between connect retries. MySQL's default is 60 seconds. */ connectRetryInterval: number; /** * Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump. */ dumpFilePath: string; /** * This is always `sql#mysqlReplicaConfiguration`. */ kind: string; /** * Interval in milliseconds between replication heartbeats. */ masterHeartbeatPeriod: string; /** * The password for the replication connection. */ password: string; /** * A list of permissible ciphers to use for SSL encryption. */ sslCipher: string; /** * The username for the replication connection. */ username: string; /** * Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake. */ verifyServerCertificate: boolean; } /** * On-premises instance configuration. */ interface OnPremisesConfigurationResponse { /** * PEM representation of the trusted CA's x509 certificate. */ caCertificate: string; /** * PEM representation of the replica's x509 certificate. */ clientCertificate: string; /** * PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate. */ clientKey: string; /** * The dump file to create the Cloud SQL replica. */ dumpFilePath: string; /** * The host and port of the on-premises instance in host:port format */ hostPort: string; /** * This is always `sql#onPremisesConfiguration`. */ kind: string; /** * The password for connecting to on-premises instance. */ password: string; /** * The reference to Cloud SQL instance if the source is Cloud SQL. */ sourceInstance: outputs.sqladmin.v1beta4.InstanceReferenceResponse; /** * The username for connecting to on-premises instance. */ username: string; } /** * Database instance operation error. */ interface OperationErrorResponse { /** * Identifies the specific error that occurred. */ code: string; /** * This is always `sql#operationError`. */ kind: string; /** * Additional information about the error encountered. */ message: string; } /** * Read-only password status. */ interface PasswordStatusResponse { /** * If true, user does not have login privileges. */ locked: boolean; /** * The expiration time of the current password. */ passwordExpirationTime: string; } /** * Database instance local user password validation policy */ interface PasswordValidationPolicyResponse { /** * The complexity of the password. */ complexity: string; /** * Disallow credentials that have been previously compromised by a public data breach. */ disallowCompromisedCredentials: boolean; /** * Disallow username as a part of the password. */ disallowUsernameSubstring: boolean; /** * Whether the password policy is enabled or not. */ enablePasswordPolicy: boolean; /** * Minimum number of characters allowed. */ minLength: number; /** * Minimum interval after which the password can be changed. This flag is only supported for PostgreSQL. */ passwordChangeInterval: string; /** * Number of previous passwords that cannot be reused. */ reuseInterval: number; } /** * PSC settings for a Cloud SQL instance. */ interface PscConfigResponse { /** * Optional. The list of consumer projects that are allow-listed for PSC connections to this instance. This instance can be connected to with PSC from any network in these projects. Each consumer project in this list may be represented by a project number (numeric) or by a project id (alphanumeric). */ allowedConsumerProjects: string[]; /** * Whether PSC connectivity is enabled for this instance. */ pscEnabled: boolean; } /** * Read-replica configuration for connecting to the primary instance. */ interface ReplicaConfigurationResponse { /** * Optional. Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. */ cascadableReplica: boolean; /** * Specifies if the replica is the failover target. If the field is set to `true` the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance. */ failoverTarget: boolean; /** * This is always `sql#replicaConfiguration`. */ kind: string; /** * MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata. The configuration information is used only to set up the replication connection and is stored by MySQL in a file named `master.info` in the data directory. */ mysqlReplicaConfiguration: outputs.sqladmin.v1beta4.MySqlReplicaConfigurationResponse; } /** * Database instance settings. */ interface SettingsResponse { /** * The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: * `ALWAYS`: The instance is on, and remains so even in the absence of connection requests. * `NEVER`: The instance is off; it is not activated, even if a connection request arrives. */ activationPolicy: string; /** * Active Directory configuration, relevant only for Cloud SQL for SQL Server. */ activeDirectoryConfig: outputs.sqladmin.v1beta4.SqlActiveDirectoryConfigResponse; /** * Specifies advance machine configuration for the instance relevant only for SQL Server. */ advancedMachineFeatures: outputs.sqladmin.v1beta4.AdvancedMachineFeaturesResponse; /** * The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only. * * @deprecated The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only. */ authorizedGaeApplications: string[]; /** * Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available)./ For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability). */ availabilityType: string; /** * The daily backup configuration for the instance. */ backupConfiguration: outputs.sqladmin.v1beta4.BackupConfigurationResponse; /** * The name of server Instance collation. */ collation: string; /** * Specifies if connections must use Cloud SQL connectors. Option values include the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud SQL Connectors) Note that using REQUIRED disables all existing authorized networks. If this field is not specified when creating a new instance, NOT_REQUIRED is used. If this field is not specified when patching or updating an existing instance, it is left unchanged in the instance. */ connectorEnforcement: string; /** * Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances. */ crashSafeReplicationEnabled: boolean; /** * Configuration for data cache. */ dataCacheConfig: outputs.sqladmin.v1beta4.DataCacheConfigResponse; /** * The size of data disk, in GB. The data disk size minimum is 10GB. */ dataDiskSizeGb: string; /** * The type of data disk: `PD_SSD` (default) or `PD_HDD`. Not used for First Generation instances. */ dataDiskType: string; /** * The database flags passed to the instance at startup. */ databaseFlags: outputs.sqladmin.v1beta4.DatabaseFlagsResponse[]; /** * Configuration specific to read replica instances. Indicates whether replication is enabled or not. WARNING: Changing this restarts the instance. */ databaseReplicationEnabled: boolean; /** * Configuration to protect against accidental instance deletion. */ deletionProtectionEnabled: boolean; /** * Deny maintenance periods */ denyMaintenancePeriods: outputs.sqladmin.v1beta4.DenyMaintenancePeriodResponse[]; /** * Optional. The edition of the instance. */ edition: string; /** * Insights configuration, for now relevant only for Postgres. */ insightsConfig: outputs.sqladmin.v1beta4.InsightsConfigResponse; /** * The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances. */ ipConfiguration: outputs.sqladmin.v1beta4.IpConfigurationResponse; /** * This is always `sql#settings`. */ kind: string; /** * The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or Compute Engine zone for better performance. App Engine co-location was only applicable to First Generation instances. */ locationPreference: outputs.sqladmin.v1beta4.LocationPreferenceResponse; /** * The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes. */ maintenanceWindow: outputs.sqladmin.v1beta4.MaintenanceWindowResponse; /** * The local user password validation policy of the instance. */ passwordValidationPolicy: outputs.sqladmin.v1beta4.PasswordValidationPolicyResponse; /** * The pricing plan for this instance. This can be either `PER_USE` or `PACKAGE`. Only `PER_USE` is supported for Second Generation instances. */ pricingPlan: string; /** * The type of replication this instance uses. This can be either `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First Generation instances. * * @deprecated The type of replication this instance uses. This can be either `ASYNCHRONOUS` or `SYNCHRONOUS`. (Deprecated) This property was only applicable to First Generation instances. */ replicationType: string; /** * The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value. */ settingsVersion: string; /** * SQL Server specific audit configuration. */ sqlServerAuditConfig: outputs.sqladmin.v1beta4.SqlServerAuditConfigResponse; /** * Configuration to increase storage size automatically. The default value is true. */ storageAutoResize: boolean; /** * The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. */ storageAutoResizeLimit: string; /** * The tier (or machine type) for this instance, for example `db-custom-1-3840`. WARNING: Changing this restarts the instance. */ tier: string; /** * Server timezone, relevant only for Cloud SQL for SQL Server. */ timeZone: string; /** * User-provided labels, represented as a dictionary where each label is a single key value pair. */ userLabels: { [key: string]: string; }; } /** * Active Directory configuration, relevant only for Cloud SQL for SQL Server. */ interface SqlActiveDirectoryConfigResponse { /** * The name of the domain (e.g., mydomain.com). */ domain: string; /** * This is always sql#activeDirectoryConfig. */ kind: string; } /** * This message wraps up the information written by out-of-disk detection job. */ interface SqlOutOfDiskReportResponse { /** * The minimum recommended increase size in GigaBytes This field is consumed by the frontend * Writers: * the proactive database wellness job for OOD. * Readers: */ sqlMinRecommendedIncreaseSizeGb: number; /** * This field represents the state generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job */ sqlOutOfDiskState: string; } /** * Any scheduled maintenance for this instance. */ interface SqlScheduledMaintenanceResponse { canDefer: boolean; /** * If the scheduled maintenance can be rescheduled. */ canReschedule: boolean; /** * Maintenance cannot be rescheduled to start beyond this deadline. */ scheduleDeadlineTime: string; /** * The start time of any upcoming scheduled maintenance for this instance. */ startTime: string; } /** * SQL Server specific audit configuration. */ interface SqlServerAuditConfigResponse { /** * The name of the destination bucket (e.g., gs://mybucket). */ bucket: string; /** * This is always sql#sqlServerAuditConfig */ kind: string; /** * How long to keep generated audit files. */ retentionInterval: string; /** * How often to upload generated audit files. */ uploadInterval: string; } /** * Represents a Sql Server database on the Cloud SQL instance. */ interface SqlServerDatabaseDetailsResponse { /** * The version of SQL Server with which the database is to be made compatible */ compatibilityLevel: number; /** * The recovery model of a SQL Server database */ recoveryModel: string; } /** * Represents a Sql Server user on the Cloud SQL instance. */ interface SqlServerUserDetailsResponse { /** * If the user has been disabled */ disabled: boolean; /** * The server roles for this user */ serverRoles: string[]; } /** * SslCerts Resource */ interface SslCertResponse { /** * PEM representation. */ cert: string; /** * Serial number, as extracted from the certificate. */ certSerialNumber: string; /** * User supplied name. Constrained to [a-zA-Z.-_ ]+. */ commonName: string; /** * The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. */ createTime: string; /** * The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2012-11-15T16:19:00.094Z`. */ expirationTime: string; /** * Name of the database instance. */ instance: string; /** * This is always `sql#sslCert`. */ kind: string; /** * The URI of this resource. */ selfLink: string; /** * Sha1 Fingerprint. */ sha1Fingerprint: string; } /** * User level password validation policy. */ interface UserPasswordValidationPolicyResponse { /** * Number of failed login attempts allowed before user get locked. */ allowedFailedAttempts: number; /** * If true, failed login attempts check will be enabled. */ enableFailedAttemptsCheck: boolean; /** * If true, the user must specify the current password before changing the password. This flag is supported only for MySQL. */ enablePasswordVerification: boolean; /** * Expiration duration after password is updated. */ passwordExpirationDuration: string; /** * Read-only password status. */ status: outputs.sqladmin.v1beta4.PasswordStatusResponse; } } } export declare namespace storage { namespace v1 { /** * The project team associated with the entity, if any. */ interface BucketAccessControlProjectTeamResponse { /** * The project number. */ projectNumber: string; /** * The team. */ team: string; } /** * An access-control entry. */ interface BucketAccessControlResponse { /** * The name of the bucket. */ bucket: string; /** * The domain associated with the entity, if any. */ domain: string; /** * The email address associated with the entity, if any. */ email: string; /** * The entity holding the permission, in one of the following forms: * - user-userId * - user-email * - group-groupId * - group-email * - domain-domain * - project-team-projectId * - allUsers * - allAuthenticatedUsers Examples: * - The user liz@example.com would be user-liz@example.com. * - The group example@googlegroups.com would be group-example@googlegroups.com. * - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com. */ entity: string; /** * The ID for the entity, if any. */ entityId: string; /** * HTTP 1.1 Entity tag for the access-control entry. */ etag: string; /** * The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl. */ kind: string; /** * The project team associated with the entity, if any. */ projectTeam: outputs.storage.v1.BucketAccessControlProjectTeamResponse; /** * The access permission for the entity. */ role: string; /** * The link to this access-control entry. */ selfLink: string; } /** * The bucket's Autoclass configuration. */ interface BucketAutoclassResponse { /** * Whether or not Autoclass is enabled on this bucket */ enabled: boolean; /** * The storage class that objects in the bucket eventually transition to if they are not read for a certain length of time. Valid values are NEARLINE and ARCHIVE. */ terminalStorageClass: string; /** * A date and time in RFC 3339 format representing the time of the most recent update to "terminalStorageClass". */ terminalStorageClassUpdateTime: string; /** * A date and time in RFC 3339 format representing the instant at which "enabled" was last toggled. */ toggleTime: string; } /** * The bucket's billing configuration. */ interface BucketBillingResponse { /** * When set to true, Requester Pays is enabled for this bucket. */ requesterPays: boolean; } interface BucketCorsItemResponse { /** * The value, in seconds, to return in the Access-Control-Max-Age header used in preflight responses. */ maxAgeSeconds: number; /** * The list of HTTP methods on which to include CORS response headers, (GET, OPTIONS, POST, etc) Note: "*" is permitted in the list of methods, and means "any method". */ method: string[]; /** * The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin". */ origin: string[]; /** * The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains. */ responseHeader: string[]; } /** * The bucket's custom placement configuration for Custom Dual Regions. */ interface BucketCustomPlacementConfigResponse { /** * The list of regional locations in which data is placed. */ dataLocations: string[]; } /** * Encryption configuration for a bucket. */ interface BucketEncryptionResponse { /** * A Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified. */ defaultKmsKeyName: string; } /** * The bucket's uniform bucket-level access configuration. The feature was formerly known as Bucket Policy Only. For backward compatibility, this field will be populated with identical information as the uniformBucketLevelAccess field. We recommend using the uniformBucketLevelAccess field to enable and disable the feature. */ interface BucketIamConfigurationBucketPolicyOnlyResponse { /** * If set, access is controlled only by bucket-level or above IAM policies. */ enabled: boolean; /** * The deadline for changing iamConfiguration.bucketPolicyOnly.enabled from true to false in RFC 3339 format. iamConfiguration.bucketPolicyOnly.enabled may be changed from true to false until the locked time, after which the field is immutable. */ lockedTime: string; } /** * The bucket's IAM configuration. */ interface BucketIamConfigurationResponse { /** * The bucket's uniform bucket-level access configuration. The feature was formerly known as Bucket Policy Only. For backward compatibility, this field will be populated with identical information as the uniformBucketLevelAccess field. We recommend using the uniformBucketLevelAccess field to enable and disable the feature. */ bucketPolicyOnly: outputs.storage.v1.BucketIamConfigurationBucketPolicyOnlyResponse; /** * The bucket's Public Access Prevention configuration. Currently, 'inherited' and 'enforced' are supported. */ publicAccessPrevention: string; /** * The bucket's uniform bucket-level access configuration. */ uniformBucketLevelAccess: outputs.storage.v1.BucketIamConfigurationUniformBucketLevelAccessResponse; } /** * The bucket's uniform bucket-level access configuration. */ interface BucketIamConfigurationUniformBucketLevelAccessResponse { /** * If set, access is controlled only by bucket-level or above IAM policies. */ enabled: boolean; /** * The deadline for changing iamConfiguration.uniformBucketLevelAccess.enabled from true to false in RFC 3339 format. iamConfiguration.uniformBucketLevelAccess.enabled may be changed from true to false until the locked time, after which the field is immutable. */ lockedTime: string; } interface BucketIamPolicyBindingsItemResponse { /** * The condition that is associated with this binding. NOTE: an unsatisfied condition will not allow user access via current binding. Different bindings, including their conditions, are examined independently. */ condition: outputs.storage.v1.ExprResponse; /** * A collection of identifiers for members who may assume the provided role. Recognized identifiers are as follows: * - allUsers — A special identifier that represents anyone on the internet; with or without a Google account. * - allAuthenticatedUsers — A special identifier that represents anyone who is authenticated with a Google account or a service account. * - user:emailid — An email address that represents a specific account. For example, user:alice@gmail.com or user:joe@example.com. * - serviceAccount:emailid — An email address that represents a service account. For example, serviceAccount:my-other-app@appspot.gserviceaccount.com . * - group:emailid — An email address that represents a Google group. For example, group:admins@example.com. * - domain:domain — A Google Apps domain name that represents all the users of that domain. For example, domain:google.com or domain:example.com. * - projectOwner:projectid — Owners of the given project. For example, projectOwner:my-example-project * - projectEditor:projectid — Editors of the given project. For example, projectEditor:my-example-project * - projectViewer:projectid — Viewers of the given project. For example, projectViewer:my-example-project */ members: string[]; /** * The role to which members belong. Two types of roles are supported: new IAM roles, which grant permissions that do not map directly to those provided by ACLs, and legacy IAM roles, which do map directly to ACL permissions. All roles are of the format roles/storage.specificRole. * The new IAM roles are: * - roles/storage.admin — Full control of Google Cloud Storage resources. * - roles/storage.objectViewer — Read-Only access to Google Cloud Storage objects. * - roles/storage.objectCreator — Access to create objects in Google Cloud Storage. * - roles/storage.objectAdmin — Full control of Google Cloud Storage objects. The legacy IAM roles are: * - roles/storage.legacyObjectReader — Read-only access to objects without listing. Equivalent to an ACL entry on an object with the READER role. * - roles/storage.legacyObjectOwner — Read/write access to existing objects without listing. Equivalent to an ACL entry on an object with the OWNER role. * - roles/storage.legacyBucketReader — Read access to buckets with object listing. Equivalent to an ACL entry on a bucket with the READER role. * - roles/storage.legacyBucketWriter — Read access to buckets with object listing/creation/deletion. Equivalent to an ACL entry on a bucket with the WRITER role. * - roles/storage.legacyBucketOwner — Read and write access to existing buckets with object listing/creation/deletion. Equivalent to an ACL entry on a bucket with the OWNER role. */ role: string; } /** * The bucket's lifecycle configuration. See lifecycle management for more information. */ interface BucketLifecycleResponse { /** * A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken. */ rule: outputs.storage.v1.BucketLifecycleRuleItemResponse[]; } /** * The action to take. */ interface BucketLifecycleRuleItemActionResponse { /** * Target storage class. Required iff the type of the action is SetStorageClass. */ storageClass: string; /** * Type of the action. Currently, only Delete, SetStorageClass, and AbortIncompleteMultipartUpload are supported. */ type: string; } /** * The condition(s) under which the action will be taken. */ interface BucketLifecycleRuleItemConditionResponse { /** * Age of an object (in days). This condition is satisfied when an object reaches the specified age. */ age: number; /** * A date in RFC 3339 format with only the date part (for instance, "2013-01-15"). This condition is satisfied when an object is created before midnight of the specified date in UTC. */ createdBefore: string; /** * A date in RFC 3339 format with only the date part (for instance, "2013-01-15"). This condition is satisfied when the custom time on an object is before this date in UTC. */ customTimeBefore: string; /** * Number of days elapsed since the user-specified timestamp set on an object. The condition is satisfied if the days elapsed is at least this number. If no custom timestamp is specified on an object, the condition does not apply. */ daysSinceCustomTime: number; /** * Number of days elapsed since the noncurrent timestamp of an object. The condition is satisfied if the days elapsed is at least this number. This condition is relevant only for versioned objects. The value of the field must be a nonnegative integer. If it's zero, the object version will become eligible for Lifecycle action as soon as it becomes noncurrent. */ daysSinceNoncurrentTime: number; /** * Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects. */ isLive: boolean; /** * A regular expression that satisfies the RE2 syntax. This condition is satisfied when the name of the object matches the RE2 pattern. Note: This feature is currently in the "Early Access" launch stage and is only available to a whitelisted set of users; that means that this feature may be changed in backward-incompatible ways and that it is not guaranteed to be released. */ matchesPattern: string; /** * List of object name prefixes. This condition will be satisfied when at least one of the prefixes exactly matches the beginning of the object name. */ matchesPrefix: string[]; /** * Objects having any of the storage classes specified by this condition will be matched. Values include MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE, STANDARD, and DURABLE_REDUCED_AVAILABILITY. */ matchesStorageClass: string[]; /** * List of object name suffixes. This condition will be satisfied when at least one of the suffixes exactly matches the end of the object name. */ matchesSuffix: string[]; /** * A date in RFC 3339 format with only the date part (for instance, "2013-01-15"). This condition is satisfied when the noncurrent time on an object is before this date in UTC. This condition is relevant only for versioned objects. */ noncurrentTimeBefore: string; /** * Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object. */ numNewerVersions: number; } interface BucketLifecycleRuleItemResponse { /** * The action to take. */ action: outputs.storage.v1.BucketLifecycleRuleItemActionResponse; /** * The condition(s) under which the action will be taken. */ condition: outputs.storage.v1.BucketLifecycleRuleItemConditionResponse; } /** * The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs. */ interface BucketLoggingResponse { /** * The destination bucket where the current bucket's logs should be placed. */ logBucket: string; /** * A prefix for log object names. */ logObjectPrefix: string; } /** * Metadata of customer-supplied encryption key, if the object is encrypted by such a key. */ interface BucketObjectCustomerEncryptionResponse { /** * The encryption algorithm. */ encryptionAlgorithm: string; /** * SHA256 hash value of the encryption key. */ keySha256: string; } /** * The owner of the object. This will always be the uploader of the object. */ interface BucketObjectOwnerResponse { /** * The entity, in the form user-userId. */ entity: string; /** * The ID for the entity. */ entityId: string; } /** * A collection of object level retention parameters. */ interface BucketObjectRetentionResponse { /** * The bucket's object retention mode, can only be Unlocked or Locked. */ mode: string; /** * A time in RFC 3339 format until which object retention protects this object. */ retainUntilTime: string; } /** * The owner of the bucket. This is always the project team's owner group. */ interface BucketOwnerResponse { /** * The entity, in the form project-owner-projectId. */ entity: string; /** * The ID for the entity. */ entityId: string; } /** * The bucket's retention policy. The retention policy enforces a minimum retention time for all objects contained in the bucket, based on their creation time. Any attempt to overwrite or delete objects younger than the retention period will result in a PERMISSION_DENIED error. An unlocked retention policy can be modified or removed from the bucket via a storage.buckets.update operation. A locked retention policy cannot be removed or shortened in duration for the lifetime of the bucket. Attempting to remove or decrease period of a locked retention policy will result in a PERMISSION_DENIED error. */ interface BucketRetentionPolicyResponse { /** * Server-determined value that indicates the time from which policy was enforced and effective. This value is in RFC 3339 format. */ effectiveTime: string; /** * Once locked, an object retention policy cannot be modified. */ isLocked: boolean; /** * The duration in seconds that objects need to be retained. Retention duration must be greater than zero and less than 100 years. Note that enforcement of retention periods less than a day is not guaranteed. Such periods should only be used for testing purposes. */ retentionPeriod: string; } /** * The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot be permanently deleted. */ interface BucketSoftDeletePolicyResponse { /** * Server-determined value that indicates the time from which the policy, or one with a greater retention, was effective. This value is in RFC 3339 format. */ effectiveTime: string; /** * The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted. */ retentionDurationSeconds: string; } /** * The bucket's versioning configuration. */ interface BucketVersioningResponse { /** * While set to true, versioning is fully enabled for this bucket. */ enabled: boolean; } /** * The bucket's website configuration, controlling how the service behaves when accessing bucket contents as a web site. See the Static Website Examples for more information. */ interface BucketWebsiteResponse { /** * If the requested object path is missing, the service will ensure the path has a trailing '/', append this suffix, and attempt to retrieve the resulting object. This allows the creation of index.html objects to represent directory pages. */ mainPageSuffix: string; /** * If the requested object path is missing, and any mainPageSuffix object is missing, if applicable, the service will return the named object from this bucket as the content for a 404 Not Found result. */ notFoundPage: string; } /** * The project team associated with the entity, if any. */ interface DefaultObjectAccessControlProjectTeamResponse { /** * The project number. */ projectNumber: string; /** * The team. */ team: string; } /** * Represents an expression text. Example: title: "User account presence" description: "Determines whether the request has a user account" expression: "size(request.user) > 0" */ interface ExprResponse { /** * An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. */ expression: string; /** * An optional string indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * An optional title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } interface ManagedFolderIamPolicyBindingsItemResponse { /** * The condition that is associated with this binding. NOTE: an unsatisfied condition will not allow user access via current binding. Different bindings, including their conditions, are examined independently. */ condition: outputs.storage.v1.ExprResponse; /** * A collection of identifiers for members who may assume the provided role. Recognized identifiers are as follows: * - allUsers — A special identifier that represents anyone on the internet; with or without a Google account. * - allAuthenticatedUsers — A special identifier that represents anyone who is authenticated with a Google account or a service account. * - user:emailid — An email address that represents a specific account. For example, user:alice@gmail.com or user:joe@example.com. * - serviceAccount:emailid — An email address that represents a service account. For example, serviceAccount:my-other-app@appspot.gserviceaccount.com . * - group:emailid — An email address that represents a Google group. For example, group:admins@example.com. * - domain:domain — A Google Apps domain name that represents all the users of that domain. For example, domain:google.com or domain:example.com. * - projectOwner:projectid — Owners of the given project. For example, projectOwner:my-example-project * - projectEditor:projectid — Editors of the given project. For example, projectEditor:my-example-project * - projectViewer:projectid — Viewers of the given project. For example, projectViewer:my-example-project */ members: string[]; /** * The role to which members belong. Two types of roles are supported: new IAM roles, which grant permissions that do not map directly to those provided by ACLs, and legacy IAM roles, which do map directly to ACL permissions. All roles are of the format roles/storage.specificRole. * The new IAM roles are: * - roles/storage.admin — Full control of Google Cloud Storage resources. * - roles/storage.objectViewer — Read-Only access to Google Cloud Storage objects. * - roles/storage.objectCreator — Access to create objects in Google Cloud Storage. * - roles/storage.objectAdmin — Full control of Google Cloud Storage objects. The legacy IAM roles are: * - roles/storage.legacyObjectReader — Read-only access to objects without listing. Equivalent to an ACL entry on an object with the READER role. * - roles/storage.legacyObjectOwner — Read/write access to existing objects without listing. Equivalent to an ACL entry on an object with the OWNER role. * - roles/storage.legacyBucketReader — Read access to buckets with object listing. Equivalent to an ACL entry on a bucket with the READER role. * - roles/storage.legacyBucketWriter — Read access to buckets with object listing/creation/deletion. Equivalent to an ACL entry on a bucket with the WRITER role. * - roles/storage.legacyBucketOwner — Read and write access to existing buckets with object listing/creation/deletion. Equivalent to an ACL entry on a bucket with the OWNER role. */ role: string; } /** * The project team associated with the entity, if any. */ interface ObjectAccessControlProjectTeamResponse { /** * The project number. */ projectNumber: string; /** * The team. */ team: string; } /** * An access-control entry. */ interface ObjectAccessControlResponse { /** * The name of the bucket. */ bucket: string; /** * The domain associated with the entity, if any. */ domain: string; /** * The email address associated with the entity, if any. */ email: string; /** * The entity holding the permission, in one of the following forms: * - user-userId * - user-email * - group-groupId * - group-email * - domain-domain * - project-team-projectId * - allUsers * - allAuthenticatedUsers Examples: * - The user liz@example.com would be user-liz@example.com. * - The group example@googlegroups.com would be group-example@googlegroups.com. * - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com. */ entity: string; /** * The ID for the entity, if any. */ entityId: string; /** * HTTP 1.1 Entity tag for the access-control entry. */ etag: string; /** * The content generation of the object, if applied to an object. */ generation: string; /** * The kind of item this is. For object access control entries, this is always storage#objectAccessControl. */ kind: string; /** * The name of the object, if applied to an object. */ object: string; /** * The project team associated with the entity, if any. */ projectTeam: outputs.storage.v1.ObjectAccessControlProjectTeamResponse; /** * The access permission for the entity. */ role: string; /** * The link to this access-control entry. */ selfLink: string; } interface ObjectIamPolicyBindingsItemResponse { /** * The condition that is associated with this binding. NOTE: an unsatisfied condition will not allow user access via current binding. Different bindings, including their conditions, are examined independently. */ condition: outputs.storage.v1.ExprResponse; /** * A collection of identifiers for members who may assume the provided role. Recognized identifiers are as follows: * - allUsers — A special identifier that represents anyone on the internet; with or without a Google account. * - allAuthenticatedUsers — A special identifier that represents anyone who is authenticated with a Google account or a service account. * - user:emailid — An email address that represents a specific account. For example, user:alice@gmail.com or user:joe@example.com. * - serviceAccount:emailid — An email address that represents a service account. For example, serviceAccount:my-other-app@appspot.gserviceaccount.com . * - group:emailid — An email address that represents a Google group. For example, group:admins@example.com. * - domain:domain — A Google Apps domain name that represents all the users of that domain. For example, domain:google.com or domain:example.com. * - projectOwner:projectid — Owners of the given project. For example, projectOwner:my-example-project * - projectEditor:projectid — Editors of the given project. For example, projectEditor:my-example-project * - projectViewer:projectid — Viewers of the given project. For example, projectViewer:my-example-project */ members: string[]; /** * The role to which members belong. Two types of roles are supported: new IAM roles, which grant permissions that do not map directly to those provided by ACLs, and legacy IAM roles, which do map directly to ACL permissions. All roles are of the format roles/storage.specificRole. * The new IAM roles are: * - roles/storage.admin — Full control of Google Cloud Storage resources. * - roles/storage.objectViewer — Read-Only access to Google Cloud Storage objects. * - roles/storage.objectCreator — Access to create objects in Google Cloud Storage. * - roles/storage.objectAdmin — Full control of Google Cloud Storage objects. The legacy IAM roles are: * - roles/storage.legacyObjectReader — Read-only access to objects without listing. Equivalent to an ACL entry on an object with the READER role. * - roles/storage.legacyObjectOwner — Read/write access to existing objects without listing. Equivalent to an ACL entry on an object with the OWNER role. * - roles/storage.legacyBucketReader — Read access to buckets with object listing. Equivalent to an ACL entry on a bucket with the READER role. * - roles/storage.legacyBucketWriter — Read access to buckets with object listing/creation/deletion. Equivalent to an ACL entry on a bucket with the WRITER role. * - roles/storage.legacyBucketOwner — Read and write access to existing buckets with object listing/creation/deletion. Equivalent to an ACL entry on a bucket with the OWNER role. */ role: string; } } } export declare namespace storagetransfer { namespace v1 { /** * AWS access key (see [AWS Security Credentials](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)). For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials). */ interface AwsAccessKeyResponse { /** * AWS access key ID. */ accessKeyId: string; /** * AWS secret access key. This field is not returned in RPC responses. */ secretAccessKey: string; } /** * An AwsS3CompatibleData resource. */ interface AwsS3CompatibleDataResponse { /** * Specifies the name of the bucket. */ bucketName: string; /** * Specifies the endpoint of the storage service. */ endpoint: string; /** * Specifies the root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'. */ path: string; /** * Specifies the region to sign requests with. This can be left blank if requests should be signed with an empty region. */ region: string; /** * A S3 compatible metadata. */ s3Metadata: outputs.storagetransfer.v1.S3CompatibleMetadataResponse; } /** * An AwsS3Data resource can be a data source, but not a data sink. In an AwsS3Data resource, an object's name is the S3 object's key name. */ interface AwsS3DataResponse { /** * Input only. AWS access key used to sign the API requests to the AWS S3 bucket. Permissions on the bucket must be granted to the access ID of the AWS access key. For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials). */ awsAccessKey: outputs.storagetransfer.v1.AwsAccessKeyResponse; /** * S3 Bucket name (see [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)). */ bucketName: string; /** * Optional. Cloudfront domain name pointing to this bucket (as origin), to use when fetching. Format: `https://{id}.cloudfront.net` or any valid custom domain `https://...` */ cloudfrontDomain: string; /** * Optional. The Resource name of a secret in Secret Manager. The Azure SAS token must be stored in Secret Manager in JSON format: { "sas_token" : "SAS_TOKEN" } GoogleServiceAccount must be granted `roles/secretmanager.secretAccessor` for the resource. See [Configure access to a source: Microsoft Azure Blob Storage] (https://cloud.google.com/storage-transfer/docs/source-microsoft-azure#secret_manager) for more information. If `credentials_secret` is specified, do not specify azure_credentials. This feature is in [preview](https://cloud.google.com/terms/service-terms#1). Format: `projects/{project_number}/secrets/{secret_name}` */ credentialsSecret: string; /** * Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'. */ path: string; /** * The Amazon Resource Name (ARN) of the role to support temporary credentials via `AssumeRoleWithWebIdentity`. For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). When a role ARN is provided, Transfer Service fetches temporary credentials for the session using a `AssumeRoleWithWebIdentity` call for the provided role using the GoogleServiceAccount for this project. */ roleArn: string; } /** * An AzureBlobStorageData resource can be a data source, but not a data sink. An AzureBlobStorageData resource represents one Azure container. The storage account determines the [Azure endpoint](https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account#storage-account-endpoints). In an AzureBlobStorageData resource, a blobs's name is the [Azure Blob Storage blob's key name](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#blob-names). */ interface AzureBlobStorageDataResponse { /** * Input only. Credentials used to authenticate API requests to Azure. For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials). */ azureCredentials: outputs.storagetransfer.v1.AzureCredentialsResponse; /** * The container to transfer from the Azure Storage account. */ container: string; /** * Optional. The Resource name of a secret in Secret Manager. The Azure SAS token must be stored in Secret Manager in JSON format: { "sas_token" : "SAS_TOKEN" } GoogleServiceAccount must be granted `roles/secretmanager.secretAccessor` for the resource. See [Configure access to a source: Microsoft Azure Blob Storage] (https://cloud.google.com/storage-transfer/docs/source-microsoft-azure#secret_manager) for more information. If `credentials_secret` is specified, do not specify azure_credentials. This feature is in [preview](https://cloud.google.com/terms/service-terms#1). Format: `projects/{project_number}/secrets/{secret_name}` */ credentialsSecret: string; /** * Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'. */ path: string; /** * The name of the Azure Storage account. */ storageAccount: string; } /** * Azure credentials For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials). */ interface AzureCredentialsResponse { /** * Azure shared access signature (SAS). For more information about SAS, see [Grant limited access to Azure Storage resources using shared access signatures (SAS)](https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview). */ sasToken: string; } /** * Specifies a bandwidth limit for an agent pool. */ interface BandwidthLimitResponse { /** * Bandwidth rate in megabytes per second, distributed across all the agents in the pool. */ limitMbps: string; } /** * Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp */ interface DateResponse { /** * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. */ day: number; /** * Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. */ month: number; /** * Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. */ year: number; } /** * Specifies the Event-driven transfer options. Event-driven transfers listen to an event stream to transfer updated files. */ interface EventStreamResponse { /** * Specifies the data and time at which Storage Transfer Service stops listening for events from this stream. After this time, any transfers in progress will complete, but no new transfers are initiated. */ eventStreamExpirationTime: string; /** * Specifies the date and time that Storage Transfer Service starts listening for events from this stream. If no start time is specified or start time is in the past, Storage Transfer Service starts listening immediately. */ eventStreamStartTime: string; /** * Specifies a unique name of the resource such as AWS SQS ARN in the form 'arn:aws:sqs:region:account_id:queue_name', or Pub/Sub subscription resource name in the form 'projects/{project}/subscriptions/{sub}'. */ name: string; } /** * In a GcsData resource, an object's name is the Cloud Storage object's name and its "last modification time" refers to the object's `updated` property of Cloud Storage objects, which changes when the content or the metadata of the object is updated. */ interface GcsDataResponse { /** * Cloud Storage bucket name. Must meet [Bucket Name Requirements](/storage/docs/naming#requirements). */ bucketName: string; /** * Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'. The root path value must meet [Object Name Requirements](/storage/docs/naming#objectnames). */ path: string; } /** * An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `"TsvHttpData-1.0"`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object is not transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer fails. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. */ interface HttpDataResponse { /** * The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported. */ listUrl: string; } /** * Specifies the logging behavior for transfer operations. For cloud-to-cloud transfers, logs are sent to Cloud Logging. See [Read transfer logs](https://cloud.google.com/storage-transfer/docs/read-transfer-logs) for details. For transfers to or from a POSIX file system, logs are stored in the Cloud Storage bucket that is the source or sink of the transfer. See [Managing Transfer for on-premises jobs] (https://cloud.google.com/storage-transfer/docs/managing-on-prem-jobs#viewing-logs) for details. */ interface LoggingConfigResponse { /** * For transfers with a PosixFilesystem source, this option enables the Cloud Storage transfer logs for this transfer. */ enableOnpremGcsTransferLogs: boolean; /** * States in which `log_actions` are logged. If empty, no logs are generated. Not supported for transfers with PosixFilesystem data sources; use enable_onprem_gcs_transfer_logs instead. */ logActionStates: string[]; /** * Specifies the actions to be logged. If empty, no logs are generated. Not supported for transfers with PosixFilesystem data sources; use enable_onprem_gcs_transfer_logs instead. */ logActions: string[]; } /** * Specifies the metadata options for running a transfer. */ interface MetadataOptionsResponse { /** * Specifies how each object's ACLs should be preserved for transfers between Google Cloud Storage buckets. If unspecified, the default behavior is the same as ACL_DESTINATION_BUCKET_DEFAULT. */ acl: string; /** * Specifies how each file's POSIX group ID (GID) attribute should be handled by the transfer. By default, GID is not preserved. Only applicable to transfers involving POSIX file systems, and ignored for other transfers. */ gid: string; /** * Specifies how each object's Cloud KMS customer-managed encryption key (CMEK) is preserved for transfers between Google Cloud Storage buckets. If unspecified, the default behavior is the same as KMS_KEY_DESTINATION_BUCKET_DEFAULT. */ kmsKey: string; /** * Specifies how each file's mode attribute should be handled by the transfer. By default, mode is not preserved. Only applicable to transfers involving POSIX file systems, and ignored for other transfers. */ mode: string; /** * Specifies the storage class to set on objects being transferred to Google Cloud Storage buckets. If unspecified, the default behavior is the same as STORAGE_CLASS_DESTINATION_BUCKET_DEFAULT. */ storageClass: string; /** * Specifies how symlinks should be handled by the transfer. By default, symlinks are not preserved. Only applicable to transfers involving POSIX file systems, and ignored for other transfers. */ symlink: string; /** * Specifies how each object's temporary hold status should be preserved for transfers between Google Cloud Storage buckets. If unspecified, the default behavior is the same as TEMPORARY_HOLD_PRESERVE. */ temporaryHold: string; /** * Specifies how each object's `timeCreated` metadata is preserved for transfers between Google Cloud Storage buckets. If unspecified, the default behavior is the same as TIME_CREATED_SKIP. */ timeCreated: string; /** * Specifies how each file's POSIX user ID (UID) attribute should be handled by the transfer. By default, UID is not preserved. Only applicable to transfers involving POSIX file systems, and ignored for other transfers. */ uid: string; } /** * Specification to configure notifications published to Pub/Sub. Notifications are published to the customer-provided topic using the following `PubsubMessage.attributes`: * `"eventType"`: one of the EventType values * `"payloadFormat"`: one of the PayloadFormat values * `"projectId"`: the project_id of the `TransferOperation` * `"transferJobName"`: the transfer_job_name of the `TransferOperation` * `"transferOperationName"`: the name of the `TransferOperation` The `PubsubMessage.data` contains a TransferOperation resource formatted according to the specified `PayloadFormat`. */ interface NotificationConfigResponse { /** * Event types for which a notification is desired. If empty, send notifications for all event types. */ eventTypes: string[]; /** * The desired format of the notification message payloads. */ payloadFormat: string; /** * The `Topic.name` of the Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format results in an INVALID_ARGUMENT error. */ pubsubTopic: string; } /** * Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The "last modification time" refers to the time of the last change to the object's content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. Transfers with a PosixFilesystem source or destination don't support `ObjectConditions`. */ interface ObjectConditionsResponse { /** * If you specify `exclude_prefixes`, Storage Transfer Service uses the items in the `exclude_prefixes` array to determine which objects to exclude from a transfer. Objects must not start with one of the matching `exclude_prefixes` for inclusion in a transfer. The following are requirements of `exclude_prefixes`: * Each exclude-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each exclude-prefix must omit the leading slash. For example, to exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the exclude-prefix as `logs/y=2015/requests.gz`. * None of the exclude-prefix values can be empty, if specified. * Each exclude-prefix must exclude a distinct portion of the object namespace. No exclude-prefix may be a prefix of another exclude-prefix. * If include_prefixes is specified, then each exclude-prefix must start with the value of a path explicitly included by `include_prefixes`. The max size of `exclude_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers). */ excludePrefixes: string[]; /** * If you specify `include_prefixes`, Storage Transfer Service uses the items in the `include_prefixes` array to determine which objects to include in a transfer. Objects must start with one of the matching `include_prefixes` for inclusion in the transfer. If exclude_prefixes is specified, objects must not start with any of the `exclude_prefixes` specified for inclusion in the transfer. The following are requirements of `include_prefixes`: * Each include-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each include-prefix must omit the leading slash. For example, to include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include-prefix as `logs/y=2015/requests.gz`. * None of the include-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace. No include-prefix may be a prefix of another include-prefix. The max size of `include_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers). */ includePrefixes: string[]; /** * If specified, only objects with a "last modification time" before this timestamp and objects that don't have a "last modification time" are transferred. */ lastModifiedBefore: string; /** * If specified, only objects with a "last modification time" on or after this timestamp and objects that don't have a "last modification time" are transferred. The `last_modified_since` and `last_modified_before` fields can be used together for chunked data processing. For example, consider a script that processes each day's worth of data at a time. For that you'd set each of the fields as follows: * `last_modified_since` to the start of the day * `last_modified_before` to the end of the day */ lastModifiedSince: string; /** * Ensures that objects are not transferred if a specific maximum time has elapsed since the "last modification time". When a TransferOperation begins, objects with a "last modification time" are transferred only if the elapsed time between the start_time of the `TransferOperation`and the "last modification time" of the object is less than the value of max_time_elapsed_since_last_modification`. Objects that do not have a "last modification time" are also transferred. */ maxTimeElapsedSinceLastModification: string; /** * Ensures that objects are not transferred until a specific minimum time has elapsed after the "last modification time". When a TransferOperation begins, objects with a "last modification time" are transferred only if the elapsed time between the start_time of the `TransferOperation` and the "last modification time" of the object is equal to or greater than the value of min_time_elapsed_since_last_modification`. Objects that do not have a "last modification time" are also transferred. */ minTimeElapsedSinceLastModification: string; } /** * A POSIX filesystem resource. */ interface PosixFilesystemResponse { /** * Root directory path to the filesystem. */ rootDirectory: string; } /** * S3CompatibleMetadata contains the metadata fields that apply to the basic types of S3-compatible data providers. */ interface S3CompatibleMetadataResponse { /** * Specifies the authentication and authorization method used by the storage service. When not specified, Transfer Service will attempt to determine right auth method to use. */ authMethod: string; /** * The Listing API to use for discovering objects. When not specified, Transfer Service will attempt to determine the right API to use. */ listApi: string; /** * Specifies the network protocol of the agent. When not specified, the default value of NetworkProtocol NETWORK_PROTOCOL_HTTPS is used. */ protocol: string; /** * Specifies the API request model used to call the storage service. When not specified, the default value of RequestModel REQUEST_MODEL_VIRTUAL_HOSTED_STYLE is used. */ requestModel: string; } /** * Transfers can be scheduled to recur or to run just once. */ interface ScheduleResponse { /** * The time in UTC that no further transfer operations are scheduled. Combined with schedule_end_date, `end_time_of_day` specifies the end date and time for starting new transfer operations. This field must be greater than or equal to the timestamp corresponding to the combintation of schedule_start_date and start_time_of_day, and is subject to the following: * If `end_time_of_day` is not set and `schedule_end_date` is set, then a default value of `23:59:59` is used for `end_time_of_day`. * If `end_time_of_day` is set and `schedule_end_date` is not set, then INVALID_ARGUMENT is returned. */ endTimeOfDay: outputs.storagetransfer.v1.TimeOfDayResponse; /** * Interval between the start of each scheduled TransferOperation. If unspecified, the default value is 24 hours. This value may not be less than 1 hour. */ repeatInterval: string; /** * The last day a transfer runs. Date boundaries are determined relative to UTC time. A job runs once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job runs each day at start_time_of_day through `schedule_end_date`. */ scheduleEndDate: outputs.storagetransfer.v1.DateResponse; /** * The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job's creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job starts later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it creates a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation takes place on June 3 at midnight UTC. */ scheduleStartDate: outputs.storagetransfer.v1.DateResponse; /** * The time in UTC that a transfer job is scheduled to run. Transfers may start later than this time. If `start_time_of_day` is not specified: * One-time transfers run immediately. * Recurring transfers run immediately, and each day at midnight UTC, through schedule_end_date. If `start_time_of_day` is specified: * One-time transfers run at the specified time. * Recurring transfers run at the specified time each day, through `schedule_end_date`. */ startTimeOfDay: outputs.storagetransfer.v1.TimeOfDayResponse; } /** * Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. */ interface TimeOfDayResponse { /** * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. */ hours: number; /** * Minutes of hour of day. Must be from 0 to 59. */ minutes: number; /** * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. */ nanos: number; /** * Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds. */ seconds: number; } /** * Specifies where the manifest is located. */ interface TransferManifestResponse { /** * Specifies the path to the manifest in Cloud Storage. The Google-managed service account for the transfer must have `storage.objects.get` permission for this object. An example path is `gs://bucket_name/path/manifest.csv`. */ location: string; } /** * TransferOptions define the actions to be performed on objects in a transfer. */ interface TransferOptionsResponse { /** * Whether objects should be deleted from the source after they are transferred to the sink. **Note:** This option and delete_objects_unique_in_sink are mutually exclusive. */ deleteObjectsFromSourceAfterTransfer: boolean; /** * Whether objects that exist only in the sink should be deleted. **Note:** This option and delete_objects_from_source_after_transfer are mutually exclusive. */ deleteObjectsUniqueInSink: boolean; /** * Represents the selected metadata options for a transfer job. */ metadataOptions: outputs.storagetransfer.v1.MetadataOptionsResponse; /** * When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source are overwritten with the source object. */ overwriteObjectsAlreadyExistingInSink: boolean; /** * When to overwrite objects that already exist in the sink. If not set, overwrite behavior is determined by overwrite_objects_already_existing_in_sink. */ overwriteWhen: string; } /** * Configuration for running a transfer. */ interface TransferSpecResponse { /** * An AWS S3 compatible data source. */ awsS3CompatibleDataSource: outputs.storagetransfer.v1.AwsS3CompatibleDataResponse; /** * An AWS S3 data source. */ awsS3DataSource: outputs.storagetransfer.v1.AwsS3DataResponse; /** * An Azure Blob Storage data source. */ azureBlobStorageDataSource: outputs.storagetransfer.v1.AzureBlobStorageDataResponse; /** * A Cloud Storage data sink. */ gcsDataSink: outputs.storagetransfer.v1.GcsDataResponse; /** * A Cloud Storage data source. */ gcsDataSource: outputs.storagetransfer.v1.GcsDataResponse; /** * For transfers between file systems, specifies a Cloud Storage bucket to be used as an intermediate location through which to transfer data. See [Transfer data between file systems](https://cloud.google.com/storage-transfer/docs/file-to-file) for more information. */ gcsIntermediateDataLocation: outputs.storagetransfer.v1.GcsDataResponse; /** * An HTTP URL data source. */ httpDataSource: outputs.storagetransfer.v1.HttpDataResponse; /** * Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' "last modification time" do not exclude objects in a data sink. */ objectConditions: outputs.storagetransfer.v1.ObjectConditionsResponse; /** * A POSIX Filesystem data sink. */ posixDataSink: outputs.storagetransfer.v1.PosixFilesystemResponse; /** * A POSIX Filesystem data source. */ posixDataSource: outputs.storagetransfer.v1.PosixFilesystemResponse; /** * Specifies the agent pool name associated with the posix data sink. When unspecified, the default name is used. */ sinkAgentPoolName: string; /** * Specifies the agent pool name associated with the posix data source. When unspecified, the default name is used. */ sourceAgentPoolName: string; /** * A manifest file provides a list of objects to be transferred from the data source. This field points to the location of the manifest file. Otherwise, the entire source bucket is used. ObjectConditions still apply. */ transferManifest: outputs.storagetransfer.v1.TransferManifestResponse; /** * If the option delete_objects_unique_in_sink is `true` and time-based object conditions such as 'last modification time' are specified, the request fails with an INVALID_ARGUMENT error. */ transferOptions: outputs.storagetransfer.v1.TransferOptionsResponse; } } } export declare namespace testing { namespace v1 { /** * Identifies an account and how to log into it. */ interface AccountResponse { /** * An automatic google login account. */ googleAuto: outputs.testing.v1.GoogleAutoResponse; } /** * A list of Android device configurations in which the test is to be executed. */ interface AndroidDeviceListResponse { /** * A list of Android devices. */ androidDevices: outputs.testing.v1.AndroidDeviceResponse[]; } /** * A single Android device. */ interface AndroidDeviceResponse { /** * The id of the Android device to be used. Use the TestEnvironmentDiscoveryService to get supported options. */ androidModelId: string; /** * The id of the Android OS version to be used. Use the TestEnvironmentDiscoveryService to get supported options. */ androidVersionId: string; /** * The locale the test device used for testing. Use the TestEnvironmentDiscoveryService to get supported options. */ locale: string; /** * How the device is oriented during the test. Use the TestEnvironmentDiscoveryService to get supported options. */ orientation: string; } /** * A test of an Android application that can control an Android component independently of its normal lifecycle. Android instrumentation tests run an application APK and test APK inside the same process on a virtual or physical AndroidDevice. They also specify a test runner class, such as com.google.GoogleTestRunner, which can vary on the specific instrumentation framework chosen. See for more information on types of Android tests. */ interface AndroidInstrumentationTestResponse { /** * The APK for the application under test. */ appApk: outputs.testing.v1.FileReferenceResponse; /** * A multi-apk app bundle for the application under test. */ appBundle: outputs.testing.v1.AppBundleResponse; /** * The java package for the application under test. The default value is determined by examining the application's manifest. */ appPackageId: string; /** * The option of whether running each test within its own invocation of instrumentation with Android Test Orchestrator or not. ** Orchestrator is only compatible with AndroidJUnitRunner version 1.1 or higher! ** Orchestrator offers the following benefits: - No shared state - Crashes are isolated - Logs are scoped per test See for more information about Android Test Orchestrator. If not set, the test will be run without the orchestrator. */ orchestratorOption: string; /** * The option to run tests in multiple shards in parallel. */ shardingOption: outputs.testing.v1.ShardingOptionResponse; /** * The APK containing the test code to be executed. */ testApk: outputs.testing.v1.FileReferenceResponse; /** * The java package for the test to be executed. The default value is determined by examining the application's manifest. */ testPackageId: string; /** * The InstrumentationTestRunner class. The default value is determined by examining the application's manifest. */ testRunnerClass: string; /** * Each target must be fully qualified with the package name or class name, in one of these formats: - "package package_name" - "class package_name.class_name" - "class package_name.class_name#method_name" If empty, all targets in the module will be run. */ testTargets: string[]; } /** * A set of Android device configuration permutations is defined by the the cross-product of the given axes. Internally, the given AndroidMatrix will be expanded into a set of AndroidDevices. Only supported permutations will be instantiated. Invalid permutations (e.g., incompatible models/versions) are ignored. */ interface AndroidMatrixResponse { /** * The ids of the set of Android device to be used. Use the TestEnvironmentDiscoveryService to get supported options. */ androidModelIds: string[]; /** * The ids of the set of Android OS version to be used. Use the TestEnvironmentDiscoveryService to get supported options. */ androidVersionIds: string[]; /** * The set of locales the test device will enable for testing. Use the TestEnvironmentDiscoveryService to get supported options. */ locales: string[]; /** * The set of orientations to test with. Use the TestEnvironmentDiscoveryService to get supported options. */ orientations: string[]; } /** * A test of an android application that explores the application on a virtual or physical Android Device, finding culprits and crashes as it goes. */ interface AndroidRoboTestResponse { /** * The APK for the application under test. */ appApk: outputs.testing.v1.FileReferenceResponse; /** * A multi-apk app bundle for the application under test. */ appBundle: outputs.testing.v1.AppBundleResponse; /** * The initial activity that should be used to start the app. */ appInitialActivity: string; /** * The java package for the application under test. The default value is determined by examining the application's manifest. */ appPackageId: string; /** * The max depth of the traversal stack Robo can explore. Needs to be at least 2 to make Robo explore the app beyond the first activity. Default is 50. */ maxDepth: number; /** * The max number of steps Robo can execute. Default is no limit. */ maxSteps: number; /** * A set of directives Robo should apply during the crawl. This allows users to customize the crawl. For example, the username and password for a test account can be provided. */ roboDirectives: outputs.testing.v1.RoboDirectiveResponse[]; /** * The mode in which Robo should run. Most clients should allow the server to populate this field automatically. */ roboMode: string; /** * A JSON file with a sequence of actions Robo should perform as a prologue for the crawl. */ roboScript: outputs.testing.v1.FileReferenceResponse; /** * The intents used to launch the app for the crawl. If none are provided, then the main launcher activity is launched. If some are provided, then only those provided are launched (the main launcher activity must be provided explicitly). */ startingIntents: outputs.testing.v1.RoboStartingIntentResponse[]; } /** * A test of an Android Application with a Test Loop. The intent \ will be implicitly added, since Games is the only user of this api, for the time being. */ interface AndroidTestLoopResponse { /** * The APK for the application under test. */ appApk: outputs.testing.v1.FileReferenceResponse; /** * A multi-apk app bundle for the application under test. */ appBundle: outputs.testing.v1.AppBundleResponse; /** * The java package for the application under test. The default is determined by examining the application's manifest. */ appPackageId: string; /** * The list of scenario labels that should be run during the test. The scenario labels should map to labels defined in the application's manifest. For example, player_experience and com.google.test.loops.player_experience add all of the loops labeled in the manifest with the com.google.test.loops.player_experience name to the execution. Scenarios can also be specified in the scenarios field. */ scenarioLabels: string[]; /** * The list of scenarios that should be run during the test. The default is all test loops, derived from the application's manifest. */ scenarios: number[]; } /** * An Android package file to install. */ interface ApkResponse { /** * The path to an APK to be installed on the device before the test begins. */ location: outputs.testing.v1.FileReferenceResponse; /** * The java package for the APK to be installed. Value is determined by examining the application's manifest. */ packageName: string; } /** * An Android App Bundle file format, containing a BundleConfig.pb file, a base module directory, zero or more dynamic feature module directories. See https://developer.android.com/guide/app-bundle/build for guidance on building App Bundles. */ interface AppBundleResponse { /** * .aab file representing the app bundle under test. */ bundleLocation: outputs.testing.v1.FileReferenceResponse; } /** * Key-value pair of detailed information about the client which invoked the test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}. */ interface ClientInfoDetailResponse { /** * The key of detailed client information. */ key: string; /** * The value of detailed client information. */ value: string; } /** * Information about the client which invoked the test. */ interface ClientInfoResponse { /** * The list of detailed information about client. */ clientInfoDetails: outputs.testing.v1.ClientInfoDetailResponse[]; /** * Client name, such as gcloud. */ name: string; } /** * A single device file description. */ interface DeviceFileResponse { /** * A reference to an opaque binary blob file. */ obbFile: outputs.testing.v1.ObbFileResponse; /** * A reference to a regular file. */ regularFile: outputs.testing.v1.RegularFileResponse; } /** * The matrix of environments in which the test is to be executed. */ interface EnvironmentMatrixResponse { /** * A list of Android devices; the test will be run only on the specified devices. */ androidDeviceList: outputs.testing.v1.AndroidDeviceListResponse; /** * A matrix of Android devices. */ androidMatrix: outputs.testing.v1.AndroidMatrixResponse; /** * A list of iOS devices. */ iosDeviceList: outputs.testing.v1.IosDeviceListResponse; } /** * The environment in which the test is run. */ interface EnvironmentResponse { /** * An Android device which must be used with an Android test. */ androidDevice: outputs.testing.v1.AndroidDeviceResponse; /** * An iOS device which must be used with an iOS test. */ iosDevice: outputs.testing.v1.IosDeviceResponse; } /** * A key-value pair passed as an environment variable to the test. */ interface EnvironmentVariableResponse { /** * Key for the environment variable. */ key: string; /** * Value for the environment variable. */ value: string; } /** * A reference to a file, used for user inputs. */ interface FileReferenceResponse { /** * A path to a file in Google Cloud Storage. Example: gs://build-app-1414623860166/app%40debug-unaligned.apk These paths are expected to be url encoded (percent encoding) */ gcsPath: string; } /** * Enables automatic Google account login. If set, the service automatically generates a Google test account and adds it to the device, before executing the test. Note that test accounts might be reused. Many applications show their full set of functionalities when an account is present on the device. Logging into the device with these generated accounts allows testing more functionalities. */ interface GoogleAutoResponse { } /** * A storage location within Google cloud storage (GCS). */ interface GoogleCloudStorageResponse { /** * The path to a directory in GCS that will eventually contain the results for this test. The requesting user must have write access on the bucket in the supplied path. */ gcsPath: string; } /** * A file or directory to install on the device before the test starts. */ interface IosDeviceFileResponse { /** * The bundle id of the app where this file lives. iOS apps sandbox their own filesystem, so app files must specify which app installed on the device. */ bundleId: string; /** * The source file */ content: outputs.testing.v1.FileReferenceResponse; /** * Location of the file on the device, inside the app's sandboxed filesystem */ devicePath: string; } /** * A list of iOS device configurations in which the test is to be executed. */ interface IosDeviceListResponse { /** * A list of iOS devices. */ iosDevices: outputs.testing.v1.IosDeviceResponse[]; } /** * A single iOS device. */ interface IosDeviceResponse { /** * The id of the iOS device to be used. Use the TestEnvironmentDiscoveryService to get supported options. */ iosModelId: string; /** * The id of the iOS major software version to be used. Use the TestEnvironmentDiscoveryService to get supported options. */ iosVersionId: string; /** * The locale the test device used for testing. Use the TestEnvironmentDiscoveryService to get supported options. */ locale: string; /** * How the device is oriented during the test. Use the TestEnvironmentDiscoveryService to get supported options. */ orientation: string; } /** * A test that explores an iOS application on an iOS device. */ interface IosRoboTestResponse { /** * The bundle ID for the app-under-test. This is determined by examining the application's "Info.plist" file. */ appBundleId: string; /** * The ipa stored at this file should be used to run the test. */ appIpa: outputs.testing.v1.FileReferenceResponse; /** * An optional Roboscript to customize the crawl. See https://firebase.google.com/docs/test-lab/android/robo-scripts-reference for more information about Roboscripts. */ roboScript: outputs.testing.v1.FileReferenceResponse; } /** * A test of an iOS application that implements one or more game loop scenarios. This test type accepts an archived application (.ipa file) and a list of integer scenarios that will be executed on the app sequentially. */ interface IosTestLoopResponse { /** * The bundle id for the application under test. */ appBundleId: string; /** * The .ipa of the application to test. */ appIpa: outputs.testing.v1.FileReferenceResponse; /** * The list of scenarios that should be run during the test. Defaults to the single scenario 0 if unspecified. */ scenarios: number[]; } /** * A description of how to set up an iOS device prior to running the test. */ interface IosTestSetupResponse { /** * iOS apps to install in addition to those being directly tested. */ additionalIpas: outputs.testing.v1.FileReferenceResponse[]; /** * The network traffic profile used for running the test. Available network profiles can be queried by using the NETWORK_CONFIGURATION environment type when calling TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. */ networkProfile: string; /** * List of directories on the device to upload to Cloud Storage at the end of the test. Directories should either be in a shared directory (such as /private/var/mobile/Media) or within an accessible directory inside the app's filesystem (such as /Documents) by specifying the bundle ID. */ pullDirectories: outputs.testing.v1.IosDeviceFileResponse[]; /** * List of files to push to the device before starting the test. */ pushFiles: outputs.testing.v1.IosDeviceFileResponse[]; } /** * A test of an iOS application that uses the XCTest framework. Xcode supports the option to "build for testing", which generates an .xctestrun file that contains a test specification (arguments, test methods, etc). This test type accepts a zip file containing the .xctestrun file and the corresponding contents of the Build/Products directory that contains all the binaries needed to run the tests. */ interface IosXcTestResponse { /** * The bundle id for the application under test. */ appBundleId: string; /** * The option to test special app entitlements. Setting this would re-sign the app having special entitlements with an explicit application-identifier. Currently supports testing aps-environment entitlement. */ testSpecialEntitlements: boolean; /** * The .zip containing the .xctestrun file and the contents of the DerivedData/Build/Products directory. The .xctestrun file in this zip is ignored if the xctestrun field is specified. */ testsZip: outputs.testing.v1.FileReferenceResponse; /** * The Xcode version that should be used for the test. Use the TestEnvironmentDiscoveryService to get supported options. Defaults to the latest Xcode version Firebase Test Lab supports. */ xcodeVersion: string; /** * An .xctestrun file that will override the .xctestrun file in the tests zip. Because the .xctestrun file contains environment variables along with test methods to run and/or ignore, this can be useful for sharding tests. Default is taken from the tests zip. */ xctestrun: outputs.testing.v1.FileReferenceResponse; } /** * Specifies an intent that starts the main launcher activity. */ interface LauncherActivityIntentResponse { } /** * Shards test cases into the specified groups of packages, classes, and/or methods. With manual sharding enabled, specifying test targets via environment_variables or in InstrumentationTest is invalid. */ interface ManualShardingResponse { /** * Group of packages, classes, and/or test methods to be run for each manually-created shard. You must specify at least one shard if this field is present. When you select one or more physical devices, the number of repeated test_targets_for_shard must be <= 50. When you select one or more ARM virtual devices, it must be <= 200. When you select only x86 virtual devices, it must be <= 500. */ testTargetsForShard: outputs.testing.v1.TestTargetsForShardResponse[]; } /** * Skips the starting activity */ interface NoActivityIntentResponse { } /** * An opaque binary blob file to install on the device before the test starts. */ interface ObbFileResponse { /** * Opaque Binary Blob (OBB) file(s) to install on the device. */ obb: outputs.testing.v1.FileReferenceResponse; /** * OBB file name which must conform to the format as specified by Android e.g. [main|patch].0300110.com.example.android.obb which will be installed into \/Android/obb/\/ on the device. */ obbFileName: string; } /** * A file or directory to install on the device before the test starts. */ interface RegularFileResponse { /** * The source file. */ content: outputs.testing.v1.FileReferenceResponse; /** * Where to put the content on the device. Must be an absolute, allowlisted path. If the file exists, it will be replaced. The following device-side directories and any of their subdirectories are allowlisted: ${EXTERNAL_STORAGE}, /sdcard, or /storage ${ANDROID_DATA}/local/tmp, or /data/local/tmp Specifying a path outside of these directory trees is invalid. The paths /sdcard and /data will be made available and treated as implicit path substitutions. E.g. if /sdcard on a particular device does not map to external storage, the system will replace it with the external storage path prefix for that device and copy the file there. It is strongly advised to use the Environment API in app and test code to access files on the device in a portable way. */ devicePath: string; } /** * Locations where the results of running the test are stored. */ interface ResultStorageResponse { /** * Required. */ googleCloudStorage: outputs.testing.v1.GoogleCloudStorageResponse; /** * URL to the results in the Firebase Web Console. */ resultsUrl: string; /** * The tool results execution that results are written to. */ toolResultsExecution: outputs.testing.v1.ToolResultsExecutionResponse; /** * The tool results history that contains the tool results execution that results are written to. If not provided, the service will choose an appropriate value. */ toolResultsHistory: outputs.testing.v1.ToolResultsHistoryResponse; } /** * Directs Robo to interact with a specific UI element if it is encountered during the crawl. Currently, Robo can perform text entry or element click. */ interface RoboDirectiveResponse { /** * The type of action that Robo should perform on the specified element. */ actionType: string; /** * The text that Robo is directed to set. If left empty, the directive will be treated as a CLICK on the element matching the resource_name. */ inputText: string; /** * The android resource name of the target UI element. For example, in Java: R.string.foo in xml: @string/foo Only the "foo" part is needed. Reference doc: https://developer.android.com/guide/topics/resources/accessing-resources.html */ resourceName: string; } /** * Message for specifying the start activities to crawl. */ interface RoboStartingIntentResponse { /** * An intent that starts the main launcher activity. */ launcherActivity: outputs.testing.v1.LauncherActivityIntentResponse; /** * Skips the starting activity */ noActivity: outputs.testing.v1.NoActivityIntentResponse; /** * An intent that starts an activity with specific details. */ startActivity: outputs.testing.v1.StartActivityIntentResponse; /** * Timeout in seconds for each intent. */ timeout: string; } /** * A message encapsulating a series of Session states and the time that the DeviceSession first entered those states. */ interface SessionStateEventResponse { /** * The time that the session_state first encountered that state. */ eventTime: string; /** * The session_state tracked by this event */ sessionState: string; /** * A human-readable message to explain the state. */ stateMessage: string; } /** * Output only. Details about the shard. */ interface ShardResponse { /** * The estimated shard duration based on previous test case timing records, if available. */ estimatedShardDuration: string; /** * The total number of shards. */ numShards: number; /** * The index of the shard among all the shards. */ shardIndex: number; /** * Test targets for each shard. Only set for manual sharding. */ testTargetsForShard: outputs.testing.v1.TestTargetsForShardResponse; } /** * Options for enabling sharding. */ interface ShardingOptionResponse { /** * Shards test cases into the specified groups of packages, classes, and/or methods. */ manualSharding: outputs.testing.v1.ManualShardingResponse; /** * Shards test based on previous test case timing records. */ smartSharding: outputs.testing.v1.SmartShardingResponse; /** * Uniformly shards test cases given a total number of shards. */ uniformSharding: outputs.testing.v1.UniformShardingResponse; } /** * Shards test based on previous test case timing records. */ interface SmartShardingResponse { /** * The amount of time tests within a shard should take. Default: 300 seconds (5 minutes). The minimum allowed: 120 seconds (2 minutes). The shard count is dynamically set based on time, up to the maximum shard limit (described below). To guarantee at least one test case for each shard, the number of shards will not exceed the number of test cases. Shard duration will be exceeded if: - The maximum shard limit is reached and there is more calculated test time remaining to allocate into shards. - Any individual test is estimated to be longer than the targeted shard duration. Shard duration is not guaranteed because smart sharding uses test case history and default durations which may not be accurate. The rules for finding the test case timing records are: - If the service has processed a test case in the last 30 days, the record of the latest successful test case will be used. - For new test cases, the average duration of other known test cases will be used. - If there are no previous test case timing records available, the default test case duration is 15 seconds. Because the actual shard duration can exceed the targeted shard duration, we recommend that you set the targeted value at least 5 minutes less than the maximum allowed test timeout (45 minutes for physical devices and 60 minutes for virtual), or that you use the custom test timeout value that you set. This approach avoids cancelling the shard before all tests can finish. Note that there is a limit for maximum number of shards. When you select one or more physical devices, the number of shards must be <= 50. When you select one or more ARM virtual devices, it must be <= 200. When you select only x86 virtual devices, it must be <= 500. To guarantee at least one test case for per shard, the number of shards will not exceed the number of test cases. Each shard created counts toward daily test quota. */ targetedShardDuration: string; } /** * A starting intent specified by an action, uri, and categories. */ interface StartActivityIntentResponse { /** * Action name. Required for START_ACTIVITY. */ action: string; /** * Intent categories to set on the intent. */ categories: string[]; /** * URI for the action. */ uri: string; } interface SystraceSetupResponse { /** * Systrace duration in seconds. Should be between 1 and 30 seconds. 0 disables systrace. */ durationSeconds: number; } /** * Additional details about the progress of the running test. */ interface TestDetailsResponse { /** * If the TestState is ERROR, then this string will contain human-readable details about the error. */ errorMessage: string; /** * Human-readable, detailed descriptions of the test's progress. For example: "Provisioning a device", "Starting Test". During the course of execution new data may be appended to the end of progress_messages. */ progressMessages: string[]; } /** * A single test executed in a single environment. */ interface TestExecutionResponse { /** * How the host machine(s) are configured. */ environment: outputs.testing.v1.EnvironmentResponse; /** * Id of the containing TestMatrix. */ matrixId: string; /** * The cloud project that owns the test execution. */ project: string; /** * Details about the shard. */ shard: outputs.testing.v1.ShardResponse; /** * Indicates the current progress of the test execution (e.g., FINISHED). */ state: string; /** * Additional details about the running test. */ testDetails: outputs.testing.v1.TestDetailsResponse; /** * How to run the test. */ testSpecification: outputs.testing.v1.TestSpecificationResponse; /** * The time this test execution was initially created. */ timestamp: string; /** * Where the results for this execution are written. */ toolResultsStep: outputs.testing.v1.ToolResultsStepResponse; } /** * A description of how to set up the Android device prior to running the test. */ interface TestSetupResponse { /** * The device will be logged in on this account for the duration of the test. */ account: outputs.testing.v1.AccountResponse; /** * APKs to install in addition to those being directly tested. These will be installed after the app under test. Currently capped at 100. */ additionalApks: outputs.testing.v1.ApkResponse[]; /** * List of directories on the device to upload to GCS at the end of the test; they must be absolute paths under /sdcard, /storage or /data/local/tmp. Path names are restricted to characters a-z A-Z 0-9 _ - . + and / Note: The paths /sdcard and /data will be made available and treated as implicit path substitutions. E.g. if /sdcard on a particular device does not map to external storage, the system will replace it with the external storage path prefix for that device. */ directoriesToPull: string[]; /** * Whether to prevent all runtime permissions to be granted at app install */ dontAutograntPermissions: boolean; /** * Environment variables to set for the test (only applicable for instrumentation tests). */ environmentVariables: outputs.testing.v1.EnvironmentVariableResponse[]; /** * List of files to push to the device before starting the test. */ filesToPush: outputs.testing.v1.DeviceFileResponse[]; /** * Optional. Initial setup APKs to install before the app under test is installed. Currently capped at 100. */ initialSetupApks: outputs.testing.v1.ApkResponse[]; /** * The network traffic profile used for running the test. Available network profiles can be queried by using the NETWORK_CONFIGURATION environment type when calling TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. */ networkProfile: string; /** * Systrace configuration for the run. Deprecated: Systrace used Python 2 which was sunsetted on 2020-01-01. Systrace is no longer supported in the Cloud Testing API, and no Systrace file will be provided in the results. * * @deprecated Systrace configuration for the run. Deprecated: Systrace used Python 2 which was sunsetted on 2020-01-01. Systrace is no longer supported in the Cloud Testing API, and no Systrace file will be provided in the results. */ systrace: outputs.testing.v1.SystraceSetupResponse; } /** * A description of how to run the test. */ interface TestSpecificationResponse { /** * An Android instrumentation test. */ androidInstrumentationTest: outputs.testing.v1.AndroidInstrumentationTestResponse; /** * An Android robo test. */ androidRoboTest: outputs.testing.v1.AndroidRoboTestResponse; /** * An Android Application with a Test Loop. */ androidTestLoop: outputs.testing.v1.AndroidTestLoopResponse; /** * Disables performance metrics recording. May reduce test latency. */ disablePerformanceMetrics: boolean; /** * Disables video recording. May reduce test latency. */ disableVideoRecording: boolean; /** * An iOS Robo test. */ iosRoboTest: outputs.testing.v1.IosRoboTestResponse; /** * An iOS application with a test loop. */ iosTestLoop: outputs.testing.v1.IosTestLoopResponse; /** * Test setup requirements for iOS. */ iosTestSetup: outputs.testing.v1.IosTestSetupResponse; /** * An iOS XCTest, via an .xctestrun file. */ iosXcTest: outputs.testing.v1.IosXcTestResponse; /** * Test setup requirements for Android e.g. files to install, bootstrap scripts. */ testSetup: outputs.testing.v1.TestSetupResponse; /** * Max time a test execution is allowed to run before it is automatically cancelled. The default value is 5 min. */ testTimeout: string; } /** * Test targets for a shard. */ interface TestTargetsForShardResponse { /** * Group of packages, classes, and/or test methods to be run for each shard. The targets need to be specified in AndroidJUnitRunner argument format. For example, "package com.my.packages" "class com.my.package.MyClass". The number of test_targets must be greater than 0. */ testTargets: string[]; } /** * Represents a tool results execution resource. This has the results of a TestMatrix. */ interface ToolResultsExecutionResponse { /** * A tool results execution ID. */ executionId: string; /** * A tool results history ID. */ historyId: string; /** * The cloud project that owns the tool results execution. */ project: string; } /** * Represents a tool results history resource. */ interface ToolResultsHistoryResponse { /** * A tool results history ID. */ historyId: string; /** * The cloud project that owns the tool results history. */ project: string; } /** * Represents a tool results step resource. This has the results of a TestExecution. */ interface ToolResultsStepResponse { /** * A tool results execution ID. */ executionId: string; /** * A tool results history ID. */ historyId: string; /** * The cloud project that owns the tool results step. */ project: string; /** * A tool results step ID. */ stepId: string; } /** * Uniformly shards test cases given a total number of shards. For instrumentation tests, it will be translated to "-e numShard" and "-e shardIndex" AndroidJUnitRunner arguments. With uniform sharding enabled, specifying either of these sharding arguments via `environment_variables` is invalid. Based on the sharding mechanism AndroidJUnitRunner uses, there is no guarantee that test cases will be distributed uniformly across all shards. */ interface UniformShardingResponse { /** * The total number of shards to create. This must always be a positive number that is no greater than the total number of test cases. When you select one or more physical devices, the number of shards must be <= 50. When you select one or more ARM virtual devices, it must be <= 200. When you select only x86 virtual devices, it must be <= 500. */ numShards: number; } } } export declare namespace toolresults { namespace v1beta3 { /** * Android app information. */ interface AndroidAppInfoResponse { /** * The name of the app. Optional */ name: string; /** * The package name of the app. Required. */ packageName: string; /** * The internal version code of the app. Optional. */ versionCode: string; /** * The version name of the app. Optional. */ versionName: string; } /** * A test of an Android application that can control an Android component independently of its normal lifecycle. See for more information on types of Android tests. */ interface AndroidInstrumentationTestResponse { /** * The java package for the test to be executed. Required */ testPackageId: string; /** * The InstrumentationTestRunner class. Required */ testRunnerClass: string; /** * Each target must be fully qualified with the package name or class name, in one of these formats: - "package package_name" - "class package_name.class_name" - "class package_name.class_name#method_name" If empty, all targets in the module will be run. */ testTargets: string[]; /** * The flag indicates whether Android Test Orchestrator will be used to run test or not. */ useOrchestrator: boolean; } /** * A test of an android application that explores the application on a virtual or physical Android device, finding culprits and crashes as it goes. */ interface AndroidRoboTestResponse { /** * The initial activity that should be used to start the app. Optional */ appInitialActivity: string; /** * The java package for the bootstrap. Optional */ bootstrapPackageId: string; /** * The runner class for the bootstrap. Optional */ bootstrapRunnerClass: string; /** * The max depth of the traversal stack Robo can explore. Optional */ maxDepth: number; /** * The max number of steps/actions Robo can execute. Default is no limit (0). Optional */ maxSteps: number; } /** * Test Loops are tests that can be launched by the app itself, determining when to run by listening for an intent. */ interface AndroidTestLoopResponse { } /** * An Android mobile test specification. */ interface AndroidTestResponse { /** * Information about the application under test. */ androidAppInfo: outputs.toolresults.v1beta3.AndroidAppInfoResponse; /** * An Android instrumentation test. */ androidInstrumentationTest: outputs.toolresults.v1beta3.AndroidInstrumentationTestResponse; /** * An Android robo test. */ androidRoboTest: outputs.toolresults.v1beta3.AndroidRoboTestResponse; /** * An Android test loop. */ androidTestLoop: outputs.toolresults.v1beta3.AndroidTestLoopResponse; /** * Max time a test is allowed to run before it is automatically cancelled. */ testTimeout: outputs.toolresults.v1beta3.DurationResponse; } /** * `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". # JSON The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message google.protobuf.Duration): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } */ interface AnyResponse { /** * A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a google.protobuf.Type value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. */ typeUrl: string; /** * Must be a valid serialized protocol buffer of the above specified type. */ value: string; } /** * Encapsulates the metadata for basic sample series represented by a line chart */ interface BasicPerfSampleSeriesResponse { perfMetricType: string; perfUnit: string; sampleSeriesLabel: string; } /** * A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. */ interface DurationResponse { /** * Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive. */ nanos: number; /** * Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years */ seconds: string; } /** * Details for an outcome with a FAILURE outcome summary. */ interface FailureDetailResponse { /** * If the failure was severe because the system (app) under test crashed. */ crashed: boolean; /** * If the device ran out of memory during a test, causing the test to crash. */ deviceOutOfMemory: boolean; /** * If the Roboscript failed to complete successfully, e.g., because a Roboscript action or assertion failed or a Roboscript action could not be matched during the entire crawl. */ failedRoboscript: boolean; /** * If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform. */ notInstalled: boolean; /** * If a native process (including any other than the app) crashed. */ otherNativeCrash: boolean; /** * If the test overran some time limit, and that is why it failed. */ timedOut: boolean; /** * If the robo was unable to crawl the app; perhaps because the app did not start. */ unableToCrawl: boolean; } /** * A reference to a file. */ interface FileReferenceResponse { /** * The URI of a file stored in Google Cloud Storage. For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000 An INVALID_ARGUMENT error will be returned if the URI format is not supported. - In response: always set - In create/update request: always set */ fileUri: string; } /** * Details for an outcome with an INCONCLUSIVE outcome summary. */ interface InconclusiveDetailResponse { /** * If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running. */ abortedByUser: boolean; /** * If results are being provided to the user in certain cases of infrastructure failures */ hasErrorLogs: boolean; /** * If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed. For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail. */ infrastructureFailure: boolean; } /** * Step Id and outcome of each individual step that was run as a group with other steps with the same configuration. */ interface IndividualOutcomeResponse { /** * Unique int given to each step. Ranges from 0(inclusive) to total number of steps(exclusive). The primary step is 0. */ multistepNumber: number; outcomeSummary: string; /** * How long it took for this step to run. */ runDuration: outputs.toolresults.v1beta3.DurationResponse; stepId: string; } /** * iOS app information */ interface IosAppInfoResponse { /** * The name of the app. Required */ name: string; } /** * A Robo test for an iOS application. */ interface IosRoboTestResponse { } /** * A game loop test of an iOS application. */ interface IosTestLoopResponse { /** * Bundle ID of the app. */ bundleId: string; } /** * A iOS mobile test specification */ interface IosTestResponse { /** * Information about the application under test. */ iosAppInfo: outputs.toolresults.v1beta3.IosAppInfoResponse; /** * An iOS Robo test. */ iosRoboTest: outputs.toolresults.v1beta3.IosRoboTestResponse; /** * An iOS test loop. */ iosTestLoop: outputs.toolresults.v1beta3.IosTestLoopResponse; /** * An iOS XCTest. */ iosXcTest: outputs.toolresults.v1beta3.IosXcTestResponse; /** * Max time a test is allowed to run before it is automatically cancelled. */ testTimeout: outputs.toolresults.v1beta3.DurationResponse; } /** * A test of an iOS application that uses the XCTest framework. */ interface IosXcTestResponse { /** * Bundle ID of the app. */ bundleId: string; /** * Xcode version that the test was run with. */ xcodeVersion: string; } /** * One dimension of the matrix of different runs of a step. */ interface MatrixDimensionDefinitionResponse { } /** * Details when multiple steps are run with the same configuration as a group. */ interface MultiStepResponse { /** * Unique int given to each step. Ranges from 0(inclusive) to total number of steps(exclusive). The primary step is 0. */ multistepNumber: number; /** * Present if it is a primary (original) step. */ primaryStep: outputs.toolresults.v1beta3.PrimaryStepResponse; /** * Step Id of the primary (original) step, which might be this step. */ primaryStepId: string; } /** * Interprets a result so that humans and machines can act on it. */ interface OutcomeResponse { /** * More information about a FAILURE outcome. Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE. Optional */ failureDetail: outputs.toolresults.v1beta3.FailureDetailResponse; /** * More information about an INCONCLUSIVE outcome. Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE. Optional */ inconclusiveDetail: outputs.toolresults.v1beta3.InconclusiveDetailResponse; /** * More information about a SKIPPED outcome. Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED. Optional */ skippedDetail: outputs.toolresults.v1beta3.SkippedDetailResponse; /** * More information about a SUCCESS outcome. Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS. Optional */ successDetail: outputs.toolresults.v1beta3.SuccessDetailResponse; /** * The simplest way to interpret a result. Required */ summary: string; } /** * Stores rollup test status of multiple steps that were run as a group and outcome of each individual step. */ interface PrimaryStepResponse { /** * Step Id and outcome of each individual step. */ individualOutcome: outputs.toolresults.v1beta3.IndividualOutcomeResponse[]; /** * Rollup test status of multiple steps that were run with the same configuration as a group. */ rollUp: string; } /** * Details for an outcome with a SKIPPED outcome summary. */ interface SkippedDetailResponse { /** * If the App doesn't support the specific API level. */ incompatibleAppVersion: boolean; /** * If the App doesn't run on the specific architecture, for example, x86. */ incompatibleArchitecture: boolean; /** * If the requested OS version doesn't run on the specific device model. */ incompatibleDevice: boolean; } /** * The details about how to run the execution. */ interface SpecificationResponse { /** * An Android mobile test execution specification. */ androidTest: outputs.toolresults.v1beta3.AndroidTestResponse; /** * An iOS mobile test execution specification. */ iosTest: outputs.toolresults.v1beta3.IosTestResponse; } /** * A stacktrace. */ interface StackTraceResponse { /** * The stack trace message. Required */ exception: string; } interface StepDimensionValueEntryResponse { key: string; value: string; } interface StepLabelsEntryResponse { key: string; value: string; } /** * Details for an outcome with a SUCCESS outcome summary. LINT.IfChange */ interface SuccessDetailResponse { /** * If a native process other than the app crashed. */ otherNativeCrash: boolean; } /** * A reference to a test case. Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name. */ interface TestCaseReferenceResponse { /** * The name of the class. */ className: string; /** * The name of the test case. Required. */ name: string; /** * The name of the test suite to which this test case belongs. */ testSuiteName: string; } /** * A step that represents running tests. It accepts ant-junit xml files which will be parsed into structured test results by the service. Xml file paths are updated in order to append more files, however they can't be deleted. Users can also add test results manually by using the test_result field. */ interface TestExecutionStepResponse { /** * Issues observed during the test execution. For example, if the mobile app under test crashed during the test, the error message and the stack trace content can be recorded here to assist debugging. - In response: present if set by create or update - In create/update request: optional */ testIssues: outputs.toolresults.v1beta3.TestIssueResponse[]; /** * List of test suite overview contents. This could be parsed from xUnit XML log by server, or uploaded directly by user. This references should only be called when test suites are fully parsed or uploaded. The maximum allowed number of test suite overviews per step is 1000. - In response: always set - In create request: optional - In update request: never (use publishXunitXmlFiles custom method instead) */ testSuiteOverviews: outputs.toolresults.v1beta3.TestSuiteOverviewResponse[]; /** * The timing break down of the test execution. - In response: present if set by create or update - In create/update request: optional */ testTiming: outputs.toolresults.v1beta3.TestTimingResponse; /** * Represents the execution of the test runner. The exit code of this tool will be used to determine if the test passed. - In response: always set - In create/update request: optional */ toolExecution: outputs.toolresults.v1beta3.ToolExecutionResponse; } /** * An issue detected occurring during a test execution. */ interface TestIssueResponse { /** * Category of issue. Required. */ category: string; /** * A brief human-readable message describing the issue. Required. */ errorMessage: string; /** * Severity of issue. Required. */ severity: string; /** * Deprecated in favor of stack trace fields inside specific warnings. * * @deprecated Deprecated in favor of stack trace fields inside specific warnings. */ stackTrace: outputs.toolresults.v1beta3.StackTraceResponse; /** * Type of issue. Required. */ type: string; /** * Warning message with additional details of the issue. Should always be a message from com.google.devtools.toolresults.v1.warnings */ warning: outputs.toolresults.v1beta3.AnyResponse; } /** * A summary of a test suite result either parsed from XML or uploaded directly by a user. Note: the API related comments are for StepService only. This message is also being used in ExecutionService in a read only mode for the corresponding step. */ interface TestSuiteOverviewResponse { /** * Elapsed time of test suite. */ elapsedTime: outputs.toolresults.v1beta3.DurationResponse; /** * Number of test cases in error, typically set by the service by parsing the xml_source. - In create/response: always set - In update request: never */ errorCount: number; /** * Number of failed test cases, typically set by the service by parsing the xml_source. May also be set by the user. - In create/response: always set - In update request: never */ failureCount: number; /** * Number of flaky test cases, set by the service by rolling up flaky test attempts. Present only for rollup test suite overview at environment level. A step cannot have flaky test cases. */ flakyCount: number; /** * The name of the test suite. - In create/response: always set - In update request: never */ name: string; /** * Number of test cases not run, typically set by the service by parsing the xml_source. - In create/response: always set - In update request: never */ skippedCount: number; /** * Number of test cases, typically set by the service by parsing the xml_source. - In create/response: always set - In update request: never */ totalCount: number; /** * If this test suite was parsed from XML, this is the URI where the original XML file is stored. Note: Multiple test suites can share the same xml_source Returns INVALID_ARGUMENT if the uri format is not supported. - In create/response: optional - In update request: never */ xmlSource: outputs.toolresults.v1beta3.FileReferenceResponse; } /** * Testing timing break down to know phases. */ interface TestTimingResponse { /** * How long it took to run the test process. - In response: present if previously set. - In create/update request: optional */ testProcessDuration: outputs.toolresults.v1beta3.DurationResponse; } /** * A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one. All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a [24-hour linear smear](https://developers.google.com/time/smear). The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. */ interface TimestampResponse { /** * Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. */ nanos: number; /** * Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive. */ seconds: string; } /** * An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. */ interface ToolExecutionResponse { /** * The full tokenized command line including the program name (equivalent to argv in a C program). - In response: present if set by create request - In create request: optional - In update request: never set */ commandLineArguments: string[]; /** * Tool execution exit code. This field will be set once the tool has exited. - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set. */ exitCode: outputs.toolresults.v1beta3.ToolExitCodeResponse; /** * References to any plain text logs output the tool execution. This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running. The maximum allowed number of tool logs per step is 1000. - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list */ toolLogs: outputs.toolresults.v1beta3.FileReferenceResponse[]; /** * References to opaque files of any format output by the tool execution. The maximum allowed number of tool outputs per step is 1000. - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list */ toolOutputs: outputs.toolresults.v1beta3.ToolOutputReferenceResponse[]; } /** * Generic tool step to be used for binaries we do not explicitly support. For example: running cp to copy artifacts from one location to another. */ interface ToolExecutionStepResponse { /** * A Tool execution. - In response: present if set by create/update request - In create/update request: optional */ toolExecution: outputs.toolresults.v1beta3.ToolExecutionResponse; } /** * Exit code from a tool execution. */ interface ToolExitCodeResponse { /** * Tool execution exit code. A value of 0 means that the execution was successful. - In response: always set - In create/update request: always set */ number: number; } /** * A reference to a ToolExecution output file. */ interface ToolOutputReferenceResponse { /** * The creation time of the file. - In response: present if set by create/update request - In create/update request: optional */ creationTime: outputs.toolresults.v1beta3.TimestampResponse; /** * A FileReference to an output file. - In response: always set - In create/update request: always set */ output: outputs.toolresults.v1beta3.FileReferenceResponse; /** * The test case to which this output file belongs. - In response: present if set by create/update request - In create/update request: optional */ testCase: outputs.toolresults.v1beta3.TestCaseReferenceResponse; } } } export declare namespace tpu { namespace v1 { /** * A network endpoint over which a TPU worker can be reached. */ interface NetworkEndpointResponse { /** * The IP address of this network endpoint. */ ipAddress: string; /** * The port of this network endpoint. */ port: number; } /** * Sets the scheduling options for this node. */ interface SchedulingConfigResponse { /** * Defines whether the node is preemptible. */ preemptible: boolean; /** * Whether the node is created under a reservation. */ reserved: boolean; } /** * A Symptom instance. */ interface SymptomResponse { /** * Timestamp when the Symptom is created. */ createTime: string; /** * Detailed information of the current Symptom. */ details: string; /** * Type of the Symptom. */ symptomType: string; /** * A string used to uniquely distinguish a worker within a TPU node. */ workerId: string; } } namespace v1alpha1 { /** * A network endpoint over which a TPU worker can be reached. */ interface NetworkEndpointResponse { /** * The IP address of this network endpoint. */ ipAddress: string; /** * The port of this network endpoint. */ port: number; } /** * Sets the scheduling options for this node. */ interface SchedulingConfigResponse { /** * Defines whether the node is preemptible. */ preemptible: boolean; /** * Whether the node is created under a reservation. */ reserved: boolean; } /** * A Symptom instance. */ interface SymptomResponse { /** * Timestamp when the Symptom is created. */ createTime: string; /** * Detailed information of the current Symptom. */ details: string; /** * Type of the Symptom. */ symptomType: string; /** * A string used to uniquely distinguish a worker within a TPU node. */ workerId: string; } } namespace v2 { /** * A TPU accelerator configuration. */ interface AcceleratorConfigResponse { /** * Topology of TPU in chips. */ topology: string; /** * Type of TPU. */ type: string; } /** * An access config attached to the TPU worker. */ interface AccessConfigResponse { /** * An external IP address associated with the TPU worker. */ externalIp: string; } /** * A node-attached disk resource. Next ID: 8; */ interface AttachedDiskResponse { /** * The mode in which to attach this disk. If not specified, the default is READ_WRITE mode. Only applicable to data_disks. */ mode: string; /** * Specifies the full path to an existing disk. For example: "projects/my-project/zones/us-central1-c/disks/my-disk". */ sourceDisk: string; } /** * Network related configurations. */ interface NetworkConfigResponse { /** * Allows the TPU node to send and receive packets with non-matching destination or source IPs. This is required if you plan to use the TPU workers to forward routes. */ canIpForward: boolean; /** * Indicates that external IP addresses would be associated with the TPU workers. If set to false, the specified subnetwork or network should have Private Google Access enabled. */ enableExternalIps: boolean; /** * The name of the network for the TPU node. It must be a preexisting Google Compute Engine network. If none is provided, "default" will be used. */ network: string; /** * The name of the subnetwork for the TPU node. It must be a preexisting Google Compute Engine subnetwork. If none is provided, "default" will be used. */ subnetwork: string; } /** * A network endpoint over which a TPU worker can be reached. */ interface NetworkEndpointResponse { /** * The access config for the TPU worker. */ accessConfig: outputs.tpu.v2.AccessConfigResponse; /** * The internal IP address of this network endpoint. */ ipAddress: string; /** * The port of this network endpoint. */ port: number; } /** * Sets the scheduling options for this node. */ interface SchedulingConfigResponse { /** * Defines whether the node is preemptible. */ preemptible: boolean; /** * Whether the node is created under a reservation. */ reserved: boolean; } /** * A service account. */ interface ServiceAccountResponse { /** * Email address of the service account. If empty, default Compute service account will be used. */ email: string; /** * The list of scopes to be made available for this service account. If empty, access to all Cloud APIs will be allowed. */ scope: string[]; } /** * A set of Shielded Instance options. */ interface ShieldedInstanceConfigResponse { /** * Defines whether the instance has Secure Boot enabled. */ enableSecureBoot: boolean; } /** * A Symptom instance. */ interface SymptomResponse { /** * Timestamp when the Symptom is created. */ createTime: string; /** * Detailed information of the current Symptom. */ details: string; /** * Type of the Symptom. */ symptomType: string; /** * A string used to uniquely distinguish a worker within a TPU node. */ workerId: string; } } namespace v2alpha1 { /** * A TPU accelerator configuration. */ interface AcceleratorConfigResponse { /** * Topology of TPU in chips. */ topology: string; /** * Type of TPU. */ type: string; } /** * Further data for the accepted state. */ interface AcceptedDataResponse { } /** * An access config attached to the TPU worker. */ interface AccessConfigResponse { /** * An external IP address associated with the TPU worker. */ externalIp: string; } /** * Further data for the active state. */ interface ActiveDataResponse { } /** * A node-attached disk resource. Next ID: 8; */ interface AttachedDiskResponse { /** * The mode in which to attach this disk. If not specified, the default is READ_WRITE mode. Only applicable to data_disks. */ mode: string; /** * Specifies the full path to an existing disk. For example: "projects/my-project/zones/us-central1-c/disks/my-disk". */ sourceDisk: string; } /** * BestEffort tier definition. */ interface BestEffortResponse { } /** * Boot disk configurations. */ interface BootDiskConfigResponse { /** * Optional. Customer encryption key for boot disk. */ customerEncryptionKey: outputs.tpu.v2alpha1.CustomerEncryptionKeyResponse; /** * Optional. Whether the boot disk will be created with confidential compute mode. */ enableConfidentialCompute: boolean; } /** * Further data for the creating state. */ interface CreatingDataResponse { } /** * Customer's encryption key. */ interface CustomerEncryptionKeyResponse { /** * The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 */ kmsKeyName: string; } /** * Further data for the deleting state. */ interface DeletingDataResponse { } /** * Further data for the failed state. */ interface FailedDataResponse { /** * The error that caused the queued resource to enter the FAILED state. */ error: outputs.tpu.v2alpha1.StatusResponse; } /** * Guaranteed tier definition. */ interface GuaranteedResponse { /** * Optional. Defines the minimum duration of the guarantee. If specified, the requested resources will only be provisioned if they can be allocated for at least the given duration. */ minDuration: string; /** * Optional. Specifies the request should be scheduled on reserved capacity. */ reserved: boolean; } /** * Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time. */ interface IntervalResponse { /** * Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end. */ endTime: string; /** * Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start. */ startTime: string; } /** * Parameters to specify for multi-node QueuedResource requests. This field must be populated in case of multi-node requests instead of node_id. It's an error to specify both node_id and multi_node_params. */ interface MultiNodeParamsResponse { /** * Number of nodes with this spec. The system will attempt to provison "node_count" nodes as part of the request. This needs to be > 1. */ nodeCount: number; /** * Prefix of node_ids in case of multi-node request Should follow the `^[A-Za-z0-9_.~+%-]+$` regex format. If node_count = 3 and node_id_prefix = "np", node ids of nodes created will be "np-0", "np-1", "np-2". If this field is not provided we use queued_resource_id as the node_id_prefix. */ nodeIdPrefix: string; } /** * Network related configurations. */ interface NetworkConfigResponse { /** * Allows the TPU node to send and receive packets with non-matching destination or source IPs. This is required if you plan to use the TPU workers to forward routes. */ canIpForward: boolean; /** * Indicates that external IP addresses would be associated with the TPU workers. If set to false, the specified subnetwork or network should have Private Google Access enabled. */ enableExternalIps: boolean; /** * The name of the network for the TPU node. It must be a preexisting Google Compute Engine network. If none is provided, "default" will be used. */ network: string; /** * The name of the subnetwork for the TPU node. It must be a preexisting Google Compute Engine subnetwork. If none is provided, "default" will be used. */ subnetwork: string; } /** * A network endpoint over which a TPU worker can be reached. */ interface NetworkEndpointResponse { /** * The access config for the TPU worker. */ accessConfig: outputs.tpu.v2alpha1.AccessConfigResponse; /** * The internal IP address of this network endpoint. */ ipAddress: string; /** * The port of this network endpoint. */ port: number; } /** * A TPU instance. */ interface NodeResponse { /** * The AccleratorConfig for the TPU Node. */ acceleratorConfig: outputs.tpu.v2alpha1.AcceleratorConfigResponse; /** * The type of hardware accelerators associated with this node. */ acceleratorType: string; /** * The API version that created this Node. */ apiVersion: string; /** * Optional. Whether Autocheckpoint is enabled. */ autocheckpointEnabled: boolean; /** * Optional. Boot disk configuration. */ bootDiskConfig: outputs.tpu.v2alpha1.BootDiskConfigResponse; /** * The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user's provided network, or the provided network is peered with another network that is using that CIDR block. */ cidrBlock: string; /** * The time when the node was created. */ createTime: string; /** * The additional data disks for the Node. */ dataDisks: outputs.tpu.v2alpha1.AttachedDiskResponse[]; /** * The user-supplied description of the TPU. Maximum of 512 characters. */ description: string; /** * The health status of the TPU node. */ health: string; /** * If this field is populated, it contains a description of why the TPU Node is unhealthy. */ healthDescription: string; /** * Resource labels to represent user-provided metadata. */ labels: { [key: string]: string; }; /** * Custom metadata to apply to the TPU Node. Can set startup-script and shutdown-script */ metadata: { [key: string]: string; }; /** * Whether the Node belongs to a Multislice group. */ multisliceNode: boolean; /** * Immutable. The name of the TPU. */ name: string; /** * Network configurations for the TPU node. */ networkConfig: outputs.tpu.v2alpha1.NetworkConfigResponse; /** * The network endpoints where TPU workers can be accessed and sent work. It is recommended that runtime clients of the node reach out to the 0th entry in this map first. */ networkEndpoints: outputs.tpu.v2alpha1.NetworkEndpointResponse[]; /** * The qualified name of the QueuedResource that requested this Node. */ queuedResource: string; /** * The runtime version running in the Node. */ runtimeVersion: string; /** * The scheduling options for this node. */ schedulingConfig: outputs.tpu.v2alpha1.SchedulingConfigResponse; /** * The Google Cloud Platform Service Account to be used by the TPU node VMs. If None is specified, the default compute service account will be used. */ serviceAccount: outputs.tpu.v2alpha1.ServiceAccountResponse; /** * Shielded Instance options. */ shieldedInstanceConfig: outputs.tpu.v2alpha1.ShieldedInstanceConfigResponse; /** * The current state for the TPU Node. */ state: string; /** * The Symptoms that have occurred to the TPU Node. */ symptoms: outputs.tpu.v2alpha1.SymptomResponse[]; /** * Tags to apply to the TPU Node. Tags are used to identify valid sources or targets for network firewalls. */ tags: string[]; } /** * Details of the TPU node(s) being requested. Users can request either a single node or multiple nodes. NodeSpec provides the specification for node(s) to be created. */ interface NodeSpecResponse { /** * Optional. Fields to specify in case of multi-node request. */ multiNodeParams: outputs.tpu.v2alpha1.MultiNodeParamsResponse; /** * The node. */ node: outputs.tpu.v2alpha1.NodeResponse; /** * The unqualified resource name. Should follow the `^[A-Za-z0-9_.~+%-]+$` regex format. This is only specified when requesting a single node. In case of multi-node requests, multi_node_params must be populated instead. It's an error to specify both node_id and multi_node_params. */ nodeId: string; /** * The parent resource name. */ parent: string; } /** * Further data for the provisioning state. */ interface ProvisioningDataResponse { } /** * QueuedResourceState defines the details of the QueuedResource request. */ interface QueuedResourceStateResponse { /** * Further data for the accepted state. */ acceptedData: outputs.tpu.v2alpha1.AcceptedDataResponse; /** * Further data for the active state. */ activeData: outputs.tpu.v2alpha1.ActiveDataResponse; /** * Further data for the creating state. */ creatingData: outputs.tpu.v2alpha1.CreatingDataResponse; /** * Further data for the deleting state. */ deletingData: outputs.tpu.v2alpha1.DeletingDataResponse; /** * Further data for the failed state. */ failedData: outputs.tpu.v2alpha1.FailedDataResponse; /** * Further data for the provisioning state. */ provisioningData: outputs.tpu.v2alpha1.ProvisioningDataResponse; /** * State of the QueuedResource request. */ state: string; /** * The initiator of the QueuedResources's current state. */ stateInitiator: string; /** * Further data for the suspended state. */ suspendedData: outputs.tpu.v2alpha1.SuspendedDataResponse; /** * Further data for the suspending state. */ suspendingData: outputs.tpu.v2alpha1.SuspendingDataResponse; } /** * Defines the policy of the QueuedRequest. */ interface QueueingPolicyResponse { /** * A relative time after which resources may be created. */ validAfterDuration: string; /** * An absolute time at which resources may be created. */ validAfterTime: string; /** * An absolute time interval within which resources may be created. */ validInterval: outputs.tpu.v2alpha1.IntervalResponse; /** * A relative time after which resources should not be created. If the request cannot be fulfilled by this time the request will be failed. */ validUntilDuration: string; /** * An absolute time after which resources should not be created. If the request cannot be fulfilled by this time the request will be failed. */ validUntilTime: string; } /** * Sets the scheduling options for this node. */ interface SchedulingConfigResponse { /** * Defines whether the node is preemptible. */ preemptible: boolean; /** * Whether the node is created under a reservation. */ reserved: boolean; } /** * A service account. */ interface ServiceAccountResponse { /** * Email address of the service account. If empty, default Compute service account will be used. */ email: string; /** * The list of scopes to be made available for this service account. If empty, access to all Cloud APIs will be allowed. */ scope: string[]; } /** * A set of Shielded Instance options. */ interface ShieldedInstanceConfigResponse { /** * Defines whether the instance has Secure Boot enabled. */ enableSecureBoot: boolean; } /** * Spot tier definition. */ interface SpotResponse { } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Further data for the suspended state. */ interface SuspendedDataResponse { } /** * Further data for the suspending state. */ interface SuspendingDataResponse { } /** * A Symptom instance. */ interface SymptomResponse { /** * Timestamp when the Symptom is created. */ createTime: string; /** * Detailed information of the current Symptom. */ details: string; /** * Type of the Symptom. */ symptomType: string; /** * A string used to uniquely distinguish a worker within a TPU node. */ workerId: string; } /** * Details of the TPU resource(s) being requested. */ interface TpuResponse { /** * The TPU node(s) being requested. */ nodeSpec: outputs.tpu.v2alpha1.NodeSpecResponse[]; } } } export declare namespace transcoder { namespace v1 { /** * Ad break. */ interface AdBreakResponse { /** * Start time in seconds for the ad break, relative to the output file timeline. The default is `0s`. */ startTimeOffset: string; } /** * Configuration for AES-128 encryption. */ interface Aes128EncryptionResponse { } /** * End previous overlay animation from the video. Without `AnimationEnd`, the overlay object will keep the state of previous animation until the end of the video. */ interface AnimationEndResponse { /** * The time to end overlay object, in seconds. Default: 0 */ startTimeOffset: string; } /** * Display overlay object with fade animation. */ interface AnimationFadeResponse { /** * The time to end the fade animation, in seconds. Default: `start_time_offset` + 1s */ endTimeOffset: string; /** * Type of fade animation: `FADE_IN` or `FADE_OUT`. */ fadeType: string; /** * The time to start the fade animation, in seconds. Default: 0 */ startTimeOffset: string; /** * Normalized coordinates based on output video resolution. Valid values: `0.0`–`1.0`. `xy` is the upper-left coordinate of the overlay object. For example, use the x and y coordinates {0,0} to position the top-left corner of the overlay animation in the top-left corner of the output video. */ xy: outputs.transcoder.v1.NormalizedCoordinateResponse; } /** * Animation types. */ interface AnimationResponse { /** * End previous animation. */ animationEnd: outputs.transcoder.v1.AnimationEndResponse; /** * Display overlay object with fade animation. */ animationFade: outputs.transcoder.v1.AnimationFadeResponse; /** * Display static overlay object. */ animationStatic: outputs.transcoder.v1.AnimationStaticResponse; } /** * Display static overlay object. */ interface AnimationStaticResponse { /** * The time to start displaying the overlay object, in seconds. Default: 0 */ startTimeOffset: string; /** * Normalized coordinates based on output video resolution. Valid values: `0.0`–`1.0`. `xy` is the upper-left coordinate of the overlay object. For example, use the x and y coordinates {0,0} to position the top-left corner of the overlay animation in the top-left corner of the output video. */ xy: outputs.transcoder.v1.NormalizedCoordinateResponse; } /** * The mapping for the JobConfig.edit_list atoms with audio EditAtom.inputs. */ interface AudioMappingResponse { /** * The EditAtom.key that references the atom with audio inputs in the JobConfig.edit_list. */ atomKey: string; /** * Audio volume control in dB. Negative values decrease volume, positive values increase. The default is 0. */ gainDb: number; /** * The zero-based index of the channel in the input audio stream. */ inputChannel: number; /** * The Input.key that identifies the input file. */ inputKey: string; /** * The zero-based index of the track in the input file. */ inputTrack: number; /** * The zero-based index of the channel in the output audio stream. */ outputChannel: number; } /** * Audio preprocessing configuration. */ interface AudioResponse { /** * Enable boosting high frequency components. The default is `false`. **Note:** This field is not supported. */ highBoost: boolean; /** * Enable boosting low frequency components. The default is `false`. **Note:** This field is not supported. */ lowBoost: boolean; /** * Specify audio loudness normalization in loudness units relative to full scale (LUFS). Enter a value between -24 and 0 (the default), where: * -24 is the Advanced Television Systems Committee (ATSC A/85) standard * -23 is the EU R128 broadcast standard * -19 is the prior standard for online mono audio * -18 is the ReplayGain standard * -16 is the prior standard for stereo audio * -14 is the new online audio standard recommended by Spotify, as well as Amazon Echo * 0 disables normalization */ lufs: number; } /** * Audio stream resource. */ interface AudioStreamResponse { /** * Audio bitrate in bits per second. Must be between 1 and 10,000,000. */ bitrateBps: number; /** * Number of audio channels. Must be between 1 and 6. The default is 2. */ channelCount: number; /** * A list of channel names specifying layout of the audio channels. This only affects the metadata embedded in the container headers, if supported by the specified format. The default is `["fl", "fr"]`. Supported channel names: - `fl` - Front left channel - `fr` - Front right channel - `sl` - Side left channel - `sr` - Side right channel - `fc` - Front center channel - `lfe` - Low frequency */ channelLayout: string[]; /** * The codec for this audio stream. The default is `aac`. Supported audio codecs: - `aac` - `aac-he` - `aac-he-v2` - `mp3` - `ac3` - `eac3` */ codec: string; /** * The name for this particular audio stream that will be added to the HLS/DASH manifest. Not supported in MP4 files. */ displayName: string; /** * The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Not supported in MP4 files. */ languageCode: string; /** * The mapping for the JobConfig.edit_list atoms with audio EditAtom.inputs. */ mapping: outputs.transcoder.v1.AudioMappingResponse[]; /** * The audio sample rate in Hertz. The default is 48000 Hertz. */ sampleRateHertz: number; } /** * Bob Weaver Deinterlacing Filter Configuration. */ interface BwdifConfigResponse { /** * Deinterlace all frames rather than just the frames identified as interlaced. The default is `false`. */ deinterlaceAllFrames: boolean; /** * Specifies the deinterlacing mode to adopt. The default is `send_frame`. Supported values: - `send_frame`: Output one frame for each frame - `send_field`: Output one frame for each field */ mode: string; /** * The picture field parity assumed for the input interlaced video. The default is `auto`. Supported values: - `tff`: Assume the top field is first - `bff`: Assume the bottom field is first - `auto`: Enable automatic detection of field parity */ parity: string; } /** * Clearkey configuration. */ interface ClearkeyResponse { } /** * Color preprocessing configuration. **Note:** This configuration is not supported. */ interface ColorResponse { /** * Control brightness of the video. Enter a value between -1 and 1, where -1 is minimum brightness and 1 is maximum brightness. 0 is no change. The default is 0. */ brightness: number; /** * Control black and white contrast of the video. Enter a value between -1 and 1, where -1 is minimum contrast and 1 is maximum contrast. 0 is no change. The default is 0. */ contrast: number; /** * Control color saturation of the video. Enter a value between -1 and 1, where -1 is fully desaturated and 1 is maximum saturation. 0 is no change. The default is 0. */ saturation: number; } /** * Video cropping configuration for the input video. The cropped input video is scaled to match the output resolution. */ interface CropResponse { /** * The number of pixels to crop from the bottom. The default is 0. */ bottomPixels: number; /** * The number of pixels to crop from the left. The default is 0. */ leftPixels: number; /** * The number of pixels to crop from the right. The default is 0. */ rightPixels: number; /** * The number of pixels to crop from the top. The default is 0. */ topPixels: number; } /** * `DASH` manifest configuration. */ interface DashConfigResponse { /** * The segment reference scheme for a `DASH` manifest. The default is `SEGMENT_LIST`. */ segmentReferenceScheme: string; } /** * Deblock preprocessing configuration. **Note:** This configuration is not supported. */ interface DeblockResponse { /** * Enable deblocker. The default is `false`. */ enabled: boolean; /** * Set strength of the deblocker. Enter a value between 0 and 1. The higher the value, the stronger the block removal. 0 is no deblocking. The default is 0. */ strength: number; } /** * Deinterlace configuration for input video. */ interface DeinterlaceResponse { /** * Specifies the Bob Weaver Deinterlacing Filter Configuration. */ bwdif: outputs.transcoder.v1.BwdifConfigResponse; /** * Specifies the Yet Another Deinterlacing Filter Configuration. */ yadif: outputs.transcoder.v1.YadifConfigResponse; } /** * Denoise preprocessing configuration. **Note:** This configuration is not supported. */ interface DenoiseResponse { /** * Set strength of the denoise. Enter a value between 0 and 1. The higher the value, the smoother the image. 0 is no denoising. The default is 0. */ strength: number; /** * Set the denoiser mode. The default is `standard`. Supported denoiser modes: - `standard` - `grain` */ tune: string; } /** * Defines configuration for DRM systems in use. */ interface DrmSystemsResponse { /** * Clearkey configuration. */ clearkey: outputs.transcoder.v1.ClearkeyResponse; /** * Fairplay configuration. */ fairplay: outputs.transcoder.v1.FairplayResponse; /** * Playready configuration. */ playready: outputs.transcoder.v1.PlayreadyResponse; /** * Widevine configuration. */ widevine: outputs.transcoder.v1.WidevineResponse; } /** * Edit atom. */ interface EditAtomResponse { /** * End time in seconds for the atom, relative to the input file timeline. When `end_time_offset` is not specified, the `inputs` are used until the end of the atom. */ endTimeOffset: string; /** * List of Input.key values identifying files that should be used in this atom. The listed `inputs` must have the same timeline. */ inputs: string[]; /** * A unique key for this atom. Must be specified when using advanced mapping. */ key: string; /** * Start time in seconds for the atom, relative to the input file timeline. The default is `0s`. */ startTimeOffset: string; } /** * Encoding of an input file such as an audio, video, or text track. Elementary streams must be packaged before mapping and sharing between different output formats. */ interface ElementaryStreamResponse { /** * Encoding of an audio stream. */ audioStream: outputs.transcoder.v1.AudioStreamResponse; /** * A unique key for this elementary stream. */ key: string; /** * Encoding of a text stream. For example, closed captions or subtitles. */ textStream: outputs.transcoder.v1.TextStreamResponse; /** * Encoding of a video stream. */ videoStream: outputs.transcoder.v1.VideoStreamResponse; } /** * Encryption settings. */ interface EncryptionResponse { /** * Configuration for AES-128 encryption. */ aes128: outputs.transcoder.v1.Aes128EncryptionResponse; /** * DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled. */ drmSystems: outputs.transcoder.v1.DrmSystemsResponse; /** * Configuration for MPEG Common Encryption (MPEG-CENC). */ mpegCenc: outputs.transcoder.v1.MpegCommonEncryptionResponse; /** * Configuration for SAMPLE-AES encryption. */ sampleAes: outputs.transcoder.v1.SampleAesEncryptionResponse; /** * Keys are stored in Google Secret Manager. */ secretManagerKeySource: outputs.transcoder.v1.SecretManagerSourceResponse; } /** * Fairplay configuration. */ interface FairplayResponse { } /** * `fmp4` container configuration. */ interface Fmp4ConfigResponse { /** * Optional. Specify the codec tag string that will be used in the media bitstream. When not specified, the codec appropriate value is used. Supported H265 codec tags: - `hvc1` (default) - `hev1` */ codecTag: string; } /** * H264 codec settings. */ interface H264CodecSettingsResponse { /** * Specifies whether an open Group of Pictures (GOP) structure should be allowed or not. The default is `false`. */ allowOpenGop: boolean; /** * Specify the intensity of the adaptive quantizer (AQ). Must be between 0 and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A higher value equals a lower bitrate but smoother image. The default is 0. */ aqStrength: number; /** * The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than H264CodecSettings.gop_frame_count if set. The default is 0. */ bFrameCount: number; /** * Allow B-pyramid for reference frame selection. This may not be supported on all decoders. The default is `false`. */ bPyramid: boolean; /** * The video bitrate in bits per second. The minimum value is 1,000. The maximum value is 800,000,000. */ bitrateBps: number; /** * Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21. */ crfLevel: number; /** * Use two-pass encoding strategy to achieve better video quality. H264CodecSettings.rate_control_mode must be `vbr`. The default is `false`. */ enableTwoPass: boolean; /** * The entropy coder to use. The default is `cabac`. Supported entropy coders: - `cavlc` - `cabac` */ entropyCoder: string; /** * The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculating frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information. */ frameRate: number; /** * Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`. */ gopDuration: string; /** * Select the GOP size based on the specified frame count. Must be greater than zero. */ gopFrameCount: number; /** * The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output. */ heightPixels: number; /** * Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format */ pixelFormat: string; /** * Enforces the specified codec preset. The default is `veryfast`. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Preset). Note that certain values for this field may cause the transcoder to override other fields you set in the `H264CodecSettings` message. */ preset: string; /** * Enforces the specified codec profile. The following profiles are supported: * `baseline` * `main` * `high` (default) The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune). Note that certain values for this field may cause the transcoder to override other fields you set in the `H264CodecSettings` message. */ profile: string; /** * Specify the mode. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate - `crf` - constant rate factor */ rateControlMode: string; /** * Enforces the specified codec tune. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune). Note that certain values for this field may cause the transcoder to override other fields you set in the `H264CodecSettings` message. */ tune: string; /** * Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of H264CodecSettings.vbv_size_bits. */ vbvFullnessBits: number; /** * Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to H264CodecSettings.bitrate_bps. */ vbvSizeBits: number; /** * The width of the video in pixels. Must be an even integer. When not specified, the width is adjusted to match the specified height and input aspect ratio. If both are omitted, the input width is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output. */ widthPixels: number; } /** * H265 codec settings. */ interface H265CodecSettingsResponse { /** * Specifies whether an open Group of Pictures (GOP) structure should be allowed or not. The default is `false`. */ allowOpenGop: boolean; /** * Specify the intensity of the adaptive quantizer (AQ). Must be between 0 and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A higher value equals a lower bitrate but smoother image. The default is 0. */ aqStrength: number; /** * The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than H265CodecSettings.gop_frame_count if set. The default is 0. */ bFrameCount: number; /** * Allow B-pyramid for reference frame selection. This may not be supported on all decoders. The default is `false`. */ bPyramid: boolean; /** * The video bitrate in bits per second. The minimum value is 1,000. The maximum value is 800,000,000. */ bitrateBps: number; /** * Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21. */ crfLevel: number; /** * Use two-pass encoding strategy to achieve better video quality. H265CodecSettings.rate_control_mode must be `vbr`. The default is `false`. */ enableTwoPass: boolean; /** * The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculating frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information. */ frameRate: number; /** * Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`. */ gopDuration: string; /** * Select the GOP size based on the specified frame count. Must be greater than zero. */ gopFrameCount: number; /** * The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output. */ heightPixels: number; /** * Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format */ pixelFormat: string; /** * Enforces the specified codec preset. The default is `veryfast`. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.265). Note that certain values for this field may cause the transcoder to override other fields you set in the `H265CodecSettings` message. */ preset: string; /** * Enforces the specified codec profile. The following profiles are supported: * 8-bit profiles * `main` (default) * `main-intra` * `mainstillpicture` * 10-bit profiles * `main10` (default) * `main10-intra` * `main422-10` * `main422-10-intra` * `main444-10` * `main444-10-intra` * 12-bit profiles * `main12` (default) * `main12-intra` * `main422-12` * `main422-12-intra` * `main444-12` * `main444-12-intra` The available options are [FFmpeg-compatible](https://x265.readthedocs.io/). Note that certain values for this field may cause the transcoder to override other fields you set in the `H265CodecSettings` message. */ profile: string; /** * Specify the mode. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate - `crf` - constant rate factor */ rateControlMode: string; /** * Enforces the specified codec tune. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.265). Note that certain values for this field may cause the transcoder to override other fields you set in the `H265CodecSettings` message. */ tune: string; /** * Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of H265CodecSettings.vbv_size_bits. */ vbvFullnessBits: number; /** * Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to `VideoStream.bitrate_bps`. */ vbvSizeBits: number; /** * The width of the video in pixels. Must be an even integer. When not specified, the width is adjusted to match the specified height and input aspect ratio. If both are omitted, the input width is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output. */ widthPixels: number; } /** * Overlaid image. */ interface ImageResponse { /** * Target image opacity. Valid values are from `1.0` (solid, default) to `0.0` (transparent), exclusive. Set this to a value greater than `0.0`. */ alpha: number; /** * Normalized image resolution, based on output video resolution. Valid values: `0.0`–`1.0`. To respect the original image aspect ratio, set either `x` or `y` to `0.0`. To use the original image resolution, set both `x` and `y` to `0.0`. */ resolution: outputs.transcoder.v1.NormalizedCoordinateResponse; /** * URI of the image in Cloud Storage. For example, `gs://bucket/inputs/image.png`. Only PNG and JPEG images are supported. */ uri: string; } /** * Input asset. */ interface InputResponse { /** * A unique key for this input. Must be specified when using advanced mapping and edit lists. */ key: string; /** * Preprocessing configurations. */ preprocessingConfig: outputs.transcoder.v1.PreprocessingConfigResponse; /** * URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). If empty, the value is populated from Job.input_uri. See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats). */ uri: string; } /** * Job configuration */ interface JobConfigResponse { /** * List of ad breaks. Specifies where to insert ad break tags in the output manifests. */ adBreaks: outputs.transcoder.v1.AdBreakResponse[]; /** * List of edit atoms. Defines the ultimate timeline of the resulting file or manifest. */ editList: outputs.transcoder.v1.EditAtomResponse[]; /** * List of elementary streams. */ elementaryStreams: outputs.transcoder.v1.ElementaryStreamResponse[]; /** * List of encryption configurations for the content. Each configuration has an ID. Specify this ID in the MuxStream.encryption_id field to indicate the configuration to use for that `MuxStream` output. */ encryptions: outputs.transcoder.v1.EncryptionResponse[]; /** * List of input assets stored in Cloud Storage. */ inputs: outputs.transcoder.v1.InputResponse[]; /** * List of output manifests. */ manifests: outputs.transcoder.v1.ManifestResponse[]; /** * List of multiplexing settings for output streams. */ muxStreams: outputs.transcoder.v1.MuxStreamResponse[]; /** * Output configuration. */ output: outputs.transcoder.v1.OutputResponse; /** * List of overlays on the output video, in descending Z-order. */ overlays: outputs.transcoder.v1.OverlayResponse[]; /** * Destination on Pub/Sub. */ pubsubDestination: outputs.transcoder.v1.PubsubDestinationResponse; /** * List of output sprite sheets. Spritesheets require at least one VideoStream in the Jobconfig. */ spriteSheets: outputs.transcoder.v1.SpriteSheetResponse[]; } /** * Manifest configuration. */ interface ManifestResponse { /** * `DASH` manifest configuration. */ dash: outputs.transcoder.v1.DashConfigResponse; /** * The name of the generated file. The default is `manifest` with the extension suffix corresponding to the Manifest.type. */ fileName: string; /** * List of user supplied MuxStream.key values that should appear in this manifest. When Manifest.type is `HLS`, a media manifest with name MuxStream.key and `.m3u8` extension is generated for each element in this list. */ muxStreams: string[]; /** * Type of the manifest. */ type: string; } /** * Configuration for MPEG Common Encryption (MPEG-CENC). */ interface MpegCommonEncryptionResponse { /** * Specify the encryption scheme. Supported encryption schemes: - `cenc` - `cbcs` */ scheme: string; } /** * Multiplexing settings for output stream. */ interface MuxStreamResponse { /** * The container format. The default is `mp4` Supported container formats: - `ts` - `fmp4`- the corresponding file extension is `.m4s` - `mp4` - `vtt` See also: [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats) */ container: string; /** * List of ElementaryStream.key values multiplexed in this stream. */ elementaryStreams: string[]; /** * Identifier of the encryption configuration to use. If omitted, output will be unencrypted. */ encryptionId: string; /** * The name of the generated file. The default is MuxStream.key with the extension suffix corresponding to the MuxStream.container. Individual segments also have an incremental 10-digit zero-padded suffix starting from 0 before the extension, such as `mux_stream0000000123.ts`. */ fileName: string; /** * Optional. `fmp4` container configuration. */ fmp4: outputs.transcoder.v1.Fmp4ConfigResponse; /** * A unique key for this multiplexed stream. */ key: string; /** * Segment settings for `ts`, `fmp4` and `vtt`. */ segmentSettings: outputs.transcoder.v1.SegmentSettingsResponse; } /** * 2D normalized coordinates. Default: `{0.0, 0.0}` */ interface NormalizedCoordinateResponse { /** * Normalized x coordinate. */ x: number; /** * Normalized y coordinate. */ y: number; } /** * Location of output file(s) in a Cloud Storage bucket. */ interface OutputResponse { /** * URI for the output file(s). For example, `gs://my-bucket/outputs/`. If empty, the value is populated from Job.output_uri. See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats). */ uri: string; } /** * Overlay configuration. */ interface OverlayResponse { /** * List of animations. The list should be chronological, without any time overlap. */ animations: outputs.transcoder.v1.AnimationResponse[]; /** * Image overlay. */ image: outputs.transcoder.v1.ImageResponse; } /** * Pad filter configuration for the input video. The padded input video is scaled after padding with black to match the output resolution. */ interface PadResponse { /** * The number of pixels to add to the bottom. The default is 0. */ bottomPixels: number; /** * The number of pixels to add to the left. The default is 0. */ leftPixels: number; /** * The number of pixels to add to the right. The default is 0. */ rightPixels: number; /** * The number of pixels to add to the top. The default is 0. */ topPixels: number; } /** * Playready configuration. */ interface PlayreadyResponse { } /** * Preprocessing configurations. */ interface PreprocessingConfigResponse { /** * Audio preprocessing configuration. */ audio: outputs.transcoder.v1.AudioResponse; /** * Color preprocessing configuration. */ color: outputs.transcoder.v1.ColorResponse; /** * Specify the video cropping configuration. */ crop: outputs.transcoder.v1.CropResponse; /** * Deblock preprocessing configuration. */ deblock: outputs.transcoder.v1.DeblockResponse; /** * Specify the video deinterlace configuration. */ deinterlace: outputs.transcoder.v1.DeinterlaceResponse; /** * Denoise preprocessing configuration. */ denoise: outputs.transcoder.v1.DenoiseResponse; /** * Specify the video pad filter configuration. */ pad: outputs.transcoder.v1.PadResponse; } /** * A Pub/Sub destination. */ interface PubsubDestinationResponse { /** * The name of the Pub/Sub topic to publish job completion notification to. For example: `projects/{project}/topics/{topic}`. */ topic: string; } /** * Configuration for SAMPLE-AES encryption. */ interface SampleAesEncryptionResponse { } /** * Configuration for secrets stored in Google Secret Manager. */ interface SecretManagerSourceResponse { /** * The name of the Secret Version containing the encryption key in the following format: `projects/{project}/secrets/{secret_id}/versions/{version_number}` Note that only numbered versions are supported. Aliases like "latest" are not supported. */ secretVersion: string; } /** * Segment settings for `ts`, `fmp4` and `vtt`. */ interface SegmentSettingsResponse { /** * Create an individual segment file. The default is `false`. */ individualSegments: boolean; /** * Duration of the segments in seconds. The default is `6.0s`. Note that `segmentDuration` must be greater than or equal to [`gopDuration`](#videostream), and `segmentDuration` must be divisible by [`gopDuration`](#videostream). */ segmentDuration: string; } /** * Sprite sheet configuration. */ interface SpriteSheetResponse { /** * The maximum number of sprites per row in a sprite sheet. The default is 0, which indicates no maximum limit. */ columnCount: number; /** * End time in seconds, relative to the output file timeline. When `end_time_offset` is not specified, the sprites are generated until the end of the output file. */ endTimeOffset: string; /** * File name prefix for the generated sprite sheets. Each sprite sheet has an incremental 10-digit zero-padded suffix starting from 0 before the extension, such as `sprite_sheet0000000123.jpeg`. */ filePrefix: string; /** * Format type. The default is `jpeg`. Supported formats: - `jpeg` */ format: string; /** * Starting from `0s`, create sprites at regular intervals. Specify the interval value in seconds. */ interval: string; /** * The quality of the generated sprite sheet. Enter a value between 1 and 100, where 1 is the lowest quality and 100 is the highest quality. The default is 100. A high quality value corresponds to a low image data compression ratio. */ quality: number; /** * The maximum number of rows per sprite sheet. When the sprite sheet is full, a new sprite sheet is created. The default is 0, which indicates no maximum limit. */ rowCount: number; /** * The height of sprite in pixels. Must be an even integer. To preserve the source aspect ratio, set the SpriteSheet.sprite_height_pixels field or the SpriteSheet.sprite_width_pixels field, but not both (the API will automatically calculate the missing field). For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output. */ spriteHeightPixels: number; /** * The width of sprite in pixels. Must be an even integer. To preserve the source aspect ratio, set the SpriteSheet.sprite_width_pixels field or the SpriteSheet.sprite_height_pixels field, but not both (the API will automatically calculate the missing field). For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output. */ spriteWidthPixels: number; /** * Start time in seconds, relative to the output file timeline. Determines the first sprite to pick. The default is `0s`. */ startTimeOffset: string; /** * Total number of sprites. Create the specified number of sprites distributed evenly across the timeline of the output media. The default is 100. */ totalCount: number; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * The mapping for the JobConfig.edit_list atoms with text EditAtom.inputs. */ interface TextMappingResponse { /** * The EditAtom.key that references atom with text inputs in the JobConfig.edit_list. */ atomKey: string; /** * The Input.key that identifies the input file. */ inputKey: string; /** * The zero-based index of the track in the input file. */ inputTrack: number; } /** * Encoding of a text stream. For example, closed captions or subtitles. */ interface TextStreamResponse { /** * The codec for this text stream. The default is `webvtt`. Supported text codecs: - `srt` - `ttml` - `cea608` - `cea708` - `webvtt` */ codec: string; /** * The name for this particular text stream that will be added to the HLS/DASH manifest. Not supported in MP4 files. */ displayName: string; /** * The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Not supported in MP4 files. */ languageCode: string; /** * The mapping for the JobConfig.edit_list atoms with text EditAtom.inputs. */ mapping: outputs.transcoder.v1.TextMappingResponse[]; } /** * Video stream resource. */ interface VideoStreamResponse { /** * H264 codec settings. */ h264: outputs.transcoder.v1.H264CodecSettingsResponse; /** * H265 codec settings. */ h265: outputs.transcoder.v1.H265CodecSettingsResponse; /** * VP9 codec settings. */ vp9: outputs.transcoder.v1.Vp9CodecSettingsResponse; } /** * VP9 codec settings. */ interface Vp9CodecSettingsResponse { /** * The video bitrate in bits per second. The minimum value is 1,000. The maximum value is 480,000,000. */ bitrateBps: number; /** * Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21. **Note:** This field is not supported. */ crfLevel: number; /** * The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculating frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information. */ frameRate: number; /** * Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`. */ gopDuration: string; /** * Select the GOP size based on the specified frame count. Must be greater than zero. */ gopFrameCount: number; /** * The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output. */ heightPixels: number; /** * Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format */ pixelFormat: string; /** * Enforces the specified codec profile. The following profiles are supported: * `profile0` (default) * `profile1` * `profile2` * `profile3` The available options are [WebM-compatible](https://www.webmproject.org/vp9/profiles/). Note that certain values for this field may cause the transcoder to override other fields you set in the `Vp9CodecSettings` message. */ profile: string; /** * Specify the mode. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate */ rateControlMode: string; /** * The width of the video in pixels. Must be an even integer. When not specified, the width is adjusted to match the specified height and input aspect ratio. If both are omitted, the input width is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output. */ widthPixels: number; } /** * Widevine configuration. */ interface WidevineResponse { } /** * Yet Another Deinterlacing Filter Configuration. */ interface YadifConfigResponse { /** * Deinterlace all frames rather than just the frames identified as interlaced. The default is `false`. */ deinterlaceAllFrames: boolean; /** * Disable spacial interlacing. The default is `false`. */ disableSpatialInterlacing: boolean; /** * Specifies the deinterlacing mode to adopt. The default is `send_frame`. Supported values: - `send_frame`: Output one frame for each frame - `send_field`: Output one frame for each field */ mode: string; /** * The picture field parity assumed for the input interlaced video. The default is `auto`. Supported values: - `tff`: Assume the top field is first - `bff`: Assume the bottom field is first - `auto`: Enable automatic detection of field parity */ parity: string; } } } export declare namespace translate { namespace v3 { /** * The Google Cloud Storage location for the input content. */ interface GcsSourceResponse { /** * Source data URI. For example, `gs://my_bucket/my_object`. */ inputUri: string; } /** * Input configuration for glossaries. */ interface GlossaryInputConfigResponse { /** * Google Cloud Storage location of glossary data. File format is determined based on the filename extension. API returns [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file formats. Wildcards are not allowed. This must be a single file in one of the following formats: For unidirectional glossaries: - TSV/CSV (`.tsv`/`.csv`): Two column file, tab- or comma-separated. The first column is source text. The second column is target text. No headers in this file. The first row contains data and not column names. - TMX (`.tmx`): TMX file with parallel data defining source/target term pairs. For equivalent term sets glossaries: - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms in multiple languages. See documentation for more information - [glossaries](https://cloud.google.com/translate/docs/advanced/glossary). */ gcsSource: outputs.translate.v3.GcsSourceResponse; } /** * Represents a single glossary term */ interface GlossaryTermResponse { /** * The language for this glossary term. */ languageCode: string; /** * The text for the glossary term. */ text: string; } /** * Represents a single entry for an unidirectional glossary. */ interface GlossaryTermsPairResponse { /** * The source term is the term that will get match in the text, */ sourceTerm: outputs.translate.v3.GlossaryTermResponse; /** * The term that will replace the match source term. */ targetTerm: outputs.translate.v3.GlossaryTermResponse; } /** * Represents a single entry for an equivalent term set glossary. This is used for equivalent term sets where each term can be replaced by the other terms in the set. */ interface GlossaryTermsSetResponse { /** * Each term in the set represents a term that can be replaced by the other terms. */ terms: outputs.translate.v3.GlossaryTermResponse[]; } /** * Used with unidirectional glossaries. */ interface LanguageCodePairResponse { /** * The ISO-639 language code of the input text, for example, "en-US". Expected to be an exact match for GlossaryTerm.language_code. */ sourceLanguageCode: string; /** * The ISO-639 language code for translation output, for example, "zh-CN". Expected to be an exact match for GlossaryTerm.language_code. */ targetLanguageCode: string; } /** * Used with equivalent term set glossaries. */ interface LanguageCodesSetResponse { /** * The ISO-639 language code(s) for terms defined in the glossary. All entries are unique. The list contains at least two entries. Expected to be an exact match for GlossaryTerm.language_code. */ languageCodes: string[]; } } namespace v3beta1 { /** * The Google Cloud Storage location for the input content. */ interface GcsSourceResponse { /** * Source data URI. For example, `gs://my_bucket/my_object`. */ inputUri: string; } /** * Input configuration for glossaries. */ interface GlossaryInputConfigResponse { /** * Google Cloud Storage location of glossary data. File format is determined based on the filename extension. API returns [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file formats. Wildcards are not allowed. This must be a single file in one of the following formats: For unidirectional glossaries: - TSV/CSV (`.tsv`/`.csv`): 2 column file, tab- or comma-separated. The first column is source text. The second column is target text. The file must not contain headers. That is, the first row is data, not column names. - TMX (`.tmx`): TMX file with parallel data defining source/target term pairs. For equivalent term sets glossaries: - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms in multiple languages. See documentation for more information - [glossaries](https://cloud.google.com/translate/docs/advanced/glossary). */ gcsSource: outputs.translate.v3beta1.GcsSourceResponse; } /** * Used with unidirectional glossaries. */ interface LanguageCodePairResponse { /** * The BCP-47 language code of the input text, for example, "en-US". Expected to be an exact match for GlossaryTerm.language_code. */ sourceLanguageCode: string; /** * The BCP-47 language code for translation output, for example, "zh-CN". Expected to be an exact match for GlossaryTerm.language_code. */ targetLanguageCode: string; } /** * Used with equivalent term set glossaries. */ interface LanguageCodesSetResponse { /** * The BCP-47 language code(s) for terms defined in the glossary. All entries are unique. The list contains at least two entries. Expected to be an exact match for GlossaryTerm.language_code. */ languageCodes: string[]; } } } export declare namespace vision { namespace v1 { /** * A bounding polygon for the detected image annotation. */ interface BoundingPolyResponse { /** * The bounding polygon normalized vertices. */ normalizedVertices: outputs.vision.v1.NormalizedVertexResponse[]; /** * The bounding polygon vertices. */ vertices: outputs.vision.v1.VertexResponse[]; } /** * A product label represented as a key-value pair. */ interface KeyValueResponse { /** * The key of the label attached to the product. Cannot be empty and cannot exceed 128 bytes. */ key: string; /** * The value of the label attached to the product. Cannot be empty and cannot exceed 128 bytes. */ value: string; } /** * A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1. */ interface NormalizedVertexResponse { /** * X coordinate. */ x: number; /** * Y coordinate. */ y: number; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * A vertex represents a 2D point in the image. NOTE: the vertex coordinates are in the same scale as the original image. */ interface VertexResponse { /** * X coordinate. */ x: number; /** * Y coordinate. */ y: number; } } } export declare namespace vmmigration { namespace v1 { /** * Message describing AWS Credentials using access key id and secret. */ interface AccessKeyCredentialsResponse { /** * AWS access key ID. */ accessKeyId: string; /** * Input only. AWS secret access key. */ secretAccessKey: string; /** * Input only. AWS session token. Used only when AWS security token service (STS) is responsible for creating the temporary credentials. */ sessionToken: string; } /** * AdaptingOSStep contains specific step details. */ interface AdaptingOSStepResponse { } /** * Describes an appliance version. */ interface ApplianceVersionResponse { /** * Determine whether it's critical to upgrade the appliance to this version. */ critical: boolean; /** * Link to a page that contains the version release notes. */ releaseNotesUri: string; /** * A link for downloading the version. */ uri: string; /** * The appliance version. */ version: string; } /** * AppliedLicense holds the license data returned by adaptation module report. */ interface AppliedLicenseResponse { /** * The OS license returned from the adaptation module's report. */ osLicense: string; /** * The license type that was used in OS adaptation. */ type: string; } /** * Holds informatiom about the available versions for upgrade. */ interface AvailableUpdatesResponse { /** * The latest version for in place update. The current appliance can be updated to this version using the API or m4c CLI. */ inPlaceUpdate: outputs.vmmigration.v1.ApplianceVersionResponse; /** * The newest deployable version of the appliance. The current appliance can't be updated into this version, and the owner must manually deploy this OVA to a new appliance. */ newDeployableAppliance: outputs.vmmigration.v1.ApplianceVersionResponse; } /** * The details of an AWS instance disk. */ interface AwsDiskDetailsResponse { /** * The ordinal number of the disk. */ diskNumber: number; /** * Size in GB. */ sizeGb: string; /** * AWS volume ID. */ volumeId: string; } /** * AwsSourceDetails message describes a specific source details for the AWS source type. */ interface AwsSourceDetailsResponse { /** * AWS Credentials using access key id and secret. */ accessKeyCreds: outputs.vmmigration.v1.AccessKeyCredentialsResponse; /** * Immutable. The AWS region that the source VMs will be migrated from. */ awsRegion: string; /** * Provides details on the state of the Source in case of an error. */ error: outputs.vmmigration.v1.StatusResponse; /** * AWS security group names to limit the scope of the source inventory. */ inventorySecurityGroupNames: string[]; /** * AWS resource tags to limit the scope of the source inventory. */ inventoryTagList: outputs.vmmigration.v1.TagResponse[]; /** * User specified tags to add to every M2VM generated resource in AWS. These tags will be set in addition to the default tags that are set as part of the migration process. The tags must not begin with the reserved prefix `m2vm`. */ migrationResourcesUserTags: { [key: string]: string; }; /** * The source's public IP. All communication initiated by this source will originate from this IP. */ publicIp: string; /** * State of the source as determined by the health check. */ state: string; } /** * Represent the source AWS VM details. */ interface AwsSourceVmDetailsResponse { /** * The total size of the disks being migrated in bytes. */ committedStorageBytes: string; /** * The disks attached to the source VM. */ disks: outputs.vmmigration.v1.AwsDiskDetailsResponse[]; /** * The firmware type of the source VM. */ firmware: string; /** * Information about VM capabilities needed for some Compute Engine features. */ vmCapabilitiesInfo: outputs.vmmigration.v1.VmCapabilitiesResponse; } /** * The details of an Azure VM disk. */ interface AzureDiskDetailsResponse { /** * Azure disk ID. */ diskId: string; /** * The ordinal number of the disk. */ diskNumber: number; /** * Size in GB. */ sizeGb: string; } /** * AzureSourceDetails message describes a specific source details for the Azure source type. */ interface AzureSourceDetailsResponse { /** * Immutable. The Azure location (region) that the source VMs will be migrated from. */ azureLocation: string; /** * Azure Credentials using tenant ID, client ID and secret. */ clientSecretCreds: outputs.vmmigration.v1.ClientSecretCredentialsResponse; /** * Provides details on the state of the Source in case of an error. */ error: outputs.vmmigration.v1.StatusResponse; /** * User specified tags to add to every M2VM generated resource in Azure. These tags will be set in addition to the default tags that are set as part of the migration process. The tags must not begin with the reserved prefix `m4ce` or `m2vm`. */ migrationResourcesUserTags: { [key: string]: string; }; /** * The ID of the Azure resource group that contains all resources related to the migration process of this source. */ resourceGroupId: string; /** * State of the source as determined by the health check. */ state: string; /** * Immutable. Azure subscription ID. */ subscriptionId: string; } /** * Represent the source Azure VM details. */ interface AzureSourceVmDetailsResponse { /** * The total size of the disks being migrated in bytes. */ committedStorageBytes: string; /** * The disks attached to the source VM. */ disks: outputs.vmmigration.v1.AzureDiskDetailsResponse[]; /** * The firmware type of the source VM. */ firmware: string; /** * Information about VM capabilities needed for some Compute Engine features. */ vmCapabilitiesInfo: outputs.vmmigration.v1.VmCapabilitiesResponse; } /** * BootDiskDefaults hold information about the boot disk of a VM. */ interface BootDiskDefaultsResponse { /** * Optional. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. */ deviceName: string; /** * Optional. The name of the disk. */ diskName: string; /** * Optional. The type of disk provisioning to use for the VM. */ diskType: string; /** * Optional. The encryption to apply to the boot disk. */ encryption: outputs.vmmigration.v1.EncryptionResponse; /** * The image to use when creating the disk. */ image: outputs.vmmigration.v1.DiskImageDefaultsResponse; } /** * Message describing Azure Credentials using tenant ID, client ID and secret. */ interface ClientSecretCredentialsResponse { /** * Azure client ID. */ clientId: string; /** * Input only. Azure client secret. */ clientSecret: string; /** * Azure tenant ID. */ tenantId: string; } /** * CloneJob describes the process of creating a clone of a MigratingVM to the requested target based on the latest successful uploaded snapshots. While the migration cycles of a MigratingVm take place, it is possible to verify the uploaded VM can be started in the cloud, by creating a clone. The clone can be created without any downtime, and it is created using the latest snapshots which are already in the cloud. The cloneJob is only responsible for its work, not its products, which means once it is finished, it will never touch the instance it created. It will only delete it in case of the CloneJob being cancelled or upon failure to clone. */ interface CloneJobResponse { /** * Details of the target Persistent Disks in Compute Engine. */ computeEngineDisksTargetDetails: outputs.vmmigration.v1.ComputeEngineDisksTargetDetailsResponse; /** * Details of the target VM in Compute Engine. */ computeEngineTargetDetails: outputs.vmmigration.v1.ComputeEngineTargetDetailsResponse; /** * The time the clone job was created (as an API call, not when it was actually created in the target). */ createTime: string; /** * The time the clone job was ended. */ endTime: string; /** * Provides details for the errors that led to the Clone Job's state. */ error: outputs.vmmigration.v1.StatusResponse; /** * The name of the clone. */ name: string; /** * State of the clone job. */ state: string; /** * The time the state was last updated. */ stateTime: string; /** * The clone steps list representing its progress. */ steps: outputs.vmmigration.v1.CloneStepResponse[]; } /** * CloneStep holds information about the clone step progress. */ interface CloneStepResponse { /** * Adapting OS step. */ adaptingOs: outputs.vmmigration.v1.AdaptingOSStepResponse; /** * The time the step has ended. */ endTime: string; /** * Instantiating migrated VM step. */ instantiatingMigratedVm: outputs.vmmigration.v1.InstantiatingMigratedVMStepResponse; /** * Preparing VM disks step. */ preparingVmDisks: outputs.vmmigration.v1.PreparingVMDisksStepResponse; /** * The time the step has started. */ startTime: string; } /** * ComputeEngineDisksTargetDefaults is a collection of details for creating Persistent Disks in a target Compute Engine project. */ interface ComputeEngineDisksTargetDefaultsResponse { /** * The details of each Persistent Disk to create. */ disks: outputs.vmmigration.v1.PersistentDiskDefaultsResponse[]; /** * Details of the disk only migration target. */ disksTargetDefaults: outputs.vmmigration.v1.DisksMigrationDisksTargetDefaultsResponse; /** * The full path of the resource of type TargetProject which represents the Compute Engine project in which to create the Persistent Disks. */ targetProject: string; /** * Details of the VM migration target. */ vmTargetDefaults: outputs.vmmigration.v1.DisksMigrationVmTargetDefaultsResponse; /** * The zone in which to create the Persistent Disks. */ zone: string; } /** * ComputeEngineDisksTargetDetails is a collection of created Persistent Disks details. */ interface ComputeEngineDisksTargetDetailsResponse { /** * The details of each created Persistent Disk. */ disks: outputs.vmmigration.v1.PersistentDiskResponse[]; /** * Details of the disks-only migration target. */ disksTargetDetails: outputs.vmmigration.v1.DisksMigrationDisksTargetDetailsResponse; /** * Details for the VM the migrated data disks are attached to. */ vmTargetDetails: outputs.vmmigration.v1.DisksMigrationVmTargetDetailsResponse; } /** * ComputeEngineTargetDefaults is a collection of details for creating a VM in a target Compute Engine project. */ interface ComputeEngineTargetDefaultsResponse { /** * Additional licenses to assign to the VM. */ additionalLicenses: string[]; /** * The OS license returned from the adaptation module report. */ appliedLicense: outputs.vmmigration.v1.AppliedLicenseResponse; /** * The VM Boot Option, as set in the source VM. */ bootOption: string; /** * Compute instance scheduling information (if empty default is used). */ computeScheduling: outputs.vmmigration.v1.ComputeSchedulingResponse; /** * The disk type to use in the VM. */ diskType: string; /** * Optional. Immutable. The encryption to apply to the VM disks. */ encryption: outputs.vmmigration.v1.EncryptionResponse; /** * The hostname to assign to the VM. */ hostname: string; /** * A map of labels to associate with the VM. */ labels: { [key: string]: string; }; /** * The license type to use in OS adaptation. */ licenseType: string; /** * The machine type to create the VM with. */ machineType: string; /** * The machine type series to create the VM with. */ machineTypeSeries: string; /** * The metadata key/value pairs to assign to the VM. */ metadata: { [key: string]: string; }; /** * List of NICs connected to this VM. */ networkInterfaces: outputs.vmmigration.v1.NetworkInterfaceResponse[]; /** * A list of network tags to associate with the VM. */ networkTags: string[]; /** * Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI. */ secureBoot: boolean; /** * The service account to associate the VM with. */ serviceAccount: string; /** * The full path of the resource of type TargetProject which represents the Compute Engine project in which to create this VM. */ targetProject: string; /** * The name of the VM to create. */ vmName: string; /** * The zone in which to create the VM. */ zone: string; } /** * ComputeEngineTargetDetails is a collection of details for creating a VM in a target Compute Engine project. */ interface ComputeEngineTargetDetailsResponse { /** * Additional licenses to assign to the VM. */ additionalLicenses: string[]; /** * The OS license returned from the adaptation module report. */ appliedLicense: outputs.vmmigration.v1.AppliedLicenseResponse; /** * The VM Boot Option, as set in the source VM. */ bootOption: string; /** * Compute instance scheduling information (if empty default is used). */ computeScheduling: outputs.vmmigration.v1.ComputeSchedulingResponse; /** * The disk type to use in the VM. */ diskType: string; /** * Optional. The encryption to apply to the VM disks. */ encryption: outputs.vmmigration.v1.EncryptionResponse; /** * The hostname to assign to the VM. */ hostname: string; /** * A map of labels to associate with the VM. */ labels: { [key: string]: string; }; /** * The license type to use in OS adaptation. */ licenseType: string; /** * The machine type to create the VM with. */ machineType: string; /** * The machine type series to create the VM with. */ machineTypeSeries: string; /** * The metadata key/value pairs to assign to the VM. */ metadata: { [key: string]: string; }; /** * List of NICs connected to this VM. */ networkInterfaces: outputs.vmmigration.v1.NetworkInterfaceResponse[]; /** * A list of network tags to associate with the VM. */ networkTags: string[]; /** * The Google Cloud target project ID or project name. */ project: string; /** * Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI. */ secureBoot: boolean; /** * The service account to associate the VM with. */ serviceAccount: string; /** * The name of the VM to create. */ vmName: string; /** * The zone in which to create the VM. */ zone: string; } /** * Scheduling information for VM on maintenance/restart behaviour and node allocation in sole tenant nodes. */ interface ComputeSchedulingResponse { /** * The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. Ignored if no node_affinites are configured. */ minNodeCpus: number; /** * A set of node affinity and anti-affinity configurations for sole tenant nodes. */ nodeAffinities: outputs.vmmigration.v1.SchedulingNodeAffinityResponse[]; /** * How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance. */ onHostMaintenance: string; /** * Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user). This configuration is identical to `automaticRestart` field in Compute Engine create instance under scheduling. It was changed to an enum (instead of a boolean) to match the default value in Compute Engine which is automatic restart. */ restartType: string; } /** * CutoverForecast holds information about future CutoverJobs of a MigratingVm. */ interface CutoverForecastResponse { /** * Estimation of the CutoverJob duration. */ estimatedCutoverJobDuration: string; } /** * CutoverJob message describes a cutover of a migrating VM. The CutoverJob is the operation of shutting down the VM, creating a snapshot and clonning the VM using the replicated snapshot. */ interface CutoverJobResponse { /** * Details of the target Persistent Disks in Compute Engine. */ computeEngineDisksTargetDetails: outputs.vmmigration.v1.ComputeEngineDisksTargetDetailsResponse; /** * Details of the target VM in Compute Engine. */ computeEngineTargetDetails: outputs.vmmigration.v1.ComputeEngineTargetDetailsResponse; /** * The time the cutover job was created (as an API call, not when it was actually created in the target). */ createTime: string; /** * The time the cutover job had finished. */ endTime: string; /** * Provides details for the errors that led to the Cutover Job's state. */ error: outputs.vmmigration.v1.StatusResponse; /** * The name of the cutover job. */ name: string; /** * The current progress in percentage of the cutover job. */ progressPercent: number; /** * State of the cutover job. */ state: string; /** * A message providing possible extra details about the current state. */ stateMessage: string; /** * The time the state was last updated. */ stateTime: string; /** * The cutover steps list representing its progress. */ steps: outputs.vmmigration.v1.CutoverStepResponse[]; } /** * CutoverStep holds information about the cutover step progress. */ interface CutoverStepResponse { /** * The time the step has ended. */ endTime: string; /** * Final sync step. */ finalSync: outputs.vmmigration.v1.ReplicationCycleResponse; /** * Instantiating migrated VM step. */ instantiatingMigratedVm: outputs.vmmigration.v1.InstantiatingMigratedVMStepResponse; /** * Preparing VM disks step. */ preparingVmDisks: outputs.vmmigration.v1.PreparingVMDisksStepResponse; /** * A replication cycle prior cutover step. */ previousReplicationCycle: outputs.vmmigration.v1.ReplicationCycleResponse; /** * Shutting down VM step. */ shuttingDownSourceVm: outputs.vmmigration.v1.ShuttingDownSourceVMStepResponse; /** * The time the step has started. */ startTime: string; } /** * CycleStep holds information about a step progress. */ interface CycleStepResponse { /** * The time the cycle step has ended. */ endTime: string; /** * Initializing replication step. */ initializingReplication: outputs.vmmigration.v1.InitializingReplicationStepResponse; /** * Post processing step. */ postProcessing: outputs.vmmigration.v1.PostProcessingStepResponse; /** * Replicating step. */ replicating: outputs.vmmigration.v1.ReplicatingStepResponse; /** * The time the cycle step has started. */ startTime: string; } /** * Contains details about the image source used to create the disk. */ interface DiskImageDefaultsResponse { /** * The Image resource used when creating the disk. */ sourceImage: string; } /** * Details for a disk only migration. */ interface DisksMigrationDisksTargetDefaultsResponse { } /** * Details for a disks-only migration. */ interface DisksMigrationDisksTargetDetailsResponse { } /** * Details for creation of a VM that migrated data disks will be attached to. */ interface DisksMigrationVmTargetDefaultsResponse { /** * Optional. Additional licenses to assign to the VM. */ additionalLicenses: string[]; /** * Optional. Details of the boot disk of the VM. */ bootDiskDefaults: outputs.vmmigration.v1.BootDiskDefaultsResponse; /** * Optional. Compute instance scheduling information (if empty default is used). */ computeScheduling: outputs.vmmigration.v1.ComputeSchedulingResponse; /** * Optional. The encryption to apply to the VM. */ encryption: outputs.vmmigration.v1.EncryptionResponse; /** * Optional. The hostname to assign to the VM. */ hostname: string; /** * Optional. A map of labels to associate with the VM. */ labels: { [key: string]: string; }; /** * The machine type to create the VM with. */ machineType: string; /** * Optional. The machine type series to create the VM with. For presentation only. */ machineTypeSeries: string; /** * Optional. The metadata key/value pairs to assign to the VM. */ metadata: { [key: string]: string; }; /** * Optional. NICs to attach to the VM. */ networkInterfaces: outputs.vmmigration.v1.NetworkInterfaceResponse[]; /** * Optional. A list of network tags to associate with the VM. */ networkTags: string[]; /** * Optional. Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI. */ secureBoot: boolean; /** * Optional. The service account to associate the VM with. */ serviceAccount: string; /** * The name of the VM to create. */ vmName: string; } /** * Details for the VM created VM as part of disks migration. */ interface DisksMigrationVmTargetDetailsResponse { /** * The URI of the Compute Engine VM. */ vmUri: string; } /** * Encryption message describes the details of the applied encryption. */ interface EncryptionResponse { /** * The name of the encryption key that is stored in Google Cloud KMS. */ kmsKey: string; } /** * InitializingReplicationStep contains specific step details. */ interface InitializingReplicationStepResponse { } /** * InstantiatingMigratedVMStep contains specific step details. */ interface InstantiatingMigratedVMStepResponse { } /** * Describes a URL link. */ interface LinkResponse { /** * Describes what the link offers. */ description: string; /** * The URL of the link. */ url: string; } /** * Provides a localized error message that is safe to return to the user which can be attached to an RPC error. */ interface LocalizedMessageResponse { /** * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" */ locale: string; /** * The localized error message in the above locale. */ message: string; } /** * Represents migration resource warning information that can be used with google.rpc.Status message. MigrationWarning is used to present the user with warning information in migration operations. */ interface MigrationWarningResponse { /** * Suggested action for solving the warning. */ actionItem: outputs.vmmigration.v1.LocalizedMessageResponse; /** * The warning code. */ code: string; /** * URL(s) pointing to additional information on handling the current warning. */ helpLinks: outputs.vmmigration.v1.LinkResponse[]; /** * The localized warning message. */ warningMessage: outputs.vmmigration.v1.LocalizedMessageResponse; /** * The time the warning occurred. */ warningTime: string; } /** * NetworkInterface represents a NIC of a VM. */ interface NetworkInterfaceResponse { /** * The external IP to define in the NIC. */ externalIp: string; /** * The internal IP to define in the NIC. The formats accepted are: `ephemeral` \ ipv4 address \ a named address resource full path. */ internalIp: string; /** * The network to connect the NIC to. */ network: string; /** * The subnetwork to connect the NIC to. */ subnetwork: string; } /** * Details for creation of a Persistent Disk. */ interface PersistentDiskDefaultsResponse { /** * A map of labels to associate with the Persistent Disk. */ additionalLabels: { [key: string]: string; }; /** * Optional. The name of the Persistent Disk to create. */ diskName: string; /** * The disk type to use. */ diskType: string; /** * Optional. The encryption to apply to the disk. */ encryption: outputs.vmmigration.v1.EncryptionResponse; /** * The ordinal number of the source VM disk. */ sourceDiskNumber: number; /** * Optional. Details for attachment of the disk to a VM. Used when the disk is set to be attacked to a target VM. */ vmAttachmentDetails: outputs.vmmigration.v1.VmAttachmentDetailsResponse; } /** * Details of a created Persistent Disk. */ interface PersistentDiskResponse { /** * The URI of the Persistent Disk. */ diskUri: string; /** * The ordinal number of the source VM disk. */ sourceDiskNumber: number; } /** * PostProcessingStep contains specific step details. */ interface PostProcessingStepResponse { } /** * PreparingVMDisksStep contains specific step details. */ interface PreparingVMDisksStepResponse { } /** * ReplicatingStep contains specific step details. */ interface ReplicatingStepResponse { /** * The source disks replication rate for the last 30 minutes in bytes per second. */ lastThirtyMinutesAverageBytesPerSecond: string; /** * The source disks replication rate for the last 2 minutes in bytes per second. */ lastTwoMinutesAverageBytesPerSecond: string; /** * Replicated bytes in the step. */ replicatedBytes: string; /** * Total bytes to be handled in the step. */ totalBytes: string; } /** * ReplicationCycle contains information about the current replication cycle status. */ interface ReplicationCycleResponse { /** * The cycle's ordinal number. */ cycleNumber: number; /** * The time the replication cycle has ended. */ endTime: string; /** * Provides details on the state of the cycle in case of an error. */ error: outputs.vmmigration.v1.StatusResponse; /** * The identifier of the ReplicationCycle. */ name: string; /** * The current progress in percentage of this cycle. Was replaced by 'steps' field, which breaks down the cycle progression more accurately. */ progressPercent: number; /** * The time the replication cycle has started. */ startTime: string; /** * State of the ReplicationCycle. */ state: string; /** * The cycle's steps list representing its progress. */ steps: outputs.vmmigration.v1.CycleStepResponse[]; /** * The accumulated duration the replication cycle was paused. */ totalPauseDuration: string; /** * Warnings that occurred during the cycle. */ warnings: outputs.vmmigration.v1.MigrationWarningResponse[]; } /** * ReplicationSync contain information about the last replica sync to the cloud. */ interface ReplicationSyncResponse { /** * The most updated snapshot created time in the source that finished replication. */ lastSyncTime: string; } /** * A policy for scheduling replications. */ interface SchedulePolicyResponse { /** * The idle duration between replication stages. */ idleDuration: string; /** * A flag to indicate whether to skip OS adaptation during the replication sync. OS adaptation is a process where the VM's operating system undergoes changes and adaptations to fully function on Compute Engine. */ skipOsAdaptation: boolean; } /** * Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. Based on https://cloud.google.com/compute/docs/reference/rest/v1/instances/setScheduling */ interface SchedulingNodeAffinityResponse { /** * The label key of Node resource to reference. */ key: string; /** * The operator to use for the node resources specified in the `values` parameter. */ operator: string; /** * Corresponds to the label values of Node resource. */ values: string[]; } /** * ShuttingDownSourceVMStep contains specific step details. */ interface ShuttingDownSourceVMStepResponse { } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Tag is an AWS tag representation. */ interface TagResponse { /** * Key of tag. */ key: string; /** * Value of tag. */ value: string; } /** * UpgradeStatus contains information about upgradeAppliance operation. */ interface UpgradeStatusResponse { /** * Provides details on the state of the upgrade operation in case of an error. */ error: outputs.vmmigration.v1.StatusResponse; /** * The version from which we upgraded. */ previousVersion: string; /** * The time the operation was started. */ startTime: string; /** * The state of the upgradeAppliance operation. */ state: string; /** * The version to upgrade to. */ version: string; } /** * Details for attachment of the disk to a VM. */ interface VmAttachmentDetailsResponse { /** * Optional. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. */ deviceName: string; } /** * Migrating VM source information about the VM capabilities needed for some Compute Engine features. */ interface VmCapabilitiesResponse { /** * The last time OS capabilities list was updated. */ lastOsCapabilitiesUpdateTime: string; /** * Unordered list. List of certain VM OS capabilities needed for some Compute Engine features. */ osCapabilities: string[]; } /** * Utilization information of a single VM. */ interface VmUtilizationInfoResponse { /** * Utilization metrics for this VM. */ utilization: outputs.vmmigration.v1.VmUtilizationMetricsResponse; /** * The VM's ID in the source. */ vmId: string; /** * The description of the VM in a Source of type Vmware. */ vmwareVmDetails: outputs.vmmigration.v1.VmwareVmDetailsResponse; } /** * Utilization metrics values for a single VM. */ interface VmUtilizationMetricsResponse { /** * Average CPU usage, percent. */ cpuAveragePercent: number; /** * Max CPU usage, percent. */ cpuMaxPercent: number; /** * Average disk IO rate, in kilobytes per second. */ diskIoRateAverageKbps: string; /** * Max disk IO rate, in kilobytes per second. */ diskIoRateMaxKbps: string; /** * Average memory usage, percent. */ memoryAveragePercent: number; /** * Max memory usage, percent. */ memoryMaxPercent: number; /** * Average network throughput (combined transmit-rates and receive-rates), in kilobytes per second. */ networkThroughputAverageKbps: string; /** * Max network throughput (combined transmit-rates and receive-rates), in kilobytes per second. */ networkThroughputMaxKbps: string; } /** * The details of a Vmware VM disk. */ interface VmwareDiskDetailsResponse { /** * The ordinal number of the disk. */ diskNumber: number; /** * The disk label. */ label: string; /** * Size in GB. */ sizeGb: string; } /** * VmwareSourceDetails message describes a specific source details for the vmware source type. */ interface VmwareSourceDetailsResponse { /** * Input only. The credentials password. This is write only and can not be read in a GET operation. */ password: string; /** * The hostname of the vcenter. */ resolvedVcenterHost: string; /** * The thumbprint representing the certificate for the vcenter. */ thumbprint: string; /** * The credentials username. */ username: string; /** * The ip address of the vcenter this Source represents. */ vcenterIp: string; } /** * Represent the source Vmware VM details. */ interface VmwareSourceVmDetailsResponse { /** * The total size of the disks being migrated in bytes. */ committedStorageBytes: string; /** * The disks attached to the source VM. */ disks: outputs.vmmigration.v1.VmwareDiskDetailsResponse[]; /** * The firmware type of the source VM. */ firmware: string; /** * Information about VM capabilities needed for some Compute Engine features. */ vmCapabilitiesInfo: outputs.vmmigration.v1.VmCapabilitiesResponse; } /** * VmwareVmDetails describes a VM in vCenter. */ interface VmwareVmDetailsResponse { /** * The VM Boot Option. */ bootOption: string; /** * The total size of the storage allocated to the VM in MB. */ committedStorageMb: string; /** * The number of cpus in the VM. */ cpuCount: number; /** * The descriptive name of the vCenter's datacenter this VM is contained in. */ datacenterDescription: string; /** * The id of the vCenter's datacenter this VM is contained in. */ datacenterId: string; /** * The number of disks the VM has. */ diskCount: number; /** * The display name of the VM. Note that this is not necessarily unique. */ displayName: string; /** * The VM's OS. See for example https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html for types of strings this might hold. */ guestDescription: string; /** * The size of the memory of the VM in MB. */ memoryMb: number; /** * The power state of the VM at the moment list was taken. */ powerState: string; /** * The unique identifier of the VM in vCenter. */ uuid: string; /** * The VM's id in the source (note that this is not the MigratingVm's id). This is the moref id of the VM. */ vmId: string; } } namespace v1alpha1 { /** * Message describing AWS Credentials using access key id and secret. */ interface AccessKeyCredentialsResponse { /** * AWS access key ID. */ accessKeyId: string; /** * Input only. AWS secret access key. */ secretAccessKey: string; /** * Input only. AWS session token. Used only when AWS security token service (STS) is responsible for creating the temporary credentials. */ sessionToken: string; } /** * AdaptingOSStep contains specific step details. */ interface AdaptingOSStepResponse { } /** * Describes an appliance version. */ interface ApplianceVersionResponse { /** * Determine whether it's critical to upgrade the appliance to this version. */ critical: boolean; /** * Link to a page that contains the version release notes. */ releaseNotesUri: string; /** * A link for downloading the version. */ uri: string; /** * The appliance version. */ version: string; } /** * AppliedLicense holds the license data returned by adaptation module report. */ interface AppliedLicenseResponse { /** * The OS license returned from the adaptation module's report. */ osLicense: string; /** * The license type that was used in OS adaptation. */ type: string; } /** * Holds informatiom about the available versions for upgrade. */ interface AvailableUpdatesResponse { /** * The latest version for in place update. The current appliance can be updated to this version using the API or m4c CLI. */ inPlaceUpdate: outputs.vmmigration.v1alpha1.ApplianceVersionResponse; /** * The newest deployable version of the appliance. The current appliance can't be updated into this version, and the owner must manually deploy this OVA to a new appliance. */ newDeployableAppliance: outputs.vmmigration.v1alpha1.ApplianceVersionResponse; } /** * The details of an AWS instance disk. */ interface AwsDiskDetailsResponse { /** * The ordinal number of the disk. */ diskNumber: number; /** * Size in GB. */ sizeGb: string; /** * AWS volume ID. */ volumeId: string; } /** * AwsSourceDetails message describes a specific source details for the AWS source type. */ interface AwsSourceDetailsResponse { /** * AWS Credentials using access key id and secret. */ accessKeyCreds: outputs.vmmigration.v1alpha1.AccessKeyCredentialsResponse; /** * Immutable. The AWS region that the source VMs will be migrated from. */ awsRegion: string; /** * Provides details on the state of the Source in case of an error. */ error: outputs.vmmigration.v1alpha1.StatusResponse; /** * AWS security group names to limit the scope of the source inventory. */ inventorySecurityGroupNames: string[]; /** * AWS resource tags to limit the scope of the source inventory. */ inventoryTagList: outputs.vmmigration.v1alpha1.TagResponse[]; /** * User specified tags to add to every M2VM generated resource in AWS. These tags will be set in addition to the default tags that are set as part of the migration process. The tags must not begin with the reserved prefix `m2vm`. */ migrationResourcesUserTags: { [key: string]: string; }; /** * The source's public IP. All communication initiated by this source will originate from this IP. */ publicIp: string; /** * State of the source as determined by the health check. */ state: string; } /** * Represent the source AWS VM details. */ interface AwsSourceVmDetailsResponse { /** * The total size of the disks being migrated in bytes. */ committedStorageBytes: string; /** * The disks attached to the source VM. */ disks: outputs.vmmigration.v1alpha1.AwsDiskDetailsResponse[]; /** * The firmware type of the source VM. */ firmware: string; /** * Information about VM capabilities needed for some Compute Engine features. */ vmCapabilitiesInfo: outputs.vmmigration.v1alpha1.VmCapabilitiesResponse; } /** * The details of an Azure VM disk. */ interface AzureDiskDetailsResponse { /** * Azure disk ID. */ diskId: string; /** * The ordinal number of the disk. */ diskNumber: number; /** * Size in GB. */ sizeGb: string; } /** * AzureSourceDetails message describes a specific source details for the Azure source type. */ interface AzureSourceDetailsResponse { /** * Immutable. The Azure location (region) that the source VMs will be migrated from. */ azureLocation: string; /** * Azure Credentials using tenant ID, client ID and secret. */ clientSecretCreds: outputs.vmmigration.v1alpha1.ClientSecretCredentialsResponse; /** * Provides details on the state of the Source in case of an error. */ error: outputs.vmmigration.v1alpha1.StatusResponse; /** * User specified tags to add to every M2VM generated resource in Azure. These tags will be set in addition to the default tags that are set as part of the migration process. The tags must not begin with the reserved prefix `m4ce` or `m2vm`. */ migrationResourcesUserTags: { [key: string]: string; }; /** * The ID of the Azure resource group that contains all resources related to the migration process of this source. */ resourceGroupId: string; /** * State of the source as determined by the health check. */ state: string; /** * Immutable. Azure subscription ID. */ subscriptionId: string; } /** * Represent the source Azure VM details. */ interface AzureSourceVmDetailsResponse { /** * The total size of the disks being migrated in bytes. */ committedStorageBytes: string; /** * The disks attached to the source VM. */ disks: outputs.vmmigration.v1alpha1.AzureDiskDetailsResponse[]; /** * The firmware type of the source VM. */ firmware: string; /** * Information about VM capabilities needed for some Compute Engine features. */ vmCapabilitiesInfo: outputs.vmmigration.v1alpha1.VmCapabilitiesResponse; } /** * BootDiskDefaults hold information about the boot disk of a VM. */ interface BootDiskDefaultsResponse { /** * Optional. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. */ deviceName: string; /** * Optional. The name of the disk. */ diskName: string; /** * Optional. The type of disk provisioning to use for the VM. */ diskType: string; /** * Optional. The encryption to apply to the boot disk. */ encryption: outputs.vmmigration.v1alpha1.EncryptionResponse; /** * The image to use when creating the disk. */ image: outputs.vmmigration.v1alpha1.DiskImageDefaultsResponse; } /** * Message describing Azure Credentials using tenant ID, client ID and secret. */ interface ClientSecretCredentialsResponse { /** * Azure client ID. */ clientId: string; /** * Input only. Azure client secret. */ clientSecret: string; /** * Azure tenant ID. */ tenantId: string; } /** * CloneJob describes the process of creating a clone of a MigratingVM to the requested target based on the latest successful uploaded snapshots. While the migration cycles of a MigratingVm take place, it is possible to verify the uploaded VM can be started in the cloud, by creating a clone. The clone can be created without any downtime, and it is created using the latest snapshots which are already in the cloud. The cloneJob is only responsible for its work, not its products, which means once it is finished, it will never touch the instance it created. It will only delete it in case of the CloneJob being cancelled or upon failure to clone. */ interface CloneJobResponse { /** * Details of the target Persistent Disks in Compute Engine. */ computeEngineDisksTargetDetails: outputs.vmmigration.v1alpha1.ComputeEngineDisksTargetDetailsResponse; /** * Details of the target VM in Compute Engine. */ computeEngineTargetDetails: outputs.vmmigration.v1alpha1.ComputeEngineTargetDetailsResponse; /** * Details of the VM in Compute Engine. Deprecated: Use compute_engine_target_details instead. * * @deprecated Output only. Details of the VM in Compute Engine. Deprecated: Use compute_engine_target_details instead. */ computeEngineVmDetails: outputs.vmmigration.v1alpha1.TargetVMDetailsResponse; /** * The time the clone job was created (as an API call, not when it was actually created in the target). */ createTime: string; /** * The time the clone job was ended. */ endTime: string; /** * Provides details for the errors that led to the Clone Job's state. */ error: outputs.vmmigration.v1alpha1.StatusResponse; /** * The name of the clone. */ name: string; /** * State of the clone job. */ state: string; /** * The time the state was last updated. */ stateTime: string; /** * The clone steps list representing its progress. */ steps: outputs.vmmigration.v1alpha1.CloneStepResponse[]; /** * Details of the VM to create as the target of this clone job. Deprecated: Use compute_engine_target_details instead. * * @deprecated Output only. Details of the VM to create as the target of this clone job. Deprecated: Use compute_engine_target_details instead. */ targetDetails: outputs.vmmigration.v1alpha1.TargetVMDetailsResponse; } /** * CloneStep holds information about the clone step progress. */ interface CloneStepResponse { /** * Adapting OS step. */ adaptingOs: outputs.vmmigration.v1alpha1.AdaptingOSStepResponse; /** * The time the step has ended. */ endTime: string; /** * Instantiating migrated VM step. */ instantiatingMigratedVm: outputs.vmmigration.v1alpha1.InstantiatingMigratedVMStepResponse; /** * Preparing VM disks step. */ preparingVmDisks: outputs.vmmigration.v1alpha1.PreparingVMDisksStepResponse; /** * The time the step has started. */ startTime: string; } /** * ComputeEngineDisksTargetDefaults is a collection of details for creating Persistent Disks in a target Compute Engine project. */ interface ComputeEngineDisksTargetDefaultsResponse { /** * The details of each Persistent Disk to create. */ disks: outputs.vmmigration.v1alpha1.PersistentDiskDefaultsResponse[]; /** * Details of the disk only migration target. */ disksTargetDefaults: outputs.vmmigration.v1alpha1.DisksMigrationDisksTargetDefaultsResponse; /** * The full path of the resource of type TargetProject which represents the Compute Engine project in which to create the Persistent Disks. */ targetProject: string; /** * Details of the VM migration target. */ vmTargetDefaults: outputs.vmmigration.v1alpha1.DisksMigrationVmTargetDefaultsResponse; /** * The zone in which to create the Persistent Disks. */ zone: string; } /** * ComputeEngineDisksTargetDetails is a collection of created Persistent Disks details. */ interface ComputeEngineDisksTargetDetailsResponse { /** * The details of each created Persistent Disk. */ disks: outputs.vmmigration.v1alpha1.PersistentDiskResponse[]; /** * Details of the disks-only migration target. */ disksTargetDetails: outputs.vmmigration.v1alpha1.DisksMigrationDisksTargetDetailsResponse; /** * Details for the VM the migrated data disks are attached to. */ vmTargetDetails: outputs.vmmigration.v1alpha1.DisksMigrationVmTargetDetailsResponse; } /** * ComputeEngineTargetDefaults is a collection of details for creating a VM in a target Compute Engine project. */ interface ComputeEngineTargetDefaultsResponse { /** * Additional licenses to assign to the VM. */ additionalLicenses: string[]; /** * The OS license returned from the adaptation module report. */ appliedLicense: outputs.vmmigration.v1alpha1.AppliedLicenseResponse; /** * The VM Boot Option, as set in the source VM. */ bootOption: string; /** * Compute instance scheduling information (if empty default is used). */ computeScheduling: outputs.vmmigration.v1alpha1.ComputeSchedulingResponse; /** * The disk type to use in the VM. */ diskType: string; /** * Optional. Immutable. The encryption to apply to the VM disks. */ encryption: outputs.vmmigration.v1alpha1.EncryptionResponse; /** * The hostname to assign to the VM. */ hostname: string; /** * A map of labels to associate with the VM. */ labels: { [key: string]: string; }; /** * The license type to use in OS adaptation. */ licenseType: string; /** * The machine type to create the VM with. */ machineType: string; /** * The machine type series to create the VM with. */ machineTypeSeries: string; /** * The metadata key/value pairs to assign to the VM. */ metadata: { [key: string]: string; }; /** * List of NICs connected to this VM. */ networkInterfaces: outputs.vmmigration.v1alpha1.NetworkInterfaceResponse[]; /** * A list of network tags to associate with the VM. */ networkTags: string[]; /** * Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI. */ secureBoot: boolean; /** * The service account to associate the VM with. */ serviceAccount: string; /** * The full path of the resource of type TargetProject which represents the Compute Engine project in which to create this VM. */ targetProject: string; /** * The name of the VM to create. */ vmName: string; /** * The zone in which to create the VM. */ zone: string; } /** * ComputeEngineTargetDetails is a collection of details for creating a VM in a target Compute Engine project. */ interface ComputeEngineTargetDetailsResponse { /** * Additional licenses to assign to the VM. */ additionalLicenses: string[]; /** * The OS license returned from the adaptation module report. */ appliedLicense: outputs.vmmigration.v1alpha1.AppliedLicenseResponse; /** * The VM Boot Option, as set in the source VM. */ bootOption: string; /** * Compute instance scheduling information (if empty default is used). */ computeScheduling: outputs.vmmigration.v1alpha1.ComputeSchedulingResponse; /** * The disk type to use in the VM. */ diskType: string; /** * Optional. The encryption to apply to the VM disks. */ encryption: outputs.vmmigration.v1alpha1.EncryptionResponse; /** * The hostname to assign to the VM. */ hostname: string; /** * A map of labels to associate with the VM. */ labels: { [key: string]: string; }; /** * The license type to use in OS adaptation. */ licenseType: string; /** * The machine type to create the VM with. */ machineType: string; /** * The machine type series to create the VM with. */ machineTypeSeries: string; /** * The metadata key/value pairs to assign to the VM. */ metadata: { [key: string]: string; }; /** * List of NICs connected to this VM. */ networkInterfaces: outputs.vmmigration.v1alpha1.NetworkInterfaceResponse[]; /** * A list of network tags to associate with the VM. */ networkTags: string[]; /** * The Google Cloud target project ID or project name. */ project: string; /** * Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI. */ secureBoot: boolean; /** * The service account to associate the VM with. */ serviceAccount: string; /** * The name of the VM to create. */ vmName: string; /** * The zone in which to create the VM. */ zone: string; } /** * Scheduling information for VM on maintenance/restart behaviour and node allocation in sole tenant nodes. */ interface ComputeSchedulingResponse { automaticRestart: boolean; /** * The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. Ignored if no node_affinites are configured. */ minNodeCpus: number; /** * A set of node affinity and anti-affinity configurations for sole tenant nodes. */ nodeAffinities: outputs.vmmigration.v1alpha1.SchedulingNodeAffinityResponse[]; /** * How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance. */ onHostMaintenance: string; /** * Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user). This configuration is identical to `automaticRestart` field in Compute Engine create instance under scheduling. It was changed to an enum (instead of a boolean) to match the default value in Compute Engine which is automatic restart. */ restartType: string; } /** * CutoverForecast holds information about future CutoverJobs of a MigratingVm. */ interface CutoverForecastResponse { /** * Estimation of the CutoverJob duration. */ estimatedCutoverJobDuration: string; } /** * CutoverJob message describes a cutover of a migrating VM. The CutoverJob is the operation of shutting down the VM, creating a snapshot and clonning the VM using the replicated snapshot. */ interface CutoverJobResponse { /** * Details of the target Persistent Disks in Compute Engine. */ computeEngineDisksTargetDetails: outputs.vmmigration.v1alpha1.ComputeEngineDisksTargetDetailsResponse; /** * Details of the target VM in Compute Engine. */ computeEngineTargetDetails: outputs.vmmigration.v1alpha1.ComputeEngineTargetDetailsResponse; /** * Details of the VM in Compute Engine. Deprecated: Use compute_engine_target_details instead. * * @deprecated Output only. Details of the VM in Compute Engine. Deprecated: Use compute_engine_target_details instead. */ computeEngineVmDetails: outputs.vmmigration.v1alpha1.TargetVMDetailsResponse; /** * The time the cutover job was created (as an API call, not when it was actually created in the target). */ createTime: string; /** * The time the cutover job had finished. */ endTime: string; /** * Provides details for the errors that led to the Cutover Job's state. */ error: outputs.vmmigration.v1alpha1.StatusResponse; /** * The name of the cutover job. */ name: string; /** * The current progress in percentage of the cutover job. */ progress: number; /** * The current progress in percentage of the cutover job. */ progressPercent: number; /** * State of the cutover job. */ state: string; /** * A message providing possible extra details about the current state. */ stateMessage: string; /** * The time the state was last updated. */ stateTime: string; /** * The cutover steps list representing its progress. */ steps: outputs.vmmigration.v1alpha1.CutoverStepResponse[]; /** * Details of the VM to create as the target of this cutover job. Deprecated: Use compute_engine_target_details instead. * * @deprecated Output only. Details of the VM to create as the target of this cutover job. Deprecated: Use compute_engine_target_details instead. */ targetDetails: outputs.vmmigration.v1alpha1.TargetVMDetailsResponse; } /** * CutoverStep holds information about the cutover step progress. */ interface CutoverStepResponse { /** * The time the step has ended. */ endTime: string; /** * Final sync step. */ finalSync: outputs.vmmigration.v1alpha1.ReplicationCycleResponse; /** * Instantiating migrated VM step. */ instantiatingMigratedVm: outputs.vmmigration.v1alpha1.InstantiatingMigratedVMStepResponse; /** * Preparing VM disks step. */ preparingVmDisks: outputs.vmmigration.v1alpha1.PreparingVMDisksStepResponse; /** * A replication cycle prior cutover step. */ previousReplicationCycle: outputs.vmmigration.v1alpha1.ReplicationCycleResponse; /** * Shutting down VM step. */ shuttingDownSourceVm: outputs.vmmigration.v1alpha1.ShuttingDownSourceVMStepResponse; /** * The time the step has started. */ startTime: string; } /** * CycleStep holds information about a step progress. */ interface CycleStepResponse { /** * The time the cycle step has ended. */ endTime: string; /** * Initializing replication step. */ initializingReplication: outputs.vmmigration.v1alpha1.InitializingReplicationStepResponse; /** * Post processing step. */ postProcessing: outputs.vmmigration.v1alpha1.PostProcessingStepResponse; /** * Replicating step. */ replicating: outputs.vmmigration.v1alpha1.ReplicatingStepResponse; /** * The time the cycle step has started. */ startTime: string; } /** * Contains details about the image source used to create the disk. */ interface DiskImageDefaultsResponse { /** * The Image resource used when creating the disk. */ sourceImage: string; } /** * Details for a disk only migration. */ interface DisksMigrationDisksTargetDefaultsResponse { } /** * Details for a disks-only migration. */ interface DisksMigrationDisksTargetDetailsResponse { } /** * Details for creation of a VM that migrated data disks will be attached to. */ interface DisksMigrationVmTargetDefaultsResponse { /** * Optional. Additional licenses to assign to the VM. */ additionalLicenses: string[]; /** * Optional. Details of the boot disk of the VM. */ bootDiskDefaults: outputs.vmmigration.v1alpha1.BootDiskDefaultsResponse; /** * Optional. Compute instance scheduling information (if empty default is used). */ computeScheduling: outputs.vmmigration.v1alpha1.ComputeSchedulingResponse; /** * Optional. The encryption to apply to the VM. */ encryption: outputs.vmmigration.v1alpha1.EncryptionResponse; /** * Optional. The hostname to assign to the VM. */ hostname: string; /** * Optional. A map of labels to associate with the VM. */ labels: { [key: string]: string; }; /** * The machine type to create the VM with. */ machineType: string; /** * Optional. The machine type series to create the VM with. For presentation only. */ machineTypeSeries: string; /** * Optional. The metadata key/value pairs to assign to the VM. */ metadata: { [key: string]: string; }; /** * Optional. NICs to attach to the VM. */ networkInterfaces: outputs.vmmigration.v1alpha1.NetworkInterfaceResponse[]; /** * Optional. A list of network tags to associate with the VM. */ networkTags: string[]; /** * Optional. Defines whether the instance has Secure Boot enabled. This can be set to true only if the VM boot option is EFI. */ secureBoot: boolean; /** * Optional. The service account to associate the VM with. */ serviceAccount: string; /** * The name of the VM to create. */ vmName: string; } /** * Details for the VM created VM as part of disks migration. */ interface DisksMigrationVmTargetDetailsResponse { /** * The URI of the Compute Engine VM. */ vmUri: string; } /** * Encryption message describes the details of the applied encryption. */ interface EncryptionResponse { /** * The name of the encryption key that is stored in Google Cloud KMS. */ kmsKey: string; } /** * InitializingReplicationStep contains specific step details. */ interface InitializingReplicationStepResponse { } /** * InstantiatingMigratedVMStep contains specific step details. */ interface InstantiatingMigratedVMStepResponse { } /** * Describes a URL link. */ interface LinkResponse { /** * Describes what the link offers. */ description: string; /** * The URL of the link. */ url: string; } /** * Provides a localized error message that is safe to return to the user which can be attached to an RPC error. */ interface LocalizedMessageResponse { /** * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" */ locale: string; /** * The localized error message in the above locale. */ message: string; } /** * Represents migration resource warning information that can be used with google.rpc.Status message. MigrationWarning is used to present the user with warning information in migration operations. */ interface MigrationWarningResponse { /** * Suggested action for solving the warning. */ actionItem: outputs.vmmigration.v1alpha1.LocalizedMessageResponse; /** * The warning code. */ code: string; /** * URL(s) pointing to additional information on handling the current warning. */ helpLinks: outputs.vmmigration.v1alpha1.LinkResponse[]; /** * The localized warning message. */ warningMessage: outputs.vmmigration.v1alpha1.LocalizedMessageResponse; /** * The time the warning occurred. */ warningTime: string; } /** * NetworkInterface represents a NIC of a VM. */ interface NetworkInterfaceResponse { /** * The external IP to define in the NIC. */ externalIp: string; /** * The internal IP to define in the NIC. The formats accepted are: `ephemeral` \ ipv4 address \ a named address resource full path. */ internalIp: string; /** * The network to connect the NIC to. */ network: string; /** * The subnetwork to connect the NIC to. */ subnetwork: string; } /** * Details for creation of a Persistent Disk. */ interface PersistentDiskDefaultsResponse { /** * A map of labels to associate with the Persistent Disk. */ additionalLabels: { [key: string]: string; }; /** * Optional. The name of the Persistent Disk to create. */ diskName: string; /** * The disk type to use. */ diskType: string; /** * Optional. The encryption to apply to the disk. */ encryption: outputs.vmmigration.v1alpha1.EncryptionResponse; /** * The ordinal number of the source VM disk. */ sourceDiskNumber: number; /** * Optional. Details for attachment of the disk to a VM. Used when the disk is set to be attacked to a target VM. */ vmAttachmentDetails: outputs.vmmigration.v1alpha1.VmAttachmentDetailsResponse; } /** * Details of a created Persistent Disk. */ interface PersistentDiskResponse { /** * The URI of the Persistent Disk. */ diskUri: string; /** * The ordinal number of the source VM disk. */ sourceDiskNumber: number; } /** * PostProcessingStep contains specific step details. */ interface PostProcessingStepResponse { } /** * PreparingVMDisksStep contains specific step details. */ interface PreparingVMDisksStepResponse { } /** * ReplicatingStep contains specific step details. */ interface ReplicatingStepResponse { /** * The source disks replication rate for the last 30 minutes in bytes per second. */ lastThirtyMinutesAverageBytesPerSecond: string; /** * The source disks replication rate for the last 2 minutes in bytes per second. */ lastTwoMinutesAverageBytesPerSecond: string; /** * Replicated bytes in the step. */ replicatedBytes: string; /** * Total bytes to be handled in the step. */ totalBytes: string; } /** * ReplicationCycle contains information about the current replication cycle status. */ interface ReplicationCycleResponse { /** * The cycle's ordinal number. */ cycleNumber: number; /** * The time the replication cycle has ended. */ endTime: string; /** * Provides details on the state of the cycle in case of an error. */ error: outputs.vmmigration.v1alpha1.StatusResponse; /** * The identifier of the ReplicationCycle. */ name: string; /** * The current progress in percentage of this cycle. */ progress: number; /** * The current progress in percentage of this cycle. Was replaced by 'steps' field, which breaks down the cycle progression more accurately. */ progressPercent: number; /** * The time the replication cycle has started. */ startTime: string; /** * State of the ReplicationCycle. */ state: string; /** * The cycle's steps list representing its progress. */ steps: outputs.vmmigration.v1alpha1.CycleStepResponse[]; /** * The accumulated duration the replication cycle was paused. */ totalPauseDuration: string; /** * Warnings that occurred during the cycle. */ warnings: outputs.vmmigration.v1alpha1.MigrationWarningResponse[]; } /** * ReplicationSync contain information about the last replica sync to the cloud. */ interface ReplicationSyncResponse { /** * The most updated snapshot created time in the source that finished replication. */ lastSyncTime: string; } /** * A policy for scheduling replications. */ interface SchedulePolicyResponse { /** * The idle duration between replication stages. */ idleDuration: string; /** * A flag to indicate whether to skip OS adaptation during the replication sync. OS adaptation is a process where the VM's operating system undergoes changes and adaptations to fully function on Compute Engine. */ skipOsAdaptation: boolean; } /** * Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. Based on https://cloud.google.com/compute/docs/reference/rest/v1/instances/setScheduling */ interface SchedulingNodeAffinityResponse { /** * The label key of Node resource to reference. */ key: string; /** * The operator to use for the node resources specified in the `values` parameter. */ operator: string; /** * Corresponds to the label values of Node resource. */ values: string[]; } /** * ShuttingDownSourceVMStep contains specific step details. */ interface ShuttingDownSourceVMStepResponse { } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } /** * Tag is an AWS tag representation. */ interface TagResponse { /** * Key of tag. */ key: string; /** * Value of tag. */ value: string; } /** * TargetVMDetails is a collection of details for creating a VM in a target Compute Engine project. */ interface TargetVMDetailsResponse { /** * The OS license returned from the adaptation module report. */ appliedLicense: outputs.vmmigration.v1alpha1.AppliedLicenseResponse; /** * The VM Boot Option, as set in the source VM. */ bootOption: string; /** * Compute instance scheduling information (if empty default is used). */ computeScheduling: outputs.vmmigration.v1alpha1.ComputeSchedulingResponse; /** * The disk type to use in the VM. */ diskType: string; /** * The external IP to define in the VM. */ externalIp: string; /** * The internal IP to define in the VM. The formats accepted are: `ephemeral` \ ipv4 address \ a named address resource full path. */ internalIp: string; /** * A map of labels to associate with the VM. */ labels: { [key: string]: string; }; /** * The license type to use in OS adaptation. */ licenseType: string; /** * The machine type to create the VM with. */ machineType: string; /** * The machine type series to create the VM with. */ machineTypeSeries: string; /** * The metadata key/value pairs to assign to the VM. */ metadata: { [key: string]: string; }; /** * The name of the VM to create. */ name: string; /** * The network to connect the VM to. */ network: string; /** * List of NICs connected to this VM. */ networkInterfaces: outputs.vmmigration.v1alpha1.NetworkInterfaceResponse[]; /** * A list of network tags to associate with the VM. */ networkTags: string[]; /** * The project in which to create the VM. */ project: string; /** * Defines whether the instance has Secure Boot enabled. This can be set to true only if the vm boot option is EFI. */ secureBoot: boolean; /** * The service account to associate the VM with. */ serviceAccount: string; /** * The subnetwork to connect the VM to. */ subnetwork: string; /** * The full path of the resource of type TargetProject which represents the Compute Engine project in which to create this VM. */ targetProject: string; /** * The zone in which to create the VM. */ zone: string; } /** * UpgradeStatus contains information about upgradeAppliance operation. */ interface UpgradeStatusResponse { /** * Provides details on the state of the upgrade operation in case of an error. */ error: outputs.vmmigration.v1alpha1.StatusResponse; /** * The version from which we upgraded. */ previousVersion: string; /** * The time the operation was started. */ startTime: string; /** * The state of the upgradeAppliance operation. */ state: string; /** * The version to upgrade to. */ version: string; } /** * Details for attachment of the disk to a VM. */ interface VmAttachmentDetailsResponse { /** * Optional. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. */ deviceName: string; } /** * Migrating VM source information about the VM capabilities needed for some Compute Engine features. */ interface VmCapabilitiesResponse { /** * The last time OS capabilities list was updated. */ lastOsCapabilitiesUpdateTime: string; /** * Unordered list. List of certain VM OS capabilities needed for some Compute Engine features. */ osCapabilities: string[]; } /** * Utilization information of a single VM. */ interface VmUtilizationInfoResponse { /** * Utilization metrics for this VM. */ utilization: outputs.vmmigration.v1alpha1.VmUtilizationMetricsResponse; /** * The VM's ID in the source. */ vmId: string; /** * The description of the VM in a Source of type Vmware. */ vmwareVmDetails: outputs.vmmigration.v1alpha1.VmwareVmDetailsResponse; } /** * Utilization metrics values for a single VM. */ interface VmUtilizationMetricsResponse { /** * Average CPU usage, percent. */ cpuAverage: number; /** * Average CPU usage, percent. */ cpuAveragePercent: number; /** * Max CPU usage, percent. */ cpuMax: number; /** * Max CPU usage, percent. */ cpuMaxPercent: number; /** * Average disk IO rate, in kilobytes per second. */ diskIoRateAverage: string; /** * Average disk IO rate, in kilobytes per second. */ diskIoRateAverageKbps: string; /** * Max disk IO rate, in kilobytes per second. */ diskIoRateMax: string; /** * Max disk IO rate, in kilobytes per second. */ diskIoRateMaxKbps: string; /** * Average memory usage, percent. */ memoryAverage: number; /** * Average memory usage, percent. */ memoryAveragePercent: number; /** * Max memory usage, percent. */ memoryMax: number; /** * Max memory usage, percent. */ memoryMaxPercent: number; /** * Average network throughput (combined transmit-rates and receive-rates), in kilobytes per second. */ networkThroughputAverage: string; /** * Average network throughput (combined transmit-rates and receive-rates), in kilobytes per second. */ networkThroughputAverageKbps: string; /** * Max network throughput (combined transmit-rates and receive-rates), in kilobytes per second. */ networkThroughputMax: string; /** * Max network throughput (combined transmit-rates and receive-rates), in kilobytes per second. */ networkThroughputMaxKbps: string; } /** * The details of a Vmware VM disk. */ interface VmwareDiskDetailsResponse { /** * The ordinal number of the disk. */ diskNumber: number; /** * The disk label. */ label: string; /** * Size in GB. */ sizeGb: string; } /** * VmwareSourceDetails message describes a specific source details for the vmware source type. */ interface VmwareSourceDetailsResponse { /** * Input only. The credentials password. This is write only and can not be read in a GET operation. */ password: string; /** * The hostname of the vcenter. */ resolvedVcenterHost: string; /** * The thumbprint representing the certificate for the vcenter. */ thumbprint: string; /** * The credentials username. */ username: string; /** * The ip address of the vcenter this Source represents. */ vcenterIp: string; } /** * Represent the source Vmware VM details. */ interface VmwareSourceVmDetailsResponse { /** * The total size of the disks being migrated in bytes. */ committedStorageBytes: string; /** * The disks attached to the source VM. */ disks: outputs.vmmigration.v1alpha1.VmwareDiskDetailsResponse[]; /** * The firmware type of the source VM. */ firmware: string; /** * Information about VM capabilities needed for some Compute Engine features. */ vmCapabilitiesInfo: outputs.vmmigration.v1alpha1.VmCapabilitiesResponse; } /** * VmwareVmDetails describes a VM in vCenter. */ interface VmwareVmDetailsResponse { /** * The VM Boot Option. */ bootOption: string; /** * The total size of the storage allocated to the VM in MB. */ committedStorage: string; /** * The total size of the storage allocated to the VM in MB. */ committedStorageMb: string; /** * The number of cpus in the VM. */ cpuCount: number; /** * The descriptive name of the vCenter's datacenter this VM is contained in. */ datacenterDescription: string; /** * The id of the vCenter's datacenter this VM is contained in. */ datacenterId: string; /** * The number of disks the VM has. */ diskCount: number; /** * The display name of the VM. Note that this is not necessarily unique. */ displayName: string; /** * The VM's OS. See for example https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html for types of strings this might hold. */ guestDescription: string; /** * The size of the memory of the VM in MB. */ memoryMb: number; /** * The power state of the VM at the moment list was taken. */ powerState: string; /** * The unique identifier of the VM in vCenter. */ uuid: string; /** * The VM's id in the source (note that this is not the MigratingVm's id). This is the moref id of the VM. */ vmId: string; } } } export declare namespace vmwareengine { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.vmwareengine.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.vmwareengine.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * Details about a HCX Cloud Manager appliance. */ interface HcxResponse { /** * Fully qualified domain name of the appliance. */ fqdn: string; /** * Internal IP address of the appliance. */ internalIp: string; /** * The state of the appliance. */ state: string; /** * Version of the appliance. */ version: string; } /** * An IP range provided in any one of the supported formats. */ interface IpRangeResponse { /** * The name of an `ExternalAddress` resource. The external address must have been reserved in the scope of this external access rule's parent network policy. Provide the external address name in the form of `projects/{project}/locations/{location}/privateClouds/{private_cloud}/externalAddresses/{external_address}`. For example: `projects/my-project/locations/us-central1-a/privateClouds/my-cloud/externalAddresses/my-address`. */ externalAddress: string; /** * A single IP address. For example: `10.0.0.5`. */ ipAddress: string; /** * An IP address range in the CIDR format. For example: `10.0.0.0/24`. */ ipAddressRange: string; } /** * Management cluster configuration. */ interface ManagementClusterResponse { /** * The user-provided identifier of the new `Cluster`. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5) */ clusterId: string; /** * The map of cluster node types in this cluster, where the key is canonical identifier of the node type (corresponds to the `NodeType`). */ nodeTypeConfigs: { [key: string]: string; }; /** * Optional. Configuration of a stretched cluster. Required for STRETCHED private clouds. */ stretchedClusterConfig: outputs.vmwareengine.v1.StretchedClusterConfigResponse; } /** * Network configuration in the consumer project with which the peering has to be done. */ interface NetworkConfigResponse { /** * DNS Server IP of the Private Cloud. All DNS queries can be forwarded to this address for name resolution of Private Cloud's management entities like vCenter, NSX-T Manager and ESXi hosts. */ dnsServerIp: string; /** * Management CIDR used by VMware management appliances. */ managementCidr: string; /** * The IP address layout version of the management IP address range. Possible versions include: * `managementIpAddressLayoutVersion=1`: Indicates the legacy IP address layout used by some existing private clouds. This is no longer supported for new private clouds as it does not support all features. * `managementIpAddressLayoutVersion=2`: Indicates the latest IP address layout used by all newly created private clouds. This version supports all current features. */ managementIpAddressLayoutVersion: number; /** * Optional. The relative resource name of the VMware Engine network attached to the private cloud. Specify the name in the following form: `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` where `{project}` can either be a project number or a project ID. */ vmwareEngineNetwork: string; /** * The canonical name of the VMware Engine network in the form: `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}` */ vmwareEngineNetworkCanonical: string; } /** * Represents a network service that is managed by a `NetworkPolicy` resource. A network service provides a way to control an aspect of external access to VMware workloads. For example, whether the VMware workloads in the private clouds governed by a network policy can access or be accessed from the internet. */ interface NetworkServiceResponse { /** * True if the service is enabled; false otherwise. */ enabled: boolean; /** * State of the service. New values may be added to this enum when appropriate. */ state: string; } /** * Details about a NSX Manager appliance. */ interface NsxResponse { /** * Fully qualified domain name of the appliance. */ fqdn: string; /** * Internal IP address of the appliance. */ internalIp: string; /** * The state of the appliance. */ state: string; /** * Version of the appliance. */ version: string; } /** * Configuration of a stretched cluster. */ interface StretchedClusterConfigResponse { /** * Zone that will remain operational when connection between the two zones is lost. Specify the resource name of a zone that belongs to the region of the private cloud. For example: `projects/{project}/locations/europe-west3-a` where `{project}` can either be a project number or a project ID. */ preferredLocation: string; /** * Additional zone for a higher level of availability and load balancing. Specify the resource name of a zone that belongs to the region of the private cloud. For example: `projects/{project}/locations/europe-west3-b` where `{project}` can either be a project number or a project ID. */ secondaryLocation: string; } /** * Details about a vCenter Server management appliance. */ interface VcenterResponse { /** * Fully qualified domain name of the appliance. */ fqdn: string; /** * Internal IP address of the appliance. */ internalIp: string; /** * The state of the appliance. */ state: string; /** * Version of the appliance. */ version: string; } /** * Represents a VMware Engine VPC network that is managed by a VMware Engine network resource. */ interface VpcNetworkResponse { /** * The relative resource name of the service VPC network this VMware Engine network is attached to. For example: `projects/123123/global/networks/my-network` */ network: string; /** * Type of VPC network (INTRANET, INTERNET, or GOOGLE_CLOUD) */ type: string; } } } export declare namespace vpcaccess { namespace v1 { /** * The subnet in which to house the connector */ interface SubnetResponse { /** * Subnet name (relative, not fully qualified). E.g. if the full subnet selfLink is https://compute.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetName} the correct input for this field would be {subnetName} */ name: string; /** * Project in which the subnet exists. If not set, this project is assumed to be the project for which the connector create request was issued. */ project: string; } } namespace v1beta1 { /** * The subnet in which to house the connector */ interface SubnetResponse { /** * Subnet name (relative, not fully qualified). E.g. if the full subnet selfLink is https://compute.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetName} the correct input for this field would be {subnetName} */ name: string; /** * Project in which the subnet exists. If not set, this project is assumed to be the project for which the connector create request was issued. */ project: string; } } } export declare namespace websecurityscanner { namespace v1 { /** * Scan authentication configuration. */ interface AuthenticationResponse { /** * Authentication using a custom account. */ customAccount: outputs.websecurityscanner.v1.CustomAccountResponse; /** * Authentication using a Google account. */ googleAccount: outputs.websecurityscanner.v1.GoogleAccountResponse; /** * Authentication using Identity-Aware-Proxy (IAP). */ iapCredential: outputs.websecurityscanner.v1.IapCredentialResponse; } /** * Describes authentication configuration that uses a custom account. */ interface CustomAccountResponse { /** * The login form URL of the website. */ loginUrl: string; /** * Input only. The password of the custom account. The credential is stored encrypted and not returned in any response nor included in audit logs. */ password: string; /** * The user name of the custom account. */ username: string; } /** * Describes authentication configuration that uses a Google account. */ interface GoogleAccountResponse { /** * Input only. The password of the Google account. The credential is stored encrypted and not returned in any response nor included in audit logs. */ password: string; /** * The user name of the Google account. */ username: string; } /** * Describes authentication configuration for Identity-Aware-Proxy (IAP). */ interface IapCredentialResponse { /** * Authentication configuration when Web-Security-Scanner service account is added in Identity-Aware-Proxy (IAP) access policies. */ iapTestServiceAccountInfo: outputs.websecurityscanner.v1.IapTestServiceAccountInfoResponse; } /** * Describes authentication configuration when Web-Security-Scanner service account is added in Identity-Aware-Proxy (IAP) access policies. */ interface IapTestServiceAccountInfoResponse { /** * Describes OAuth2 client id of resources protected by Identity-Aware-Proxy (IAP). */ targetAudienceClientId: string; } /** * Scan schedule configuration. */ interface ScheduleResponse { /** * The duration of time between executions in days. */ intervalDurationDays: number; /** * A timestamp indicates when the next run will be scheduled. The value is refreshed by the server after each run. If unspecified, it will default to current server time, which means the scan will be scheduled to start immediately. */ scheduleTime: string; } } namespace v1alpha { /** * Scan authentication configuration. */ interface AuthenticationResponse { /** * Authentication using a custom account. */ customAccount: outputs.websecurityscanner.v1alpha.CustomAccountResponse; /** * Authentication using a Google account. */ googleAccount: outputs.websecurityscanner.v1alpha.GoogleAccountResponse; } /** * Describes authentication configuration that uses a custom account. */ interface CustomAccountResponse { /** * The login form URL of the website. */ loginUrl: string; /** * Input only. The password of the custom account. The credential is stored encrypted and not returned in any response nor included in audit logs. */ password: string; /** * The user name of the custom account. */ username: string; } /** * Describes authentication configuration that uses a Google account. */ interface GoogleAccountResponse { /** * Input only. The password of the Google account. The credential is stored encrypted and not returned in any response nor included in audit logs. */ password: string; /** * The user name of the Google account. */ username: string; } /** * A ScanRun is a output-only resource representing an actual run of the scan. */ interface ScanRunResponse { /** * The time at which the ScanRun reached termination state - that the ScanRun is either finished or stopped by user. */ endTime: string; /** * The execution state of the ScanRun. */ executionState: string; /** * Whether the scan run has found any vulnerabilities. */ hasVulnerabilities: boolean; /** * The resource name of the ScanRun. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'. The ScanRun IDs are generated by the system. */ name: string; /** * The percentage of total completion ranging from 0 to 100. If the scan is in queue, the value is 0. If the scan is running, the value ranges from 0 to 100. If the scan is finished, the value is 100. */ progressPercent: number; /** * The result state of the ScanRun. This field is only available after the execution state reaches "FINISHED". */ resultState: string; /** * The time at which the ScanRun started. */ startTime: string; /** * The number of URLs crawled during this ScanRun. If the scan is in progress, the value represents the number of URLs crawled up to now. */ urlsCrawledCount: string; /** * The number of URLs tested during this ScanRun. If the scan is in progress, the value represents the number of URLs tested up to now. The number of URLs tested is usually larger than the number URLS crawled because typically a crawled URL is tested with multiple test payloads. */ urlsTestedCount: string; } /** * Scan schedule configuration. */ interface ScheduleResponse { /** * The duration of time between executions in days. */ intervalDurationDays: number; /** * A timestamp indicates when the next run will be scheduled. The value is refreshed by the server after each run. If unspecified, it will default to current server time, which means the scan will be scheduled to start immediately. */ scheduleTime: string; } } namespace v1beta { /** * Scan authentication configuration. */ interface AuthenticationResponse { /** * Authentication using a custom account. */ customAccount: outputs.websecurityscanner.v1beta.CustomAccountResponse; /** * Authentication using a Google account. */ googleAccount: outputs.websecurityscanner.v1beta.GoogleAccountResponse; /** * Authentication using Identity-Aware-Proxy (IAP). */ iapCredential: outputs.websecurityscanner.v1beta.IapCredentialResponse; } /** * Describes authentication configuration that uses a custom account. */ interface CustomAccountResponse { /** * The login form URL of the website. */ loginUrl: string; /** * Input only. The password of the custom account. The credential is stored encrypted and not returned in any response nor included in audit logs. */ password: string; /** * The user name of the custom account. */ username: string; } /** * Describes authentication configuration that uses a Google account. */ interface GoogleAccountResponse { /** * Input only. The password of the Google account. The credential is stored encrypted and not returned in any response nor included in audit logs. */ password: string; /** * The user name of the Google account. */ username: string; } /** * Describes authentication configuration for Identity-Aware-Proxy (IAP). */ interface IapCredentialResponse { /** * Authentication configuration when Web-Security-Scanner service account is added in Identity-Aware-Proxy (IAP) access policies. */ iapTestServiceAccountInfo: outputs.websecurityscanner.v1beta.IapTestServiceAccountInfoResponse; } /** * Describes authentication configuration when Web-Security-Scanner service account is added in Identity-Aware-Proxy (IAP) access policies. */ interface IapTestServiceAccountInfoResponse { /** * Describes OAuth2 Client ID of resources protected by Identity-Aware-Proxy(IAP). */ targetAudienceClientId: string; } /** * Defines a custom error message used by CreateScanConfig and UpdateScanConfig APIs when scan configuration validation fails. It is also reported as part of a ScanRunErrorTrace message if scan validation fails due to a scan configuration error. */ interface ScanConfigErrorResponse { /** * Indicates the reason code for a configuration failure. */ code: string; /** * Indicates the full name of the ScanConfig field that triggers this error, for example "scan_config.max_qps". This field is provided for troubleshooting purposes only and its actual value can change in the future. */ fieldName: string; } /** * Output only. Defines an error trace message for a ScanRun. */ interface ScanRunErrorTraceResponse { /** * Indicates the error reason code. */ code: string; /** * If the scan encounters TOO_MANY_HTTP_ERRORS, this field indicates the most common HTTP error code, if such is available. For example, if this code is 404, the scan has encountered too many NOT_FOUND responses. */ mostCommonHttpErrorCode: number; /** * If the scan encounters SCAN_CONFIG_ISSUE error, this field has the error message encountered during scan configuration validation that is performed before each scan run. */ scanConfigError: outputs.websecurityscanner.v1beta.ScanConfigErrorResponse; } /** * A ScanRun is a output-only resource representing an actual run of the scan. Next id: 12 */ interface ScanRunResponse { /** * The time at which the ScanRun reached termination state - that the ScanRun is either finished or stopped by user. */ endTime: string; /** * If result_state is an ERROR, this field provides the primary reason for scan's termination and more details, if such are available. */ errorTrace: outputs.websecurityscanner.v1beta.ScanRunErrorTraceResponse; /** * The execution state of the ScanRun. */ executionState: string; /** * Whether the scan run has found any vulnerabilities. */ hasVulnerabilities: boolean; /** * The resource name of the ScanRun. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'. The ScanRun IDs are generated by the system. */ name: string; /** * The percentage of total completion ranging from 0 to 100. If the scan is in queue, the value is 0. If the scan is running, the value ranges from 0 to 100. If the scan is finished, the value is 100. */ progressPercent: number; /** * The result state of the ScanRun. This field is only available after the execution state reaches "FINISHED". */ resultState: string; /** * The time at which the ScanRun started. */ startTime: string; /** * The number of URLs crawled during this ScanRun. If the scan is in progress, the value represents the number of URLs crawled up to now. */ urlsCrawledCount: string; /** * The number of URLs tested during this ScanRun. If the scan is in progress, the value represents the number of URLs tested up to now. The number of URLs tested is usually larger than the number URLS crawled because typically a crawled URL is tested with multiple test payloads. */ urlsTestedCount: string; /** * A list of warnings, if such are encountered during this scan run. */ warningTraces: outputs.websecurityscanner.v1beta.ScanRunWarningTraceResponse[]; } /** * Output only. Defines a warning trace message for ScanRun. Warning traces provide customers with useful information that helps make the scanning process more effective. */ interface ScanRunWarningTraceResponse { /** * Indicates the warning code. */ code: string; } /** * Scan schedule configuration. */ interface ScheduleResponse { /** * The duration of time between executions in days. */ intervalDurationDays: number; /** * A timestamp indicates when the next run will be scheduled. The value is refreshed by the server after each run. If unspecified, it will default to current server time, which means the scan will be scheduled to start immediately. */ scheduleTime: string; } } } export declare namespace workflowexecutions { namespace v1 { /** * Error describes why the execution was abnormally terminated. */ interface ErrorResponse { /** * Human-readable stack trace string. */ context: string; /** * Error message and data returned represented as a JSON string. */ payload: string; /** * Stack trace with detailed information of where error was generated. */ stackTrace: outputs.workflowexecutions.v1.StackTraceResponse; } /** * Position contains source position information about the stack trace element such as line number, column number and length of the code block in bytes. */ interface PositionResponse { /** * The source code column position (of the line) the current instruction was generated from. */ column: string; /** * The number of bytes of source code making up this stack trace element. */ length: string; /** * The source code line number the current instruction was generated from. */ line: string; } /** * A single stack element (frame) where an error occurred. */ interface StackTraceElementResponse { /** * The source position information of the stack trace element. */ position: outputs.workflowexecutions.v1.PositionResponse; /** * The routine where the error occurred. */ routine: string; /** * The step the error occurred at. */ step: string; } /** * A collection of stack elements (frames) where an error occurred. */ interface StackTraceResponse { /** * An array of stack elements. */ elements: outputs.workflowexecutions.v1.StackTraceElementResponse[]; } /** * Describes an error related to the current state of the Execution resource. */ interface StateErrorResponse { /** * Provides specifics about the error. */ details: string; /** * The type of this state error. */ type: string; } /** * Represents the current status of this execution. */ interface StatusResponse { /** * A list of currently executing or last executed step names for the workflow execution currently running. If the workflow has succeeded or failed, this is the last attempted or executed step. Presently, if the current step is inside a subworkflow, the list only includes that step. In the future, the list will contain items for each step in the call stack, starting with the outermost step in the `main` subworkflow, and ending with the most deeply nested step. */ currentSteps: outputs.workflowexecutions.v1.StepResponse[]; } /** * Represents a step of the workflow this execution is running. */ interface StepResponse { /** * Name of a routine within the workflow. */ routine: string; /** * Name of a step within the routine. */ step: string; } } namespace v1beta { /** * Error describes why the execution was abnormally terminated. */ interface ErrorResponse { /** * Human-readable stack trace string. */ context: string; /** * Error message and data returned represented as a JSON string. */ payload: string; /** * Stack trace with detailed information of where error was generated. */ stackTrace: outputs.workflowexecutions.v1beta.StackTraceResponse; } /** * Position contains source position information about the stack trace element such as line number, column number and length of the code block in bytes. */ interface PositionResponse { /** * The source code column position (of the line) the current instruction was generated from. */ column: string; /** * The number of bytes of source code making up this stack trace element. */ length: string; /** * The source code line number the current instruction was generated from. */ line: string; } /** * A single stack element (frame) where an error occurred. */ interface StackTraceElementResponse { /** * The source position information of the stack trace element. */ position: outputs.workflowexecutions.v1beta.PositionResponse; /** * The routine where the error occurred. */ routine: string; /** * The step the error occurred at. */ step: string; } /** * A collection of stack elements (frames) where an error occurred. */ interface StackTraceResponse { /** * An array of stack elements. */ elements: outputs.workflowexecutions.v1beta.StackTraceElementResponse[]; } /** * Represents the current status of this execution. */ interface StatusResponse { /** * A list of currently executing or last executed step names for the workflow execution currently running. If the workflow has succeeded or failed, this is the last attempted or executed step. Presently, if the current step is inside a subworkflow, the list only includes that step. In the future, the list will contain items for each step in the call stack, starting with the outermost step in the `main` subworkflow, and ending with the most deeply nested step. */ currentSteps: outputs.workflowexecutions.v1beta.StepResponse[]; } /** * Represents a step of the workflow this execution is running. */ interface StepResponse { /** * Name of a routine within the workflow. */ routine: string; /** * Name of a step within the routine. */ step: string; } } } export declare namespace workflows { namespace v1 { /** * Describes an error related to the current state of the workflow. */ interface StateErrorResponse { /** * Provides specifics about the error. */ details: string; /** * The type of this state error. */ type: string; } } } export declare namespace workloadmanager { namespace v1 { /** * Message describing compute engine instance filter */ interface GceInstanceFilterResponse { /** * Service account of compute engine */ serviceAccounts: string[]; } /** * Message describing resource filters */ interface ResourceFilterResponse { /** * Filter compute engine resource */ gceInstanceFilter: outputs.workloadmanager.v1.GceInstanceFilterResponse; /** * The label used for filter resource */ inclusionLabels: { [key: string]: string; }; /** * The id pattern for filter resource */ resourceIdPatterns: string[]; /** * The scopes of evaluation resource */ scopes: string[]; } /** * Message describing resource status */ interface ResourceStatusResponse { /** * Historical: Used before 2023-05-22 the new version of rule id if exists */ rulesNewerVersions: string[]; /** * State of the resource */ state: string; } } } export declare namespace workstations { namespace v1 { /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.workstations.v1.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.workstations.v1.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * A Docker container. */ interface ContainerResponse { /** * Optional. Arguments passed to the entrypoint. */ args: string[]; /** * Optional. If set, overrides the default ENTRYPOINT specified by the image. */ command: string[]; /** * Optional. Environment variables passed to the container's entrypoint. */ env: { [key: string]: string; }; /** * Optional. A Docker container image that defines a custom environment. Cloud Workstations provides a number of [preconfigured images](https://cloud.google.com/workstations/docs/preconfigured-base-images), but you can create your own [custom container images](https://cloud.google.com/workstations/docs/custom-container-images). If using a private image, the `host.gceInstance.serviceAccount` field must be specified in the workstation configuration. If using a custom container image, the service account must have [Artifact Registry Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) permission to pull the specified image. Otherwise, the image must be publicly accessible. */ image: string; /** * Optional. If set, overrides the USER specified in the image with the given uid. */ runAsUser: number; /** * Optional. If set, overrides the default DIR specified by the image. */ workingDir: string; } /** * A customer-managed encryption key (CMEK) for the Compute Engine resources of the associated workstation configuration. Specify the name of your Cloud KMS encryption key and the default service account. We recommend that you use a separate service account and follow [Cloud KMS best practices](https://cloud.google.com/kms/docs/separation-of-duties). */ interface CustomerEncryptionKeyResponse { /** * Immutable. The name of the Google Cloud KMS encryption key. For example, `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. The key must be in the same region as the workstation configuration. */ kmsKey: string; /** * Immutable. The service account to use with the specified KMS key. We recommend that you use a separate service account and follow KMS best practices. For more information, see [Separation of duties](https://cloud.google.com/kms/docs/separation-of-duties) and `gcloud kms keys add-iam-policy-binding` [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). */ kmsKeyServiceAccount: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A set of Compute Engine Confidential VM instance options. */ interface GceConfidentialInstanceConfigResponse { /** * Optional. Whether the instance has confidential compute enabled. */ enableConfidentialCompute: boolean; } /** * A runtime using a Compute Engine instance. */ interface GceInstanceResponse { /** * Optional. The size of the boot disk for the VM in gigabytes (GB). The minimum boot disk size is `30` GB. Defaults to `50` GB. */ bootDiskSizeGb: number; /** * Optional. A set of Compute Engine Confidential VM instance options. */ confidentialInstanceConfig: outputs.workstations.v1.GceConfidentialInstanceConfigResponse; /** * Optional. When set to true, disables public IP addresses for VMs. If you disable public IP addresses, you must set up Private Google Access or Cloud NAT on your network. If you use Private Google Access and you use `private.googleapis.com` or `restricted.googleapis.com` for Container Registry and Artifact Registry, make sure that you set up DNS records for domains `*.gcr.io` and `*.pkg.dev`. Defaults to false (VMs have public IP addresses). */ disablePublicIpAddresses: boolean; /** * Optional. Whether to enable nested virtualization on Cloud Workstations VMs created under this workstation configuration. Nested virtualization lets you run virtual machine (VM) instances inside your workstation. Before enabling nested virtualization, consider the following important considerations. Cloud Workstations instances are subject to the [same restrictions as Compute Engine instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): * **Organization policy**: projects, folders, or organizations may be restricted from creating nested VMs if the **Disable VM nested virtualization** constraint is enforced in the organization policy. For more information, see the Compute Engine section, [Checking whether nested virtualization is allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). * **Performance**: nested VMs might experience a 10% or greater decrease in performance for workloads that are CPU-bound and possibly greater than a 10% decrease for workloads that are input/output bound. * **Machine Type**: nested virtualization can only be enabled on workstation configurations that specify a machine_type in the N1 or N2 machine series. * **GPUs**: nested virtualization may not be enabled on workstation configurations with accelerators. * **Operating System**: Because [Container-Optimized OS](https://cloud.google.com/compute/docs/images/os-details#container-optimized_os_cos) does not support nested virtualization, when nested virtualization is enabled, the underlying Compute Engine VM instances boot from an [Ubuntu LTS](https://cloud.google.com/compute/docs/images/os-details#ubuntu_lts) image. */ enableNestedVirtualization: boolean; /** * Optional. The type of machine to use for VM instances—for example, `"e2-standard-4"`. For more information about machine types that Cloud Workstations supports, see the list of [available machine types](https://cloud.google.com/workstations/docs/available-machine-types). */ machineType: string; /** * Optional. The number of VMs that the system should keep idle so that new workstations can be started quickly for new users. Defaults to `0` in the API. */ poolSize: number; /** * Number of instances currently available in the pool for faster workstation startup. */ pooledInstances: number; /** * Optional. The email address of the service account for Cloud Workstations VMs created with this configuration. When specified, be sure that the service account has `logginglogEntries.create` permission on the project so it can write logs out to Cloud Logging. If using a custom container image, the service account must have [Artifact Registry Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) permission to pull the specified image. If you as the administrator want to be able to `ssh` into the underlying VM, you need to set this value to a service account for which you have the `iam.serviceAccounts.actAs` permission. Conversely, if you don't want anyone to be able to `ssh` into the underlying VM, use a service account where no one has that permission. If not set, VMs run with a service account provided by the Cloud Workstations service, and the image must be publicly accessible. */ serviceAccount: string; /** * Optional. Scopes to grant to the service_account. Various scopes are automatically added based on feature usage. When specified, users of workstations under this configuration must have `iam.serviceAccounts.actAs` on the service account. */ serviceAccountScopes: string[]; /** * Optional. A set of Compute Engine Shielded instance options. */ shieldedInstanceConfig: outputs.workstations.v1.GceShieldedInstanceConfigResponse; /** * Optional. Network tags to add to the Compute Engine VMs backing the workstations. This option applies [network tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs created with this configuration. These network tags enable the creation of [firewall rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). */ tags: string[]; } /** * A PersistentDirectory backed by a Compute Engine regional persistent disk. The persistent_directories field is repeated, but it may contain only one entry. It creates a [persistent disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that mounts to the workstation VM at `/home` when the session starts and detaches when the session ends. If this field is empty, workstations created with this configuration do not have a persistent home directory. */ interface GceRegionalPersistentDiskResponse { /** * Optional. The [type of the persistent disk](https://cloud.google.com/compute/docs/disks#disk-types) for the home directory. Defaults to `"pd-standard"`. */ diskType: string; /** * Optional. Type of file system that the disk should be formatted with. The workstation image must support this file system type. Must be empty if source_snapshot is set. Defaults to `"ext4"`. */ fsType: string; /** * Optional. Whether the persistent disk should be deleted when the workstation is deleted. Valid values are `DELETE` and `RETAIN`. Defaults to `DELETE`. */ reclaimPolicy: string; /** * Optional. The GB capacity of a persistent home directory for each workstation created with this configuration. Must be empty if source_snapshot is set. Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. Defaults to `200`. If less than `200` GB, the disk_type must be `"pd-balanced"` or `"pd-ssd"`. */ sizeGb: number; /** * Optional. Name of the snapshot to use as the source for the disk. If set, size_gb and fs_type must be empty. */ sourceSnapshot: string; } /** * A set of Compute Engine Shielded instance options. */ interface GceShieldedInstanceConfigResponse { /** * Optional. Whether the instance has integrity monitoring enabled. */ enableIntegrityMonitoring: boolean; /** * Optional. Whether the instance has Secure Boot enabled. */ enableSecureBoot: boolean; /** * Optional. Whether the instance has the vTPM enabled. */ enableVtpm: boolean; } /** * Runtime host for a workstation. */ interface HostResponse { /** * Specifies a Compute Engine instance as the host. */ gceInstance: outputs.workstations.v1.GceInstanceResponse; } /** * A directory to persist across workstation sessions. */ interface PersistentDirectoryResponse { /** * A PersistentDirectory backed by a Compute Engine persistent disk. */ gcePd: outputs.workstations.v1.GceRegionalPersistentDiskResponse; /** * Optional. Location of this directory in the running workstation. */ mountPath: string; } /** * Configuration options for private workstation clusters. */ interface PrivateClusterConfigResponse { /** * Optional. Additional projects that are allowed to attach to the workstation cluster's service attachment. By default, the workstation cluster's project and the VPC host project (if different) are allowed. */ allowedProjects: string[]; /** * Hostname for the workstation cluster. This field will be populated only when private endpoint is enabled. To access workstations in the workstation cluster, create a new DNS zone mapping this domain name to an internal IP address and a forwarding rule mapping that address to the service attachment. */ clusterHostname: string; /** * Immutable. Whether Workstations endpoint is private. */ enablePrivateEndpoint: boolean; /** * Service attachment URI for the workstation cluster. The service attachemnt is created when private endpoint is enabled. To access workstations in the workstation cluster, configure access to the managed service using [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services). */ serviceAttachmentUri: string; } /** * A readiness check to be performed on a workstation. */ interface ReadinessCheckResponse { /** * Optional. Path to which the request should be sent. */ path: string; /** * Optional. Port to which the request should be sent. */ port: number; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } namespace v1beta { /** * An accelerator card attached to the instance. */ interface AcceleratorResponse { /** * Optional. Number of accelerator cards exposed to the instance. */ count: number; /** * Optional. Type of accelerator resource to attach to the instance, for example, `"nvidia-tesla-p100"`. */ type: string; } /** * Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging. */ interface AuditConfigResponse { /** * The configuration for logging of each type of permission. */ auditLogConfigs: outputs.workstations.v1beta.AuditLogConfigResponse[]; /** * Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. */ service: string; } /** * Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. */ interface AuditLogConfigResponse { /** * Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. */ exemptedMembers: string[]; /** * The log type that this config enables. */ logType: string; } /** * Associates `members`, or principals, with a `role`. */ interface BindingResponse { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition: outputs.workstations.v1beta.ExprResponse; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. */ members: string[]; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role: string; } /** * A Docker container. */ interface ContainerResponse { /** * Optional. Arguments passed to the entrypoint. */ args: string[]; /** * Optional. If set, overrides the default ENTRYPOINT specified by the image. */ command: string[]; /** * Optional. Environment variables passed to the container's entrypoint. */ env: { [key: string]: string; }; /** * Optional. A Docker container image that defines a custom environment. Cloud Workstations provides a number of [preconfigured images](https://cloud.google.com/workstations/docs/preconfigured-base-images), but you can create your own [custom container images](https://cloud.google.com/workstations/docs/custom-container-images). If using a private image, the `host.gceInstance.serviceAccount` field must be specified in the workstation configuration. If using a custom container image, the service account must have [Artifact Registry Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) permission to pull the specified image. Otherwise, the image must be publicly accessible. */ image: string; /** * Optional. If set, overrides the USER specified in the image with the given uid. */ runAsUser: number; /** * Optional. If set, overrides the default DIR specified by the image. */ workingDir: string; } /** * A customer-managed encryption key (CMEK) for the Compute Engine resources of the associated workstation configuration. Specify the name of your Cloud KMS encryption key and the default service account. We recommend that you use a separate service account and follow [Cloud KMS best practices](https://cloud.google.com/kms/docs/separation-of-duties). */ interface CustomerEncryptionKeyResponse { /** * Immutable. The name of the Google Cloud KMS encryption key. For example, `"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"`. The key must be in the same region as the workstation configuration. */ kmsKey: string; /** * Immutable. The service account to use with the specified KMS key. We recommend that you use a separate service account and follow KMS best practices. For more information, see [Separation of duties](https://cloud.google.com/kms/docs/separation-of-duties) and `gcloud kms keys add-iam-policy-binding` [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). */ kmsKeyServiceAccount: string; } /** * Configuration options for a custom domain. */ interface DomainConfigResponse { /** * Immutable. Domain used by Workstations for HTTP ingress. */ domain: string; } /** * An ephemeral directory which won't persist across workstation sessions. It is freshly created on every workstation start operation. */ interface EphemeralDirectoryResponse { /** * An EphemeralDirectory backed by a Compute Engine persistent disk. */ gcePd: outputs.workstations.v1beta.GcePersistentDiskResponse; /** * Location of this directory in the running workstation. */ mountPath: string; } /** * Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. */ interface ExprResponse { /** * Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. */ description: string; /** * Textual representation of an expression in Common Expression Language syntax. */ expression: string; /** * Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. */ location: string; /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. */ title: string; } /** * A set of Compute Engine Confidential VM instance options. */ interface GceConfidentialInstanceConfigResponse { /** * Optional. Whether the instance has confidential compute enabled. */ enableConfidentialCompute: boolean; } /** * A runtime using a Compute Engine instance. */ interface GceInstanceResponse { /** * Optional. A list of the type and count of accelerator cards attached to the instance. */ accelerators: outputs.workstations.v1beta.AcceleratorResponse[]; /** * Optional. The size of the boot disk for the VM in gigabytes (GB). The minimum boot disk size is `30` GB. Defaults to `50` GB. */ bootDiskSizeGb: number; /** * Optional. A set of Compute Engine Confidential VM instance options. */ confidentialInstanceConfig: outputs.workstations.v1beta.GceConfidentialInstanceConfigResponse; /** * Optional. When set to true, disables public IP addresses for VMs. If you disable public IP addresses, you must set up Private Google Access or Cloud NAT on your network. If you use Private Google Access and you use `private.googleapis.com` or `restricted.googleapis.com` for Container Registry and Artifact Registry, make sure that you set up DNS records for domains `*.gcr.io` and `*.pkg.dev`. Defaults to false (VMs have public IP addresses). */ disablePublicIpAddresses: boolean; /** * Optional. Whether to enable nested virtualization on Cloud Workstations VMs created under this workstation configuration. Nested virtualization lets you run virtual machine (VM) instances inside your workstation. Before enabling nested virtualization, consider the following important considerations. Cloud Workstations instances are subject to the [same restrictions as Compute Engine instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): * **Organization policy**: projects, folders, or organizations may be restricted from creating nested VMs if the **Disable VM nested virtualization** constraint is enforced in the organization policy. For more information, see the Compute Engine section, [Checking whether nested virtualization is allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). * **Performance**: nested VMs might experience a 10% or greater decrease in performance for workloads that are CPU-bound and possibly greater than a 10% decrease for workloads that are input/output bound. * **Machine Type**: nested virtualization can only be enabled on workstation configurations that specify a machine_type in the N1 or N2 machine series. * **GPUs**: nested virtualization may not be enabled on workstation configurations with accelerators. * **Operating System**: Because [Container-Optimized OS](https://cloud.google.com/compute/docs/images/os-details#container-optimized_os_cos) does not support nested virtualization, when nested virtualization is enabled, the underlying Compute Engine VM instances boot from an [Ubuntu LTS](https://cloud.google.com/compute/docs/images/os-details#ubuntu_lts) image. */ enableNestedVirtualization: boolean; /** * Optional. The type of machine to use for VM instances—for example, `"e2-standard-4"`. For more information about machine types that Cloud Workstations supports, see the list of [available machine types](https://cloud.google.com/workstations/docs/available-machine-types). */ machineType: string; /** * Optional. The number of VMs that the system should keep idle so that new workstations can be started quickly for new users. Defaults to `0` in the API. */ poolSize: number; /** * Number of instances currently available in the pool for faster workstation startup. */ pooledInstances: number; /** * Optional. The email address of the service account for Cloud Workstations VMs created with this configuration. When specified, be sure that the service account has `logginglogEntries.create` permission on the project so it can write logs out to Cloud Logging. If using a custom container image, the service account must have [Artifact Registry Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) permission to pull the specified image. If you as the administrator want to be able to `ssh` into the underlying VM, you need to set this value to a service account for which you have the `iam.serviceAccounts.actAs` permission. Conversely, if you don't want anyone to be able to `ssh` into the underlying VM, use a service account where no one has that permission. If not set, VMs run with a service account provided by the Cloud Workstations service, and the image must be publicly accessible. */ serviceAccount: string; /** * Optional. Scopes to grant to the service_account. Various scopes are automatically added based on feature usage. When specified, users of workstations under this configuration must have `iam.serviceAccounts.actAs` on the service account. */ serviceAccountScopes: string[]; /** * Optional. A set of Compute Engine Shielded instance options. */ shieldedInstanceConfig: outputs.workstations.v1beta.GceShieldedInstanceConfigResponse; /** * Optional. Network tags to add to the Compute Engine VMs backing the workstations. This option applies [network tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs created with this configuration. These network tags enable the creation of [firewall rules](https://cloud.google.com/workstations/docs/configure-firewall-rules). */ tags: string[]; } /** * An EphemeralDirectory is backed by a Compute Engine persistent disk. */ interface GcePersistentDiskResponse { /** * Optional. Type of the disk to use. Defaults to `"pd-standard"`. */ diskType: string; /** * Optional. Whether the disk is read only. If true, the disk may be shared by multiple VMs and source_snapshot must be set. */ readOnly: boolean; /** * Optional. Name of the disk image to use as the source for the disk. Must be empty if source_snapshot is set. Updating source_image will update content in the ephemeral directory after the workstation is restarted. This field is mutable. */ sourceImage: string; /** * Optional. Name of the snapshot to use as the source for the disk. Must be empty if source_image is set. Must be empty if read_only is false. Updating source_snapshot will update content in the ephemeral directory after the workstation is restarted. This field is mutable. */ sourceSnapshot: string; } /** * A PersistentDirectory backed by a Compute Engine regional persistent disk. The persistent_directories field is repeated, but it may contain only one entry. It creates a [persistent disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that mounts to the workstation VM at `/home` when the session starts and detaches when the session ends. If this field is empty, workstations created with this configuration do not have a persistent home directory. */ interface GceRegionalPersistentDiskResponse { /** * Optional. The [type of the persistent disk](https://cloud.google.com/compute/docs/disks#disk-types) for the home directory. Defaults to `"pd-standard"`. */ diskType: string; /** * Optional. Type of file system that the disk should be formatted with. The workstation image must support this file system type. Must be empty if source_snapshot is set. Defaults to `"ext4"`. */ fsType: string; /** * Optional. Whether the persistent disk should be deleted when the workstation is deleted. Valid values are `DELETE` and `RETAIN`. Defaults to `DELETE`. */ reclaimPolicy: string; /** * Optional. The GB capacity of a persistent home directory for each workstation created with this configuration. Must be empty if source_snapshot is set. Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. Defaults to `200`. If less than `200` GB, the disk_type must be `"pd-balanced"` or `"pd-ssd"`. */ sizeGb: number; /** * Optional. Name of the snapshot to use as the source for the disk. If set, size_gb and fs_type must be empty. */ sourceSnapshot: string; } /** * A set of Compute Engine Shielded instance options. */ interface GceShieldedInstanceConfigResponse { /** * Optional. Whether the instance has integrity monitoring enabled. */ enableIntegrityMonitoring: boolean; /** * Optional. Whether the instance has Secure Boot enabled. */ enableSecureBoot: boolean; /** * Optional. Whether the instance has the vTPM enabled. */ enableVtpm: boolean; } /** * Runtime host for a workstation. */ interface HostResponse { /** * Specifies a Compute Engine instance as the host. */ gceInstance: outputs.workstations.v1beta.GceInstanceResponse; } /** * A directory to persist across workstation sessions. */ interface PersistentDirectoryResponse { /** * A PersistentDirectory backed by a Compute Engine persistent disk. */ gcePd: outputs.workstations.v1beta.GceRegionalPersistentDiskResponse; /** * Optional. Location of this directory in the running workstation. */ mountPath: string; } /** * Configuration options for private workstation clusters. */ interface PrivateClusterConfigResponse { /** * Optional. Additional projects that are allowed to attach to the workstation cluster's service attachment. By default, the workstation cluster's project and the VPC host project (if different) are allowed. */ allowedProjects: string[]; /** * Hostname for the workstation cluster. This field will be populated only when private endpoint is enabled. To access workstations in the workstation cluster, create a new DNS zone mapping this domain name to an internal IP address and a forwarding rule mapping that address to the service attachment. */ clusterHostname: string; /** * Immutable. Whether Workstations endpoint is private. */ enablePrivateEndpoint: boolean; /** * Service attachment URI for the workstation cluster. The service attachemnt is created when private endpoint is enabled. To access workstations in the workstation cluster, configure access to the managed service using [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services). */ serviceAttachmentUri: string; } /** * A readiness check to be performed on a workstation. */ interface ReadinessCheckResponse { /** * Optional. Path to which the request should be sent. */ path: string; /** * Optional. Port to which the request should be sent. */ port: number; } /** * The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */ interface StatusResponse { /** * The status code, which should be an enum value of google.rpc.Code. */ code: number; /** * A list of messages that carry the error details. There is a common set of message types for APIs to use. */ details: { [key: string]: string; }[]; /** * A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ message: string; } } }