load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("//bazel/go:go_test.bzl", "go_test")

go_library(
    name = "cloudcmd",
    srcs = [
        "clients.go",
        "cloudcmd.go",
        "clusterupgrade.go",
        "create.go",
        "iam.go",
        "iamupgrade.go",
        "patch.go",
        "rollback.go",
        "serviceaccount.go",
        "terminate.go",
        "tfupgrade.go",
        "tfvars.go",
        "validators.go",
    ],
    importpath = "github.com/edgelesssys/constellation/v2/cli/internal/cloudcmd",
    visibility = ["//cli:__subpackages__"],
    deps = [
        "//cli/internal/cmd/pathprefix",
        "//cli/internal/libvirt",
        "//cli/internal/state",
        "//cli/internal/terraform",
        "//internal/atls",
        "//internal/attestation/choose",
        "//internal/attestation/measurements",
        "//internal/attestation/variant",
        "//internal/cloud/azureshared",
        "//internal/cloud/cloudprovider",
        "//internal/cloud/gcpshared",
        "//internal/cloud/openstack",
        "//internal/config",
        "//internal/constants",
        "//internal/file",
        "//internal/imagefetcher",
        "//internal/role",
        "@com_github_azure_azure_sdk_for_go//profiles/latest/attestation/attestation",
        "@com_github_azure_azure_sdk_for_go_sdk_azcore//policy",
        "@com_github_azure_azure_sdk_for_go_sdk_azidentity//:azidentity",
        "@com_github_spf13_cobra//:cobra",
    ],
)

go_test(
    name = "cloudcmd_test",
    srcs = [
        "clients_test.go",
        "clusterupgrade_test.go",
        "create_test.go",
        "iam_test.go",
        "patch_test.go",
        "rollback_test.go",
        "terminate_test.go",
        "tfupgrade_test.go",
        "validators_test.go",
    ],
    embed = [":cloudcmd"],
    deps = [
        "//cli/internal/state",
        "//cli/internal/terraform",
        "//internal/attestation/measurements",
        "//internal/attestation/variant",
        "//internal/cloud/cloudprovider",
        "//internal/cloud/gcpshared",
        "//internal/config",
        "//internal/constants",
        "//internal/file",
        "@com_github_spf13_afero//:afero",
        "@com_github_stretchr_testify//assert",
        "@com_github_stretchr_testify//require",
        "@org_uber_go_goleak//:goleak",
    ],
)