def soap_envelope(cmd, obj, opts=None):
    """Construct a SOAP envelope with the request command, obj, and options.

    Args:
        cmd (:obj:`str`):
            Command to use for request.
        obj (:obj:`dict`):
            Object(s) to use for request.
        options (:obj:`dict`, optional):
            Options to use for request.

            Defaults to: None.

    Returns:
        :obj:`dict`

    """
    request = {"command": cmd, "object_list": obj, "options": opts}

    body = {
        "@xmlns:t": "urn:TaniumSOAP",
        "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
        "t:tanium_soap_request": request,
    }
    env = {
        "@soap:encodingStyle": "http://schemas.xmlsoap.org/soap/encoding/",
        "@xmlns:soap": "http://schemas.xmlsoap.org/soap/envelope/",
        "@xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
        "soap:Body": body,
    }
    ret = {"soap:Envelope": env}
    return ret