 import Foundation
 
 public enum ResourceConstants: String {
-     /// Logical name of the service. MUST be the same for all instances of horizontally scaled services.
+    /// Logical name of the service. MUST be the same for all instances of horizontally scaled services.
     case serviceName = "service.name";
     /// A namespace for `service.name`. A string value having a meaning that helps to distinguish a group of services,
-    case serviceNamespace = "service.namespace";
+    case serviceNamespace = "service.namespace"
     /// The string ID of the service instance. MUST be unique for each instance of the same
     case serviceInstance = "service.instance.id"
     /// The version string of the service API or implementation.
     case serviceVersion = "service.version"
+    
+    /// The name of the telemetry SDK.
+    case telemetrySdkName = "telemetry.sdk.name"
+    /// The language of the telemetry SDK.
+    case telemetrySdkLanguage = "telemetry.sdk.language"
+    /// The version string of the telemetry SDK.
+    case telemetrySdkVersion = "telemetry.sdk.version"
+    
     /// The name of the telemetry library.
     case libraryName = "library.name"
     /// The language of telemetry library and of the code instrumented with it.
     case libraryLanguage = "library.language"
     /// The version string of the library.
     case libraryVersion = "library.version"
+    
     /// Container name.
     case containerName = "container.name"
     /// Name of the image the container was built on.
     case containerImageName = "container.image.name"
     /// Container image tag.
     case containerImageTag = "container.image.tag"
-    /// The name of the cluster that the pod is running in.
-    case k8sCluster = "k8s.cluster.name"
-    /// The name of the namespace that the pod is running in.
-    case k8sNamespace = "k8s.namespace.name"
-    /// The name of the pod.
-    case k8sPod = "k8s.pod.name"
-    /// The name of the deployment.
-    case k8sDeployment = "k8s.deployment.name"
+    /// Container ID. Usually a UUID, as for example used to identify Docker containers. The UUID might be abbreviated
+    case containerId = "container.id"
+    /// The container runtime managing this container
+    case containerRuntime = "container.runtime"
+    
+    /// Name of the deployment environment (aka deployment tier).
+    ///
+    /// Examples: "staging", "production"
+    case deploymentEnvironment = "deployment.environment"
+    
     /// Hostname of the host. It contains what the `hostname` command returns on the host machine.
     case hostHostname = "host.hostname"
     /// Unique host id. For Cloud this must be the instance_id assigned by the cloud provider.

    case cloudRegion = "cloud.region"
    /// Zones are a sub set of the region connected through low-latency links.
    case cloudZone = "cloud.zone"
}

public func ==(left: ResourceConstants, right: String) -> Bool {

    case hostName = "host.name"
    /// Type of host. For Cloud this must be the machine type.
    case hostType = "host.type"
    /// The CPU architecture the host system is running on
    case hostArch = "host.arch"
    /// Name of the VM image or OS install the host was instantiated from.
    case hostImageName = "host.image.name"
    /// VM image id. For Cloud, this value is from the provider.
    case hostImageId = "host.image.id"
    /// The version string of the VM image.
    case hostImageVersion = "host.image.version"
    
    /// The operating system type
    case osType = "os.type"
    /// Human readable (not intended to be parsed) OS version information, like e.g. reported by ver or lsb_release -a commands.
    case osDescription = "os.description"
    
    /// Name of the cloud provider.
    case cloudProvider = "cloud.provider"
    /// The cloud account id used to identify different entities.
