summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/exporter-otlp/Protocols.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/open-telemetry/exporter-otlp/Protocols.php')
-rw-r--r--vendor/open-telemetry/exporter-otlp/Protocols.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/vendor/open-telemetry/exporter-otlp/Protocols.php b/vendor/open-telemetry/exporter-otlp/Protocols.php
new file mode 100644
index 000000000..96b04d8bf
--- /dev/null
+++ b/vendor/open-telemetry/exporter-otlp/Protocols.php
@@ -0,0 +1,36 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OpenTelemetry\Contrib\Otlp;
+
+use OpenTelemetry\SDK\Common\Configuration\KnownValues;
+use UnexpectedValueException;
+
+class Protocols
+{
+ public const GRPC = KnownValues::VALUE_GRPC;
+ public const HTTP_PROTOBUF = KnownValues::VALUE_HTTP_PROTOBUF;
+ public const HTTP_JSON = KnownValues::VALUE_HTTP_JSON;
+ public const HTTP_NDJSON = KnownValues::VALUE_HTTP_NDJSON;
+ private const PROTOCOLS = [
+ self::GRPC => ContentTypes::PROTOBUF,
+ self::HTTP_PROTOBUF => ContentTypes::PROTOBUF,
+ self::HTTP_JSON => ContentTypes::JSON,
+ self::HTTP_NDJSON => ContentTypes::NDJSON,
+ ];
+
+ public static function validate(string $protocol): void
+ {
+ if (!array_key_exists($protocol, self::PROTOCOLS)) {
+ throw new UnexpectedValueException('Unknown protocol: ' . $protocol);
+ }
+ }
+
+ public static function contentType(string $protocol): string
+ {
+ self::validate($protocol);
+
+ return self::PROTOCOLS[$protocol];
+ }
+}