import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * QuotaPreference represents the preferred quota configuration specified for a project, folder or organization. There is only one QuotaPreference resource for a quota value targeting a unique set of dimensions. * * To get more information about QuotaPreference, see: * * * [API documentation](https://cloud.google.com/docs/quotas/reference/rest/v1/projects.locations.quotaPreferences) * * How-to Guides * * [Cloud Quotas Overview](https://cloud.google.com/docs/quotas/overview) * * ## Example Usage * * ### Cloudquotas Quota Preference Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const preference = new gcp.cloudquota.SQuotaPreference("preference", { * parent: "projects/my-project-name", * name: "compute_googleapis_com-CPUS-per-project_us-east1", * dimensions: { * region: "us-east1", * }, * service: "compute.googleapis.com", * quotaId: "CPUS-per-project-region", * contactEmail: "testuser@gmail.com", * quotaConfig: { * preferredValue: "200", * }, * }); * ``` * * ## Import * * QuotaPreference can be imported using any of these accepted formats: * * * `{{parent}}/locations/global/quotaPreferences/{{name}}` * * When using the `pulumi import` command, QuotaPreference can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:cloudquota/sQuotaPreference:SQuotaPreference default {{parent}}/locations/global/quotaPreferences/{{name}} * ``` */ export declare class SQuotaPreference extends pulumi.CustomResource { /** * Get an existing SQuotaPreference resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: SQuotaPreferenceState, opts?: pulumi.CustomResourceOptions): SQuotaPreference; /** * Returns true if the given object is an instance of SQuotaPreference. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is SQuotaPreference; /** * An email address that can be used for quota related communication between the Google Cloud and the user in case the Google Cloud needs further information to make a decision on whether the user preferred quota can be granted. * The Google account for the email address must have quota update permission for the project, folder or organization this quota preference is for. */ readonly contactEmail: pulumi.Output; /** * Create time stamp. * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`. */ readonly createTime: pulumi.Output; /** * The dimensions that this quota preference applies to. The key of the map entry is the name of a dimension, such as "region", "zone", "networkId", and the value of the map entry is the dimension value. If a dimension is missing from the map of dimensions, the quota preference applies to all the dimension values except for those that have other quota preferences configured for the specific value. * NOTE: QuotaPreferences can only be applied across all values of "user" and "resource" dimension. Do not set values for "user" or "resource" in the dimension map. * Example: `{"provider": "Foo Inc"}` where "provider" is a service specific dimension. */ readonly dimensions: pulumi.Output<{ [key: string]: string; }>; /** * The current etag of the quota preference. If an etag is provided on update and does not match the current server's etag of the quota preference, the request will be blocked and an ABORTED error will be returned. See https://google.aip.dev/134#etags for more details on etags. */ readonly etag: pulumi.Output; /** * The list of quota safety checks to be ignored. * Default value is `QUOTA_SAFETY_CHECK_UNSPECIFIED`. * Possible values are: `QUOTA_SAFETY_CHECK_UNSPECIFIED`, `QUOTA_DECREASE_BELOW_USAGE`, `QUOTA_DECREASE_PERCENTAGE_TOO_HIGH`. */ readonly ignoreSafetyChecks: pulumi.Output; /** * The reason / justification for this quota preference. */ readonly justification: pulumi.Output; /** * The resource name of the quota preference. Required except in the CREATE requests. */ readonly name: pulumi.Output; /** * The parent of the quota preference. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number]". */ readonly parent: pulumi.Output; /** * The preferred quota configuration. * Structure is documented below. */ readonly quotaConfig: pulumi.Output; /** * The id of the quota to which the quota preference is applied. A quota id is unique in the service. * Example: `CPUS-per-project-region`. */ readonly quotaId: pulumi.Output; /** * Is the quota preference pending Google Cloud approval and fulfillment. */ readonly reconciling: pulumi.Output; /** * The name of the service to which the quota preference is applied. */ readonly service: pulumi.Output; /** * Update time stamp. * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`. */ readonly updateTime: pulumi.Output; /** * Create a SQuotaPreference resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: SQuotaPreferenceArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering SQuotaPreference resources. */ export interface SQuotaPreferenceState { /** * An email address that can be used for quota related communication between the Google Cloud and the user in case the Google Cloud needs further information to make a decision on whether the user preferred quota can be granted. * The Google account for the email address must have quota update permission for the project, folder or organization this quota preference is for. */ contactEmail?: pulumi.Input; /** * Create time stamp. * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`. */ createTime?: pulumi.Input; /** * The dimensions that this quota preference applies to. The key of the map entry is the name of a dimension, such as "region", "zone", "networkId", and the value of the map entry is the dimension value. If a dimension is missing from the map of dimensions, the quota preference applies to all the dimension values except for those that have other quota preferences configured for the specific value. * NOTE: QuotaPreferences can only be applied across all values of "user" and "resource" dimension. Do not set values for "user" or "resource" in the dimension map. * Example: `{"provider": "Foo Inc"}` where "provider" is a service specific dimension. */ dimensions?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The current etag of the quota preference. If an etag is provided on update and does not match the current server's etag of the quota preference, the request will be blocked and an ABORTED error will be returned. See https://google.aip.dev/134#etags for more details on etags. */ etag?: pulumi.Input; /** * The list of quota safety checks to be ignored. * Default value is `QUOTA_SAFETY_CHECK_UNSPECIFIED`. * Possible values are: `QUOTA_SAFETY_CHECK_UNSPECIFIED`, `QUOTA_DECREASE_BELOW_USAGE`, `QUOTA_DECREASE_PERCENTAGE_TOO_HIGH`. */ ignoreSafetyChecks?: pulumi.Input; /** * The reason / justification for this quota preference. */ justification?: pulumi.Input; /** * The resource name of the quota preference. Required except in the CREATE requests. */ name?: pulumi.Input; /** * The parent of the quota preference. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number]". */ parent?: pulumi.Input; /** * The preferred quota configuration. * Structure is documented below. */ quotaConfig?: pulumi.Input; /** * The id of the quota to which the quota preference is applied. A quota id is unique in the service. * Example: `CPUS-per-project-region`. */ quotaId?: pulumi.Input; /** * Is the quota preference pending Google Cloud approval and fulfillment. */ reconciling?: pulumi.Input; /** * The name of the service to which the quota preference is applied. */ service?: pulumi.Input; /** * Update time stamp. * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: `2014-10-02T15:01:23Z` and `2014-10-02T15:01:23.045123456Z`. */ updateTime?: pulumi.Input; } /** * The set of arguments for constructing a SQuotaPreference resource. */ export interface SQuotaPreferenceArgs { /** * An email address that can be used for quota related communication between the Google Cloud and the user in case the Google Cloud needs further information to make a decision on whether the user preferred quota can be granted. * The Google account for the email address must have quota update permission for the project, folder or organization this quota preference is for. */ contactEmail?: pulumi.Input; /** * The dimensions that this quota preference applies to. The key of the map entry is the name of a dimension, such as "region", "zone", "networkId", and the value of the map entry is the dimension value. If a dimension is missing from the map of dimensions, the quota preference applies to all the dimension values except for those that have other quota preferences configured for the specific value. * NOTE: QuotaPreferences can only be applied across all values of "user" and "resource" dimension. Do not set values for "user" or "resource" in the dimension map. * Example: `{"provider": "Foo Inc"}` where "provider" is a service specific dimension. */ dimensions?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The list of quota safety checks to be ignored. * Default value is `QUOTA_SAFETY_CHECK_UNSPECIFIED`. * Possible values are: `QUOTA_SAFETY_CHECK_UNSPECIFIED`, `QUOTA_DECREASE_BELOW_USAGE`, `QUOTA_DECREASE_PERCENTAGE_TOO_HIGH`. */ ignoreSafetyChecks?: pulumi.Input; /** * The reason / justification for this quota preference. */ justification?: pulumi.Input; /** * The resource name of the quota preference. Required except in the CREATE requests. */ name?: pulumi.Input; /** * The parent of the quota preference. Allowed parents are "projects/[project-id / number]" or "folders/[folder-id / number]" or "organizations/[org-id / number]". */ parent?: pulumi.Input; /** * The preferred quota configuration. * Structure is documented below. */ quotaConfig: pulumi.Input; /** * The id of the quota to which the quota preference is applied. A quota id is unique in the service. * Example: `CPUS-per-project-region`. */ quotaId?: pulumi.Input; /** * The name of the service to which the quota preference is applied. */ service?: pulumi.Input; }