# Copyright 2020 VMware, Inc.  All rights reserved. -- VMware Confidential
# Description: Provides class EdgeClusterConstants
# Disabled: True
#
#  edge_cluster_constants.py
#


class EdgeClusterConstants:
    """Various constants of use to the edge cluster cleaner, and potentially
    to other code which operates on edge clusters and their configuration.
    """

    # relative NSX-T public API endpoints

    REL_SEGMENT_LIST_URL = "/policy/api/v1/infra/segments"

    REL_TIER0_LIST_URL = "/policy/api/v1/infra/tier-0s"
    REL_TIER1_LIST_URL = "/policy/api/v1/infra/tier-1s"

    REL_FED_TIER0_LIST_URL = "/policy/api/v1/global-infra/tier-0s"
    REL_FED_TIER1_LIST_URL = "/policy/api/v1/global-infra/tier-1s"

    REL_CLUSTER_LIST_URL = "/api/v1/edge-clusters"

    REL_CLUSTER_PROFILE_LIST_URL = "/api/v1/cluster-profiles"

    # Absolute URL of private VCF inventory endpoint
    VCF_EDGE_CLUST_INV_LIST_URL = (
        "http://localhost/inventory/nsxt-edgeclusters")

    # Name of NSX-T 3.x tier-1 property whose value specifies the path
    # of the tier-1's connected tier-0 gateway. Property is absent for
    # a tier-1 which has no associated tier-0.
    NSXT_TIER1_TIER0_PATH_PROP = "tier0_path"

    # Name of VCF edge cluster inventory property whose value specifies
    # the NSX-T ID of the edge cluster. Not present in J1 and other
    # early releases.
    EDGE_CLUST_INV_NSXTID_PROP = "edgeClusterNsxtId"

    # In a VCF edge cluster inventory record, value of the "status" property
    # indicating that an edge cluster is in the process of being destroyed.
    VCF_EDGE_CLUST_INV_STATUS_DEACTIVATING = "DEACTIVATING"

    # NSX-T common _protection property value to indicate an unprotected item.
    # (WCP marks its configuration with a different value to discourage
    #  casual modifications.)
    # Oddly, the NSX-T Java SDK documents this string, but does not provide
    # a predefined constant for it. So we just make up a constant name:
    NSXT_PROT_UNPROTECTED = "NOT_PROTECTED"
