use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum DiskStatus {
Creating,
Deleting,
Failed,
Ready,
Restoring,
Unavailable,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum InstanceStatus {
Deprovisioning,
Pending,
Provisioning,
Repairing,
Running,
Staging,
Stopped,
Stopping,
Suspended,
Suspending,
Terminated,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum SnapshotStatus {
Creating,
Deleting,
Failed,
Ready,
Uploading,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum AddressStatus {
InUse,
Reserved,
Reserving,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum FirewallDirection {
Egress,
Ingress,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Disk {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub size_gb: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub disk_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub zone: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<DiskStatus>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source_snapshot: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source_image: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label_fingerprint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub physical_block_size_bytes: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub users: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_attach_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_detach_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_confidential_compute: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub provisioned_iops: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disk_encryption_key: Option<DiskEncryptionKey>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub guest_os_features: Vec<GuestOsFeature>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub resource_policies: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub region: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub replica_zones: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
}
impl Disk {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-disk".into(),
size_gb: Some("test-size_gb".into()),
disk_type: Some("test-type".into()),
zone: Some("test-zone".into()),
status: Some(DiskStatus::Creating),
self_link: Some("test-self_link".into()),
source_snapshot: Some("test-source_snapshot".into()),
source_image: Some("test-source_image".into()),
id: Some("test-id".into()),
creation_timestamp: Some("test-creation_timestamp".into()),
description: Some("test-description".into()),
labels: Default::default(),
label_fingerprint: Some("test-label_fingerprint".into()),
physical_block_size_bytes: Some("test-physical_block_size_bytes".into()),
users: vec![],
last_attach_timestamp: Some("test-last_attach_timestamp".into()),
last_detach_timestamp: Some("test-last_detach_timestamp".into()),
enable_confidential_compute: Some(false),
provisioned_iops: Some("test-provisioned_iops".into()),
disk_encryption_key: Some(DiskEncryptionKey::fixture()),
guest_os_features: vec![],
resource_policies: vec![],
region: Some("test-region".into()),
replica_zones: vec![],
kind: Some("test-kind".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DiskEncryptionKey {
#[serde(skip_serializing_if = "Option::is_none")]
pub raw_key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kms_key_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sha256: Option<String>,
}
impl DiskEncryptionKey {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
raw_key: Some("test-raw_key".into()),
kms_key_name: Some("test-kms_key_name".into()),
sha256: Some("test-sha256".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GuestOsFeature {
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub feature_type: Option<String>,
}
impl GuestOsFeature {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
feature_type: Some("test-type".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Instance {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub can_ip_forward: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub confidential_instance_config: Option<ConfidentialInstanceConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cpu_platform: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deletion_protection: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub disks: Vec<AttachedDisk>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_device: Option<DisplayDevice>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fingerprint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub key_revocation_action_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label_fingerprint: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_start_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_stop_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub machine_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<Metadata>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub network_interfaces: Vec<NetworkInterface>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reservation_affinity: Option<ReservationAffinity>,
#[serde(skip_serializing_if = "Option::is_none")]
pub satisfies_pzi: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub scheduling: Option<Scheduling>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub service_accounts: Vec<ServiceAccount>,
#[serde(skip_serializing_if = "Option::is_none")]
pub shielded_instance_config: Option<ShieldedInstanceConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub shielded_instance_integrity_policy: Option<ShieldedInstanceIntegrityPolicy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source_machine_image: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub start_restricted: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<InstanceStatus>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Tags>,
#[serde(skip_serializing_if = "Option::is_none")]
pub zone: Option<String>,
}
impl Instance {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-instance".into(),
can_ip_forward: Some(false),
confidential_instance_config: Some(ConfidentialInstanceConfig::fixture()),
cpu_platform: Some("test-cpu_platform".into()),
creation_timestamp: Some("test-creation_timestamp".into()),
deletion_protection: Some(false),
description: Some("test-description".into()),
disks: vec![],
display_device: Some(DisplayDevice::fixture()),
fingerprint: Some("test-fingerprint".into()),
id: Some("test-id".into()),
key_revocation_action_type: Some("test-key_revocation_action_type".into()),
kind: Some("test-kind".into()),
label_fingerprint: Some("test-label_fingerprint".into()),
labels: Default::default(),
last_start_timestamp: Some("test-last_start_timestamp".into()),
last_stop_timestamp: Some("test-last_stop_timestamp".into()),
machine_type: Some("test-machine_type".into()),
metadata: Some(Metadata::fixture()),
network_interfaces: vec![],
reservation_affinity: Some(ReservationAffinity::fixture()),
satisfies_pzi: Some(false),
scheduling: Some(Scheduling::fixture()),
self_link: Some("test-self_link".into()),
service_accounts: vec![],
shielded_instance_config: Some(ShieldedInstanceConfig::fixture()),
shielded_instance_integrity_policy: Some(ShieldedInstanceIntegrityPolicy::fixture()),
source_machine_image: Some("test-source_machine_image".into()),
start_restricted: Some(false),
status: Some(InstanceStatus::Deprovisioning),
tags: Some(Tags::fixture()),
zone: Some("test-zone".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AttachedDisk {
#[serde(skip_serializing_if = "Option::is_none")]
pub architecture: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub auto_delete: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub boot: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub device_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disk_size_gb: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub guest_os_features: Vec<GuestOsFeature>,
#[serde(skip_serializing_if = "Option::is_none")]
pub index: Option<i32>,
#[serde(rename = "interface")]
#[serde(skip_serializing_if = "Option::is_none")]
pub interface_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub licenses: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub disk_type: Option<String>,
}
impl AttachedDisk {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
architecture: Some("test-architecture".into()),
auto_delete: Some(false),
boot: Some(false),
device_name: Some("test-device_name".into()),
disk_size_gb: Some("test-disk_size_gb".into()),
guest_os_features: vec![],
index: Some(100),
interface_type: Some("test-interface".into()),
kind: Some("test-kind".into()),
licenses: vec![],
mode: Some("test-mode".into()),
source: Some("test-source".into()),
disk_type: Some("test-type".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct NetworkInterface {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub access_configs: Vec<AccessConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fingerprint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network_ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub stack_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subnetwork: Option<String>,
}
impl NetworkInterface {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
access_configs: vec![],
fingerprint: Some("test-fingerprint".into()),
kind: Some("test-kind".into()),
name: Some("test-network_interface".into()),
network: Some("test-network".into()),
network_ip: Some("test-network_ip".into()),
stack_type: Some("test-stack_type".into()),
subnetwork: Some("test-subnetwork".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AccessConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nat_ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network_tier: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub access_type: Option<String>,
}
impl AccessConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
kind: Some("test-kind".into()),
name: Some("test-access_config".into()),
nat_ip: Some("test-nat_ip".into()),
network_tier: Some("test-network_tier".into()),
access_type: Some("test-type".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Metadata {
#[serde(skip_serializing_if = "Option::is_none")]
pub fingerprint: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub items: Vec<MetadataItem>,
}
impl Metadata {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
fingerprint: Some("test-fingerprint".into()),
items: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Tags {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub items: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fingerprint: Option<String>,
}
impl Tags {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
items: vec![],
fingerprint: Some("test-fingerprint".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ServiceAccount {
pub email: String,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub scopes: Vec<String>,
}
impl ServiceAccount {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
email: "test-email".into(),
scopes: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Scheduling {
#[serde(skip_serializing_if = "Option::is_none")]
pub automatic_restart: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_termination_action: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub on_host_maintenance: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub preemptible: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub provisioning_model: Option<String>,
}
impl Scheduling {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
automatic_restart: Some(false),
instance_termination_action: Some("test-instance_termination_action".into()),
on_host_maintenance: Some("test-on_host_maintenance".into()),
preemptible: Some(false),
provisioning_model: Some("test-provisioning_model".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Snapshot {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub auto_created: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub chain_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_size_bytes: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disk_size_gb: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub download_bytes: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_confidential_compute: Option<bool>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub guest_os_features: Vec<GuestOsFeature>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label_fingerprint: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub license_codes: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub licenses: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub snapshot_encryption_key: Option<DiskEncryptionKey>,
#[serde(skip_serializing_if = "Option::is_none")]
pub snapshot_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source_disk: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source_disk_encryption_key: Option<DiskEncryptionKey>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source_disk_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<SnapshotStatus>,
#[serde(skip_serializing_if = "Option::is_none")]
pub storage_bytes: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub storage_bytes_status: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub storage_locations: Vec<String>,
}
impl Snapshot {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-snapshot".into(),
auto_created: Some(false),
chain_name: Some("test-chain_name".into()),
creation_size_bytes: Some("test-creation_size_bytes".into()),
creation_timestamp: Some("test-creation_timestamp".into()),
description: Some("test-description".into()),
disk_size_gb: Some("test-disk_size_gb".into()),
download_bytes: Some("test-download_bytes".into()),
enable_confidential_compute: Some(false),
guest_os_features: vec![],
id: Some("test-id".into()),
kind: Some("test-kind".into()),
label_fingerprint: Some("test-label_fingerprint".into()),
labels: Default::default(),
license_codes: vec![],
licenses: vec![],
self_link: Some("test-self_link".into()),
snapshot_encryption_key: Some(DiskEncryptionKey::fixture()),
snapshot_type: Some("test-snapshot_type".into()),
source_disk: Some("test-source_disk".into()),
source_disk_encryption_key: Some(DiskEncryptionKey::fixture()),
source_disk_id: Some("test-source_disk_id".into()),
status: Some(SnapshotStatus::Creating),
storage_bytes: Some("test-storage_bytes".into()),
storage_bytes_status: Some("test-storage_bytes_status".into()),
storage_locations: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct OperationResponse {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub operation_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub target_link: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
}
impl OperationResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self::fixture_done()
}
#[cfg(any(test, feature = "test-support"))]
pub fn fixture_pending() -> Self {
Self {
name: "operation-pending".into(),
status: Some("PENDING".into()),
self_link: Some(
"https://compute.googleapis.com/compute/v1/projects/test-project/operations/op-123"
.into(),
),
..Default::default()
}
}
#[cfg(any(test, feature = "test-support"))]
pub fn fixture_done() -> Self {
Self {
name: "operation-done".into(),
status: Some("DONE".into()),
self_link: Some(
"https://compute.googleapis.com/compute/v1/projects/test-project/operations/op-123"
.into(),
),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Address {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label_fingerprint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network_tier: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prefix_length: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub purpose: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub region: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<AddressStatus>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subnetwork: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub users: Vec<String>,
}
impl Address {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-address".into(),
address: Some("test-address".into()),
address_type: Some("test-address_type".into()),
creation_timestamp: Some("test-creation_timestamp".into()),
description: Some("test-description".into()),
id: Some("test-id".into()),
kind: Some("test-kind".into()),
labels: Default::default(),
label_fingerprint: Some("test-label_fingerprint".into()),
network: Some("test-network".into()),
network_tier: Some("test-network_tier".into()),
prefix_length: Some(100),
purpose: Some("test-purpose".into()),
region: Some("test-region".into()),
self_link: Some("test-self_link".into()),
status: Some(AddressStatus::InUse),
subnetwork: Some("test-subnetwork".into()),
users: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Router {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub nats: Vec<RouterNat>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub region: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
}
impl Router {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-router".into(),
creation_timestamp: Some("test-creation_timestamp".into()),
description: Some("test-description".into()),
id: Some("test-id".into()),
kind: Some("test-kind".into()),
nats: vec![],
network: Some("test-network".into()),
region: Some("test-region".into()),
self_link: Some("test-self_link".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RouterNat {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub nat_ip_allocate_option: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source_subnetwork_ip_ranges_to_nat: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub nat_ips: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub drain_nat_ips: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub min_ports_per_vm: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_ports_per_vm: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_endpoint_independent_mapping: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_dynamic_port_allocation: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub log_config: Option<RouterNatLogConfig>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub nat_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub auto_network_tier: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub subnetworks: Vec<RouterNatSubnetworkToNat>,
#[serde(skip_serializing_if = "Option::is_none")]
pub udp_idle_timeout_sec: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tcp_established_idle_timeout_sec: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tcp_transitory_idle_timeout_sec: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tcp_time_wait_timeout_sec: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub icmp_idle_timeout_sec: Option<i32>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub endpoint_types: Vec<String>,
}
impl RouterNat {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-router_nat".into(),
nat_ip_allocate_option: Some("test-nat_ip_allocate_option".into()),
source_subnetwork_ip_ranges_to_nat: Some(
"test-source_subnetwork_ip_ranges_to_nat".into(),
),
nat_ips: vec![],
drain_nat_ips: vec![],
min_ports_per_vm: Some(100),
max_ports_per_vm: Some(100),
enable_endpoint_independent_mapping: Some(false),
enable_dynamic_port_allocation: Some(false),
log_config: Some(RouterNatLogConfig::fixture()),
nat_type: Some("test-type".into()),
auto_network_tier: Some("test-auto_network_tier".into()),
subnetworks: vec![],
udp_idle_timeout_sec: Some(100),
tcp_established_idle_timeout_sec: Some(100),
tcp_transitory_idle_timeout_sec: Some(100),
tcp_time_wait_timeout_sec: Some(100),
icmp_idle_timeout_sec: Some(100),
endpoint_types: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RouterNatLogConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub enable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<String>,
}
impl RouterNatLogConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
enable: Some(false),
filter: Some("test-filter".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RouterNatSubnetworkToNat {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub source_ip_ranges_to_nat: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub secondary_ip_range_names: Vec<String>,
}
impl RouterNatSubnetworkToNat {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-router_nat_subnetwork_to_nat".into()),
source_ip_ranges_to_nat: vec![],
secondary_ip_range_names: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BackendService {
pub name: String,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub backends: Vec<Backend>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fingerprint: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub health_checks: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub load_balancing_scheme: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub log_config: Option<BackendServiceLogConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub port: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub port_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub protocol: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub region: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub session_affinity: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout_sec: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub connection_draining: Option<ConnectionDraining>,
}
impl BackendService {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-backend_service".into(),
backends: vec![],
creation_timestamp: Some("test-creation_timestamp".into()),
description: Some("test-description".into()),
fingerprint: Some("test-fingerprint".into()),
health_checks: vec![],
id: Some("test-id".into()),
kind: Some("test-kind".into()),
load_balancing_scheme: Some("test-load_balancing_scheme".into()),
log_config: Some(BackendServiceLogConfig::fixture()),
network: Some("test-network".into()),
port: Some(100),
port_name: Some("test-port_name".into()),
protocol: Some("test-protocol".into()),
region: Some("test-region".into()),
self_link: Some("test-self_link".into()),
session_affinity: Some("test-session_affinity".into()),
timeout_sec: Some(100),
connection_draining: Some(ConnectionDraining::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Backend {
#[serde(skip_serializing_if = "Option::is_none")]
pub balancing_mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub capacity_scaler: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub failover: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub group: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_connections: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_connections_per_endpoint: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_connections_per_instance: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_rate: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_rate_per_endpoint: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_rate_per_instance: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_utilization: Option<f32>,
}
impl Backend {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
balancing_mode: Some("test-balancing_mode".into()),
description: Some("test-description".into()),
failover: Some(false),
group: Some("test-group".into()),
max_connections: Some(100),
max_connections_per_endpoint: Some(100),
max_connections_per_instance: Some(100),
max_rate: Some(100),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BackendServiceLogConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub enable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sample_rate: Option<f32>,
}
impl BackendServiceLogConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
enable: Some(false),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConnectionDraining {
#[serde(skip_serializing_if = "Option::is_none")]
pub draining_timeout_sec: Option<i32>,
}
impl ConnectionDraining {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
draining_timeout_sec: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Firewall {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub direction: Option<FirewallDirection>,
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i32>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub allowed: Vec<FirewallAllowed>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub denied: Vec<FirewallDenied>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub source_ranges: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub destination_ranges: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub source_tags: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub target_tags: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub source_service_accounts: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub target_service_accounts: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
}
impl Firewall {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-firewall".into(),
description: Some("test-description".into()),
network: Some("test-network".into()),
direction: Some(FirewallDirection::Egress),
priority: Some(100),
allowed: vec![],
denied: vec![],
source_ranges: vec![],
destination_ranges: vec![],
source_tags: vec![],
target_tags: vec![],
source_service_accounts: vec![],
target_service_accounts: vec![],
disabled: Some(false),
self_link: Some("test-self_link".into()),
id: Some("test-id".into()),
creation_timestamp: Some("test-creation_timestamp".into()),
kind: Some("test-kind".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DisksResizeRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub size_gb: Option<String>,
}
impl DisksResizeRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
size_gb: Some("test-size_gb".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct InstancesSetMachineTypeRequest {
pub machine_type: String,
}
impl InstancesSetMachineTypeRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
machine_type: "test-machine_type".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct InstancesSetServiceAccountRequest {
pub email: String,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub scopes: Vec<String>,
}
impl InstancesSetServiceAccountRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
email: "test-email".into(),
scopes: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SubnetworkLogConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub enable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregation_interval: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub flow_sampling: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<String>,
}
impl SubnetworkLogConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
enable: Some(false),
aggregation_interval: Some("test-aggregation_interval".into()),
metadata: Some("test-metadata".into()),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Subnetwork {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fingerprint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_flow_logs: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub log_config: Option<SubnetworkLogConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub private_ip_google_access: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub region: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
impl Subnetwork {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-subnetwork".into()),
fingerprint: Some("test-fingerprint".into()),
enable_flow_logs: Some(false),
log_config: Some(SubnetworkLogConfig::fixture()),
private_ip_google_access: Some(false),
description: Some("test-description".into()),
region: Some("test-region".into()),
network: Some("test-network".into()),
self_link: Some("test-self_link".into()),
id: Some("test-id".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SslPolicy {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub profile: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub min_tls_version: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub custom_features: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fingerprint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_link: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub enabled_features: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
impl SslPolicy {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-ssl_policy".into(),
profile: Some("test-profile".into()),
min_tls_version: Some("test-min_tls_version".into()),
custom_features: vec![],
fingerprint: Some("test-fingerprint".into()),
id: Some("test-id".into()),
self_link: Some("test-self_link".into()),
enabled_features: vec![],
description: Some("test-description".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SslPoliciesList {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub items: Vec<SslPolicy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl SslPoliciesList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
items: vec![],
next_page_token: Some("test-next_page_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConfidentialInstanceConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_confidential_compute: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub confidential_instance_type: Option<String>,
}
impl ConfidentialInstanceConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
enable_confidential_compute: Some(false),
confidential_instance_type: Some("test-confidential_instance_type".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DisplayDevice {
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_display: Option<bool>,
}
impl DisplayDevice {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
enable_display: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ReservationAffinity {
#[serde(skip_serializing_if = "Option::is_none")]
pub consume_reservation_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub values: Vec<String>,
}
impl ReservationAffinity {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
consume_reservation_type: Some("test-consume_reservation_type".into()),
key: Some("test-key".into()),
values: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ShieldedInstanceConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_integrity_monitoring: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_secure_boot: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_vtpm: Option<bool>,
}
impl ShieldedInstanceConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
enable_integrity_monitoring: Some(false),
enable_secure_boot: Some(false),
enable_vtpm: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ShieldedInstanceIntegrityPolicy {
#[serde(skip_serializing_if = "Option::is_none")]
pub update_auto_learn_policy: Option<bool>,
}
impl ShieldedInstanceIntegrityPolicy {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
update_auto_learn_policy: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MetadataItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FirewallAllowed {
#[serde(rename = "IPProtocol")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ip_protocol: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FirewallDenied {
#[serde(rename = "IPProtocol")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ip_protocol: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DiskList {
#[serde(default)]
pub items: Vec<Disk>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl DiskList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
items: vec![],
next_page_token: None,
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct InstanceList {
#[serde(default)]
pub items: Vec<Instance>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl InstanceList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
items: vec![],
next_page_token: None,
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SnapshotList {
#[serde(default)]
pub items: Vec<Snapshot>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl SnapshotList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
items: vec![],
next_page_token: None,
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AddressList {
#[serde(default)]
pub items: Vec<Address>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl AddressList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
items: vec![],
next_page_token: None,
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BackendServiceList {
#[serde(default)]
pub items: Vec<BackendService>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl BackendServiceList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
items: vec![],
next_page_token: None,
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FirewallList {
#[serde(default)]
pub items: Vec<Firewall>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl FirewallList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
items: vec![],
next_page_token: None,
}
}
}