"""Stores enums for all valid configurations in gcloud for easy selection and auto-completion"""


class MachineType:
    """Valid values for Machine Types"""

    # Currently contains machine types avaliable in zone us_central1-a.
    # Machine types of other zones are to be added.(TO-DO)

    f1_micro = "f1-micro"
    g1_small = "g1-small"
    e2_medium = "e2-medium"
    e2_micro = "e2-micro"
    e2_small = "e2-small"
    c2_standard_16 = "c2-standard-16"
    c2_standard_30 = "c2-standard-30"
    c2_standard_4 = "c2-standard-4"
    c2_standard_60 = "c2-standard-60"
    c2_standard_8 = "c2-standard-8"
    e2_highcpu_16 = "e2-highcpu-16"
    e2_highcpu_2 = "e2-highcpu-2"
    e2_highcpu_4 = "e2-highcpu-4"
    e2_highcpu_8 = "e2-highcpu-8"
    e2_highmem_16 = "e2-highmem-16"
    e2_highmem_2 = "e2-highmem-2"
    e2_highmem_4 = "e2-highmem-4"
    e2_highmem_8 = "e2-highmem-8"
    e2_standard_16 = "e2-standard-16"
    e2_standard_2 = "e2-standard-2"
    e2_standard_4 = "e2-standard-4"
    e2_standard_8 = "e2-standard-8"
    m1_megamem_96 = "m1-megamem-96"
    m1_ultramem_160 = "m1-ultramem-160"
    m1_ultramem_40 = "m1-ultramem-40"
    m1_ultramem_80 = "m1-ultramem-80"
    n1_highcpu_16 = "n1-highcpu-16"
    n1_highcpu_2 = "n1-highcpu-2"
    n1_highcpu_32 = "n1-highcpu-32"
    n1_highcpu_4 = "n1-highcpu-4"
    n1_highcpu_64 = "n1-highcpu-64"
    n1_highcpu_8 = "n1-highcpu-8"
    n1_highcpu_96 = "n1-highcpu-96"
    n1_highmem_16 = "n1-highmem-16"
    n1_highmem_2 = "n1-highmem-2"
    n1_highmem_32 = "n1-highmem-32"
    n1_highmem_4 = "n1-highmem-4"
    n1_highmem_64 = "n1-highmem-64"
    n1_highmem_8 = "n1-highmem-8"
    n1_highmem_96 = "n1-highmem-96"
    n1_megamem_96 = "n1-megamem-96"
    n1_standard_1 = "n1-standard-1"
    n1_standard_16 = "n1-standard-16"
    n1_standard_2 = "n1-standard-2"
    n1_standard_32 = "n1-standard-32"
    n1_standard_4 = "n1-standard-4"
    n1_standard_64 = "n1-standard-64"
    n1_standard_8 = "n1-standard-8"
    n1_standard_96 = "n1-standard-96"
    n1_ultramem_160 = "n1-ultramem-160"
    n1_ultramem_40 = "n1-ultramem-40"
    n1_ultramem_80 = "n1-ultramem-80"
    n2_highcpu_16 = "n2-highcpu-16"
    n2_highcpu_2 = "n2-highcpu-2"
    n2_highcpu_32 = "n2-highcpu-32"
    n2_highcpu_4 = "n2-highcpu-4"
    n2_highcpu_48 = "n2-highcpu-48"
    n2_highcpu_64 = "n2-highcpu-64"
    n2_highcpu_8 = "n2-highcpu-8"
    n2_highcpu_80 = "n2-highcpu-80"
    n2_highmem_16 = "n2-highmem-16"
    n2_highmem_2 = "n2-highmem-2"
    n2_highmem_32 = "n2-highmem-32"
    n2_highmem_4 = "n2-highmem-4"
    n2_highmem_48 = "n2-highmem-48"
    n2_highmem_64 = "n2-highmem-64"
    n2_highmem_8 = "n2-highmem-8"
    n2_highmem_80 = "n2-highmem-80"
    n2_standard_16 = "n2-standard-16"
    n2_standard_2 = "n2-standard-2"
    n2_standard_32 = "n2-standard-32"
    n2_standard_4 = "n2-standard-4"
    n2_standard_48 = "n2-standard-48"
    n2_standard_64 = "n2-standard-64"
    n2_standard_8 = "n2-standard-8"
    n2_standard_80 = "n2-standard-80"
    n2d_highcpu_128 = "n2d-highcpu-128"
    n2d_highcpu_16 = "n2d-highcpu-16"
    n2d_highcpu_2 = "n2d-highcpu-2"
    n2d_highcpu_224 = "n2d-highcpu-224"
    n2d_highcpu_32 = "n2d-highcpu-32"
    n2d_highcpu_4 = "n2d-highcpu-4"
    n2d_highcpu_48 = "n2d-highcpu-48"
    n2d_highcpu_64 = "n2d-highcpu-64"
    n2d_highcpu_8 = "n2d-highcpu-8"
    n2d_highcpu_80 = "n2d-highcpu-80"
    n2d_highcpu_96 = "n2d-highcpu-96"
    n2d_highmem_16 = "n2d-highmem-16"
    n2d_highmem_2 = "n2d-highmem-2"
    n2d_highmem_32 = "n2d-highmem-32"
    n2d_highmem_4 = "n2d-highmem-4"
    n2d_highmem_48 = "n2d-highmem-48"
    n2d_highmem_64 = "n2d-highmem-64"
    n2d_highmem_8 = "n2d-highmem-8"
    n2d_highmem_80 = "n2d-highmem-80"
    n2d_highmem_96 = "n2d-highmem-96"
    n2d_standard_128 = "n2d-standard-128"
    n2d_standard_16 = "n2d-standard-16"
    n2d_standard_2 = "n2d-standard-2"
    n2d_standard_224 = "n2d-standard-224"
    n2d_standard_32 = "n2d-standard-32"
    n2d_standard_4 = "n2d-standard-4"
    n2d_standard_48 = "n2d-standard-48"
    n2d_standard_64 = "n2d-standard-64"
    n2d_standard_8 = "n2d-standard-8"
    n2d_standard_80 = "n2d-standard-80"
    n2d_standard_96 = "n2d-standard-96"


class Region:
    """Valid values for Region"""

    asia_east1 = "asia-east1"
    asia_east2 = "asia-east2"
    asia_northeast1 = "asia-northeast1"
    asia_northeast2 = "asia-northeast2"
    asia_northeast3 = "asia-northeast3"
    asia_south1 = "asia-south1"
    asia_southeast1 = "asia-southeast1"
    asia_southeast2 = "asia-southeast2"
    australia_southeast1 = "australia-southeast1"
    europe_north1 = "europe-north1"
    europe_west2 = "europe-west2"
    europe_west3 = "europe-west3"
    europe_west4 = "europe-west4"
    europe_west6 = "europe-west6"
    northamerica_northeast1 = "northamerica-northeast1"
    southamerica_east1 = "southamerica-east1"
    us_east4 = "us-east4"
    us_west1 = "us-west1"
    us_west2 = "us-west2"
    us_west3 = "us-west3"
    us_west4 = "us-west4"
    us_central1 = "us-central1"
    europe_west1 = "europe-west1"
    us_east1 = "us-east1"


class Zone:
    """Valid values for Zones"""

    asia_east1_a = "asia-east1-a"
    asia_east1_b = "asia-east1-b"
    asia_east1_c = "asia-east1-c"
    asia_east2_a = "asia-east2-a"
    asia_east2_b = "asia-east2-b"
    asia_east2_c = "asia-east2-c"
    asia_northeast1_a = "asia-northeast1-a"
    asia_northeast1_b = "asia-northeast1-b"
    asia_northeast1_c = "asia-northeast1-c"
    asia_northeast2_a = "asia-northeast2-a"
    asia_northeast2_b = "asia-northeast2-b"
    asia_northeast2_c = "asia-northeast2-c"
    asia_northeast3_a = "asia-northeast3-a"
    asia_northeast3_b = "asia-northeast3-b"
    asia_northeast3_c = "asia-northeast3-c"
    asia_south1_a = "asia-south1-a"
    asia_south1_b = "asia-south1-b"
    asia_south1_c = "asia-south1-c"
    asia_southeast1_a = "asia-southeast1-a"
    asia_southeast1_b = "asia-southeast1-b"
    asia_southeast1_c = "asia-southeast1-c"
    asia_southeast2_a = "asia-southeast2-a"
    asia_southeast2_b = "asia-southeast2-b"
    asia_southeast2_c = "asia-southeast2-c"
    australia_southeast1_a = "australia-southeast1-a"
    australia_southeast1_b = "australia-southeast1-b"
    australia_southeast1_c = "australia-southeast1-c"
    europe_north1_a = "europe-north1-a"
    europe_north1_b = "europe-north1-b"
    europe_north1_c = "europe-north1-c"
    europe_west2_a = "europe-west2-a"
    europe_west2_b = "europe-west2-b"
    europe_west2_c = "europe-west2-c"
    europe_west3_a = "europe-west3-a"
    europe_west3_b = "europe-west3-b"
    europe_west3_c = "europe-west3-c"
    europe_west4_a = "europe-west4-a"
    europe_west4_b = "europe-west4-b"
    europe_west4_c = "europe-west4-c"
    europe_west6_a = "europe-west6-a"
    europe_west6_b = "europe-west6-b"
    europe_west6_c = "europe-west6-c"
    northamerica_northeast1_a = "northamerica-northeast1-a"
    northamerica_northeast1_b = "northamerica-northeast1-b"
    northamerica_northeast1_c = "northamerica-northeast1-c"
    southamerica_east1_a = "southamerica-east1-a"
    southamerica_east1_b = "southamerica-east1-b"
    southamerica_east1_c = "southamerica-east1-c"
    us_east4_a = "us-east4-a"
    us_east4_b = "us-east4-b"
    us_east4_c = "us-east4-c"
    us_west1_a = "us-west1-a"
    us_west1_b = "us-west1-b"
    us_west1_c = "us-west1-c"
    us_west2_a = "us-west2-a"
    us_west2_b = "us-west2-b"
    us_west2_c = "us-west2-c"
    us_west3_a = "us-west3-a"
    us_west3_b = "us-west3-b"
    us_west3_c = "us-west3-c"
    us_west4_a = "us-west4-a"
    us_west4_b = "us-west4-b"
    us_west4_c = "us-west4-c"
    us_central1_a = "us-central1-a"
    us_central1_b = "us-central1-b"
    us_central1_c = "us-central1-c"
    us_central1_f = "us-central1-f"
    europe_west1_b = "europe-west1-b"
    europe_west1_c = "europe-west1-c"
    europe_west1_d = "europe-west1-d"
    us_east1_b = "us-east1-b"
    us_east1_c = "us-east1-c"
    us_east1_d = "us-east1-d"


class ImageFamily:
    """Valid values for ImageFamaily(OS)"""

    centos_6 = "centos-6"
    centos_7 = "centos-7"
    centos_7 = "centos-7"
    centos_8 = "centos-8"
    common_dl_gpu = "common-dl-gpu"
    common_gce_gpu_image = "common-gce-gpu-image"
    cos_69_lts = "cos-69-lts"
    cos_69_lts = "cos-69-lts"
    cos_73_lts = "cos-73-lts"
    cos_73_lts = "cos-73-lts"
    cos_77_lts = "cos-77-lts"
    cos_77_lts = "cos-77-lts"
    cos_81_lts = "cos-81-lts"
    cos_81_lts = "cos-81-lts"
    cos_beta = "cos-beta"
    cos_beta = "cos-beta"
    cos_dev = "cos-dev"
    cos_dev = "cos-dev"
    cos_sev_dev = "cos-sev-dev"
    cos_stable = "cos-stable"
    cos_stable = "cos-stable"
    debian_10 = "debian-10"
    debian_9 = "debian-9"
    pytorch_1_2_gpu = "pytorch-1-2-gpu"
    pytorch_1_3_gpu = "pytorch-1-3-gpu"
    pytorch_1_4_gpu = "pytorch-1-4-gpu"
    rhel_6 = "rhel-6"
    rhel_7 = "rhel-7"
    rhel_7 = "rhel-7"
    rhel_7_4_sap = "rhel-7-4-sap"
    rhel_7_6_sap_ha = "rhel-7-6-sap-ha"
    rhel_7_7_sap_ha = "rhel-7-7-sap-ha"
    rhel_8 = "rhel-8"
    sles_12 = "sles-12"
    sles_12_sp2_sap = "sles-12-sp2-sap"
    sles_12_sp3_sap = "sles-12-sp3-sap"
    sles_12_sp4_sap = "sles-12-sp4-sap"
    sles_12_sp5_sap = "sles-12-sp5-sap"
    sles_15 = "sles-15"
    sles_15_sap = "sles-15-sap"
    sles_15_sp1_sap = "sles-15-sp1-sap"
    sql_ent_2012_win_2012_r2 = "sql-ent-2012-win-2012-r2"
    sql_ent_2014_win_2012_r2 = "sql-ent-2014-win-2012-r2"
    sql_ent_2014_win_2016 = "sql-ent-2014-win-2016"
    sql_ent_2016_win_2012_r2 = "sql-ent-2016-win-2012-r2"
    sql_ent_2016_win_2016 = "sql-ent-2016-win-2016"
    sql_ent_2016_win_2019 = "sql-ent-2016-win-2019"
    sql_ent_2017_win_2016 = "sql-ent-2017-win-2016"
    sql_ent_2017_win_2019 = "sql-ent-2017-win-2019"
    sql_ent_2019_win_2019 = "sql-ent-2019-win-2019"
    sql_exp_2017_win_2012_r2 = "sql-exp-2017-win-2012-r2"
    sql_exp_2017_win_2016 = "sql-exp-2017-win-2016"
    sql_exp_2017_win_2019 = "sql-exp-2017-win-2019"
    sql_std_2012_win_2012_r2 = "sql-std-2012-win-2012-r2"
    sql_std_2014_win_2012_r2 = "sql-std-2014-win-2012-r2"
    sql_std_2016_win_2012_r2 = "sql-std-2016-win-2012-r2"
    sql_std_2016_win_2016 = "sql-std-2016-win-2016"
    sql_std_2016_win_2019 = "sql-std-2016-win-2019"
    sql_std_2017_win_2016 = "sql-std-2017-win-2016"
    sql_std_2017_win_2019 = "sql-std-2017-win-2019"
    sql_std_2019_win_2019 = "sql-std-2019-win-2019"
    sql_web_2012_win_2012_r2 = "sql-web-2012-win-2012-r2"
    sql_web_2014_win_2012_r2 = "sql-web-2014-win-2012-r2"
    sql_web_2016_win_2012_r2 = "sql-web-2016-win-2012-r2"
    sql_web_2016_win_2016 = "sql-web-2016-win-2016"
    sql_web_2016_win_2019 = "sql-web-2016-win-2019"
    sql_web_2017_win_2016 = "sql-web-2017-win-2016"
    sql_web_2017_win_2019 = "sql-web-2017-win-2019"
    sql_web_2019_win_2019 = "sql-web-2019-win-2019"
    tf_1_11 = "tf-1-11"
    tf_1_12 = "tf-1-12"
    tf_1_13 = "tf-1-13"
    tf_1_14 = "tf-1-14"
    tf_1_14_1_dev20190508 = "tf-1-14-1-dev20190508"
    tf_1_14_1_dev20190518 = "tf-1-14-1-dev20190518"
    tf_1_14_1_dev20190619 = "tf-1-14-1-dev20190619"
    tf_1_15 = "tf-1-15"
    tf_1_15_2 = "tf-1-15-2"
    tf_1_15_3 = "tf-1-15-3"
    tf_1_15_dev20190821 = "tf-1-15-dev20190821"
    tf_2_1 = "tf-2-1"
    tf_2_1_1 = "tf-2-1-1"
    tf_2_2 = "tf-2-2"
    tf_ent_1_15_gpu = "tf-ent-1-15-gpu"
    tf_ent_2_1_gpu = "tf-ent-2-1-gpu"
    tf_nightly = "tf-nightl"
    torch_xla = "torch-xla"
    ubuntu_1604_lts = "ubuntu-1604-lts"
    ubuntu_1804_lts = "ubuntu-1804-lts"
    ubuntu_1804_lts = "ubuntu-1804-lts"
    ubuntu_1910 = "ubuntu-1910"
    ubuntu_2004_lts = "ubuntu-2004-lts"
    ubuntu_minimal_1604_lts = "ubuntu-minimal-1604-lts"
    ubuntu_minimal_1804_lts = "ubuntu-minimal-1804-lts"
    ubuntu_minimal_1910 = "ubuntu-minimal-1910"
    ubuntu_minimal_2004_lts = "ubuntu-minimal-2004-lts"
    windows_1809_core = "windows-1809-core"
    windows_1809_core = "windows-1809-core"
    windows_1809_core_for_containers = "windows-1809-core-for-containers"
    windows_1809_core_for_containers = "windows-1809-core-for-containers"
    windows_1903_core = "windows-1903-core"
    windows_1903_core = "windows-1903-core"
    windows_1903_core_for_containers = "windows-1903-core-for-containers"
    windows_1903_core_for_containers = "windows-1903-core-for-containers"
    windows_1909_core = "windows-1909-core"
    windows_1909_core = "windows-1909-core"
    windows_1909_core_for_containers = "windows-1909-core-for-containers"
    windows_1909_core_for_containers = "windows-1909-core-for-containers"
    windows_2012_r2 = "windows-2012-r2"
    windows_2012_r2 = "windows-2012-r2"
    windows_2012_r2_core = "windows-2012-r2-core"
    windows_2012_r2_core = "windows-2012-r2-core"
    windows_2016 = "windows-2016"
    windows_2016 = "windows-2016"
    windows_2016_core = "windows-2016-core"
    windows_2016_core = "windows-2016-core"
    windows_2019 = "windows-2019"
    windows_2019 = "windows-2019"
    windows_2019_core = "windows-2019-core"
    windows_2019_core = "windows-2019-core"
    windows_2019_core_for_containers = "windows-2019-core-for-containers"
    windows_2019_core_for_containers = "windows-2019-core-for-containers"
    windows_2019_for_containers = "windows-2019-for-containers"
    windows_2019_for_containers = "windows-2019-for-containers"
