@kubernetes-models/gke
Version:
1,141 lines • 72.6 kB
TypeScript
import { IObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta";
import { Model, ModelData } from "@kubernetes-models/base";
export interface IComputeDisk {
/**
* apiVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
*/
"apiVersion": "compute.cnrm.cloud.google.com/v1beta1";
/**
* kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
*/
"kind": "ComputeDisk";
"metadata"?: IObjectMeta;
"spec": {
/**
* Immutable. A nested object resource.
*/
"asyncPrimaryDisk"?: {
/**
* Immutable. Primary disk for asynchronous disk replication.
*/
"diskRef": {
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & (Exclude<{
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}> | Exclude<{
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & ({
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} | {
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace": string;
})>);
};
/**
* Immutable. An optional description of this resource. Provide this property when
* you create the resource.
*/
"description"?: string;
/**
* Immutable. Encrypts the disk using a customer-supplied encryption key.
*
* After you encrypt a disk with a customer-supplied key, you must
* provide the same key if you use the disk later (e.g. to create a disk
* snapshot or an image, or to attach the disk to a virtual machine).
*
* Customer-supplied encryption keys do not protect access to metadata of
* the disk.
*
* If you do not provide an encryption key when creating the disk, 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.
*/
"diskEncryptionKey"?: {
/**
* The encryption key used to encrypt the disk. Your project's Compute
* Engine System service account
* ('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com')
* must have 'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this
* feature. See
* https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
*/
"kmsKeyRef"?: {
/**
* Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & (Exclude<{
/**
* Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}> | Exclude<{
/**
* Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & ({
/**
* Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} | {
/**
* Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace": string;
})>);
/**
* The service account used for the encryption request for the given KMS key.
* If absent, the Compute Engine Service Agent service account is used.
*/
"kmsKeyServiceAccountRef"?: {
/**
* Allowed value: The `email` field of an `IAMServiceAccount` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & (Exclude<{
/**
* Allowed value: The `email` field of an `IAMServiceAccount` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `email` field of an `IAMServiceAccount` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}> | Exclude<{
/**
* Allowed value: The `email` field of an `IAMServiceAccount` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `email` field of an `IAMServiceAccount` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & ({
/**
* Allowed value: The `email` field of an `IAMServiceAccount` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} | {
/**
* Allowed value: The `email` field of an `IAMServiceAccount` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace": string;
})>);
/**
* Immutable. Specifies a 256-bit customer-supplied encryption key, encoded in
* RFC 4648 base64 to either encrypt or decrypt this resource.
*/
"rawKey"?: {
/**
* Value of the field. Cannot be used if 'valueFrom' is specified.
*/
"value"?: string;
/**
* Source for the field's value. Cannot be used if 'value' is specified.
*/
"valueFrom"?: {
/**
* Reference to a value with the given key in the given Secret in the resource's namespace.
*/
"secretKeyRef"?: {
/**
* Key that identifies the value to be extracted.
*/
"key": string;
/**
* Name of the Secret to extract a value from.
*/
"name": string;
};
};
} & (Exclude<{
/**
* Value of the field. Cannot be used if 'valueFrom' is specified.
*/
"value": string;
/**
* Source for the field's value. Cannot be used if 'value' is specified.
*/
"valueFrom"?: {
/**
* Reference to a value with the given key in the given Secret in the resource's namespace.
*/
"secretKeyRef"?: {
/**
* Key that identifies the value to be extracted.
*/
"key": string;
/**
* Name of the Secret to extract a value from.
*/
"name": string;
};
};
}, {
/**
* Value of the field. Cannot be used if 'valueFrom' is specified.
*/
"value"?: string;
/**
* Source for the field's value. Cannot be used if 'value' is specified.
*/
"valueFrom": {
/**
* Reference to a value with the given key in the given Secret in the resource's namespace.
*/
"secretKeyRef"?: {
/**
* Key that identifies the value to be extracted.
*/
"key": string;
/**
* Name of the Secret to extract a value from.
*/
"name": string;
};
};
}> | Exclude<{
/**
* Value of the field. Cannot be used if 'valueFrom' is specified.
*/
"value"?: string;
/**
* Source for the field's value. Cannot be used if 'value' is specified.
*/
"valueFrom": {
/**
* Reference to a value with the given key in the given Secret in the resource's namespace.
*/
"secretKeyRef"?: {
/**
* Key that identifies the value to be extracted.
*/
"key": string;
/**
* Name of the Secret to extract a value from.
*/
"name": string;
};
};
}, {
/**
* Value of the field. Cannot be used if 'valueFrom' is specified.
*/
"value": string;
/**
* Source for the field's value. Cannot be used if 'value' is specified.
*/
"valueFrom"?: {
/**
* Reference to a value with the given key in the given Secret in the resource's namespace.
*/
"secretKeyRef"?: {
/**
* Key that identifies the value to be extracted.
*/
"key": string;
/**
* Name of the Secret to extract a value from.
*/
"name": string;
};
};
}>);
/**
* Immutable. 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.
*/
"rsaEncryptedKey"?: {
/**
* Value of the field. Cannot be used if 'valueFrom' is specified.
*/
"value"?: string;
/**
* Source for the field's value. Cannot be used if 'value' is specified.
*/
"valueFrom"?: {
/**
* Reference to a value with the given key in the given Secret in the resource's namespace.
*/
"secretKeyRef"?: {
/**
* Key that identifies the value to be extracted.
*/
"key": string;
/**
* Name of the Secret to extract a value from.
*/
"name": string;
};
};
} & (Exclude<{
/**
* Value of the field. Cannot be used if 'valueFrom' is specified.
*/
"value": string;
/**
* Source for the field's value. Cannot be used if 'value' is specified.
*/
"valueFrom"?: {
/**
* Reference to a value with the given key in the given Secret in the resource's namespace.
*/
"secretKeyRef"?: {
/**
* Key that identifies the value to be extracted.
*/
"key": string;
/**
* Name of the Secret to extract a value from.
*/
"name": string;
};
};
}, {
/**
* Value of the field. Cannot be used if 'valueFrom' is specified.
*/
"value"?: string;
/**
* Source for the field's value. Cannot be used if 'value' is specified.
*/
"valueFrom": {
/**
* Reference to a value with the given key in the given Secret in the resource's namespace.
*/
"secretKeyRef"?: {
/**
* Key that identifies the value to be extracted.
*/
"key": string;
/**
* Name of the Secret to extract a value from.
*/
"name": string;
};
};
}> | Exclude<{
/**
* Value of the field. Cannot be used if 'valueFrom' is specified.
*/
"value"?: string;
/**
* Source for the field's value. Cannot be used if 'value' is specified.
*/
"valueFrom": {
/**
* Reference to a value with the given key in the given Secret in the resource's namespace.
*/
"secretKeyRef"?: {
/**
* Key that identifies the value to be extracted.
*/
"key": string;
/**
* Name of the Secret to extract a value from.
*/
"name": string;
};
};
}, {
/**
* Value of the field. Cannot be used if 'valueFrom' is specified.
*/
"value": string;
/**
* Source for the field's value. Cannot be used if 'value' is specified.
*/
"valueFrom"?: {
/**
* Reference to a value with the given key in the given Secret in the resource's namespace.
*/
"secretKeyRef"?: {
/**
* Key that identifies the value to be extracted.
*/
"key": string;
/**
* Name of the Secret to extract a value from.
*/
"name": string;
};
};
}>);
/**
* The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied
* encryption key that protects this resource.
*/
"sha256"?: string;
};
/**
* Immutable. Whether this disk is using confidential compute mode.
* Note: Only supported on hyperdisk skus, disk_encryption_key is required when setting to true.
*/
"enableConfidentialCompute"?: boolean;
/**
* Immutable. A list of features to enable on the guest operating system.
* Applicable only for bootable disks.
*/
"guestOsFeatures"?: Array<{
/**
* Immutable. The type of 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. Possible values: ["MULTI_IP_SUBNET", "SECURE_BOOT", "SEV_CAPABLE", "UEFI_COMPATIBLE", "VIRTIO_SCSI_MULTIQUEUE", "WINDOWS", "GVNIC", "SEV_LIVE_MIGRATABLE", "SEV_SNP_CAPABLE", "SUSPEND_RESUME_COMPATIBLE", "TDX_CAPABLE"].
*/
"type": string;
}>;
/**
* The image from which to initialize this disk.
*/
"imageRef"?: {
/**
* Allowed value: The `selfLink` field of a `ComputeImage` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & (Exclude<{
/**
* Allowed value: The `selfLink` field of a `ComputeImage` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `ComputeImage` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}> | Exclude<{
/**
* Allowed value: The `selfLink` field of a `ComputeImage` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `ComputeImage` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & ({
/**
* Allowed value: The `selfLink` field of a `ComputeImage` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} | {
/**
* Allowed value: The `selfLink` field of a `ComputeImage` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace": string;
})>);
/**
* DEPRECATED. `interface` is deprecated. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment. Immutable. Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI.
*/
"interface"?: string;
/**
* Immutable. Any applicable license URI.
*/
"licenses"?: Array<string>;
/**
* Location represents the geographical location of the ComputeDisk. Specify a region name or a zone name. Reference: GCP definition of regions/zones (https://cloud.google.com/compute/docs/regions-zones/)
*/
"location": string;
/**
* Immutable. Indicates whether or not the disk can be read/write attached to more than one instance.
*/
"multiWriter"?: boolean;
/**
* Immutable. Physical block size of the persistent disk, in bytes. If not present
* in a request, a default value is used. Currently supported sizes
* are 4096 and 16384, other sizes may be added in the future.
* If an unsupported value is requested, the error message will list
* the supported values for the caller's project.
*/
"physicalBlockSizeBytes"?: number;
/**
* The project that this resource belongs to.
*/
"projectRef"?: {
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & (Exclude<{
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}> | Exclude<{
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & ({
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} | {
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace": string;
})>);
/**
* Indicates how many IOPS must be provisioned for the disk.
* Note: Updating currently is only supported by hyperdisk skus without the need to delete and recreate the disk, hyperdisk
* allows for an update of IOPS every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
*/
"provisionedIops"?: number;
/**
* Indicates how much Throughput must be provisioned for the disk.
* Note: Updating currently is only supported by hyperdisk skus without the need to delete and recreate the disk, hyperdisk
* allows for an update of Throughput every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
*/
"provisionedThroughput"?: number;
/**
* Immutable. URLs of the zones where the disk should be replicated to.
*/
"replicaZones"?: Array<string>;
/**
* Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.
*/
"resourceID"?: string;
"resourcePolicies"?: Array<{
/**
* Allowed value: The `selfLink` field of a `ComputeResourcePolicy` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & (Exclude<{
/**
* Allowed value: The `selfLink` field of a `ComputeResourcePolicy` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `ComputeResourcePolicy` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}> | Exclude<{
/**
* Allowed value: The `selfLink` field of a `ComputeResourcePolicy` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `ComputeResourcePolicy` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & ({
/**
* Allowed value: The `selfLink` field of a `ComputeResourcePolicy` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} | {
/**
* Allowed value: The `selfLink` field of a `ComputeResourcePolicy` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace": string;
})>)>;
/**
* Size of the persistent disk, specified in GB. You can specify this
* field when creating a persistent disk using the 'image' or
* 'snapshot' parameter, or specify it alone to create an empty
* persistent disk.
*
* If you specify this field along with 'image' or 'snapshot',
* the value must not be less than the size of the image
* or the size of the snapshot.
*
* Upsizing the disk is mutable, but downsizing the disk
* requires re-creating the resource.
*/
"size"?: number;
/**
* The source snapshot used to create this disk.
*/
"snapshotRef"?: {
/**
* Allowed value: The `selfLink` field of a `ComputeSnapshot` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & (Exclude<{
/**
* Allowed value: The `selfLink` field of a `ComputeSnapshot` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `ComputeSnapshot` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}> | Exclude<{
/**
* Allowed value: The `selfLink` field of a `ComputeSnapshot` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `ComputeSnapshot` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & ({
/**
* Allowed value: The `selfLink` field of a `ComputeSnapshot` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} | {
/**
* Allowed value: The `selfLink` field of a `ComputeSnapshot` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace": string;
})>);
/**
* The source disk used to create this disk.
*/
"sourceDiskRef"?: {
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & (Exclude<{
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}> | Exclude<{
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & ({
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} | {
/**
* Allowed value: The `selfLink` field of a `ComputeDisk` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace": string;
})>);
/**
* Immutable. The customer-supplied encryption key of the source image. Required if
* the source image is protected by a customer-supplied encryption key.
*/
"sourceImageEncryptionKey"?: {
/**
* The encryption key used to encrypt the disk. Your project's Compute
* Engine System service account
* ('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com')
* must have 'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this
* feature. See
* https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
*/
"kmsKeyRef"?: {
/**
* Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.
*/
"external"?: string;
/**
* Name