{
    "definitions": {
        "endpoint": {
            "properties": {
                "host": {
                    "description": "The host of an address.",
                    "type": "string"
                },
                "port": {
                    "description": "The port of an address.",
                    "maximum": 65535,
                    "minimum": 1,
                    "type": "integer"
                }
            },
            "required": [
                "host",
                "port"
            ],
            "type": "object"
        }
    },
    "description": "Configuration for a LightStep tracer",
    "properties": {
        "access_token": {
            "description": "`access_token` is the unique API key for your LightStep project. It is\navailable on your account page at https://app.lightstep.com/account",
            "type": "string"
        },
        "collector_host": {
            "description": "The host to use when comunicating with the LightStep collector.",
            "type": "string"
        },
        "collector_plaintext": {
            "description": "Whether to use plaintext or not when communicating with the LightStep collector.",
            "type": "boolean"
        },
        "collector_port": {
            "description": "The port to use when communicating with the LightStep collector.",
            "maximum": 65535,
            "minimum": 1,
            "type": "integer"
        },
        "component_name": {
            "description": "`component_name` is the human-readable identity of the instrumented\nprocess. I.e., if one drew a block diagram of the distributed system,\nthe component_name would be the name inside the box that includes this\nprocess.",
            "type": "string"
        },
        "max_buffered_spans": {
            "description": "`max_buffered_spans` is the maximum number of spans that will be buffered\nbefore sending them to a collector.",
            "minimum": 1,
            "type": "integer"
        },
        "propagation_modes": {
            "description": "A list of propagation modes to use for injection/extraction.\nValid values are \"lightstep\", \"b3\", \"envoy\", and \"trace_context\".",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "report_timeout": {
            "description": "`report_timeout` is the timeout to use when sending a reports to the\ncollector. (In microseconds).",
            "minimum": 1,
            "type": "integer"
        },
        "reporting_period": {
            "description": "`reporting_period` is the maximum duration of time between sending spans\nto a collector. (In microseconds).",
            "minimum": 1,
            "type": "integer"
        },
        "satellite_endpoints": {
            "description": "A list of satellite endpoints to upload spans to.",
            "items": {
                "$ref": "#/definitions/endpoint"
            },
            "type": "array"
        },
        "ssl_root_certificates": {
            "description": "`ssl_root_certificates` specifies the CA certificates to use when\ntransporting spans to the collector.  If not set, LightStep will try to\nuse CA certificates located in standard system locations.\n\nNote: `ssl_root_certificates` should follow the PEM format.",
            "type": "string"
        },
        "tags": {
            "description": "Arbitrary key-value pairs that apply to all spans generated by this Tracer.",
            "type": "object"
        },
        "use_single_key_propagation": {
            "description": "Set `use_single_key_propagation` to Inject/Extract span context as a single\nkey in TextMap and HTTPHeaders carriers.",
            "type": "boolean"
        },
        "use_stream_recorder": {
            "description": "`use_stream_recorder` enables the streaming recorder for faster uploading of spans.",
            "type": "boolean"
        },
        "verbose": {
            "description": "Log at the debug level.",
            "type": "boolean"
        }
    },
    "required": [
        "access_token"
    ],
    "title": "TracerConfiguration",
    "type": "object"
}