[
    {
      "name": "Successful GET call to https://example.com",
      "method": "GET",
      "url": "https://example.com/",
      "spanName": "/",
      "spanStatus": "OK",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "example.com",
        "http.status_code": "200",
        "http.url": "https://example.com/"
      }
    },
    {
      "name": "Successfully POST call to https://example.com",
      "method": "POST",
      "url": "https://example.com/",
      "spanName": "/",
      "spanStatus": "OK",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "POST",
        "http.host": "example.com",
        "http.status_code": "200",
        "http.url": "https://example.com/"
      }
    },
    {
      "name": "Name is populated as a path",
      "method": "GET",
      "url": "http://{host}:{port}/path/to/resource/",
      "responseCode": 200,
      "spanName": "/path/to/resource/",
      "spanStatus": "OK",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/path/to/resource/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "200",
        "http.url": "http://{host}:{port}/path/to/resource/"
      }
    },
    {
      "name": "Call that cannot resolve DNS will be reported as error span",
      "method": "GET",
      "url": "https://sdlfaldfjalkdfjlkajdflkajlsdjf.sdlkjafsdjfalfadslkf.com/",
      "spanName": "/",
      "spanStatus": "UNKNOWN",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "sdlfaldfjalkdfjlkajdflkajlsdjf.sdlkjafsdjfalfadslkf.com",
        "http.url": "https://sdlfaldfjalkdfjlkajdflkajlsdjf.sdlkjafsdjfalfadslkf.com/"
      }
    },
    {
      "name": "Response code: 199. This test case is not possible to implement on some platforms as they don't allow to return this status code. Keeping this test case for visibility, but it actually simply a fallback into 200 test case",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 200,
      "spanName": "/",
      "spanStatus": "OK",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "200",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 200",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 200,
      "spanName": "/",
      "spanStatus": "OK",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "200",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 399",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 399,
      "spanName": "/",
      "spanStatus": "OK",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "399",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 400",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 400,
      "spanName": "/",
      "spanStatus": "INVALID_ARGUMENT",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "400",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 401",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 401,
      "spanName": "/",
      "spanStatus": "UNAUTHENTICATED",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "401",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 403",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 403,
      "spanName": "/",
      "spanStatus": "PERMISSION_DENIED",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "403",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 404",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 404,
      "spanName": "/",
      "spanStatus": "NOT_FOUND",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "404",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 429",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 429,
      "spanName": "/",
      "spanStatus": "RESOURCE_EXHAUSTED",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "429",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 501",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 501,
      "spanName": "/",
      "spanStatus": "UNIMPLEMENTED",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "501",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 503",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 503,
      "spanName": "/",
      "spanStatus": "UNAVAILABLE",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "503",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 504",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 504,
      "spanName": "/",
      "spanStatus": "DEADLINE_EXCEEDED",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "504",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "Response code: 600",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "responseCode": 600,
      "spanName": "/",
      "spanStatus": "UNKNOWN",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "600",
        "http.url": "http://{host}:{port}/"
      }
    },
    {
      "name": "User agent attribute populated",
      "method": "GET",
      "url": "http://{host}:{port}/",
      "headers": {
        "User-Agent": "test-user-agent"
      },
      "responseCode": 200,
      "spanName": "/",
      "spanStatus": "OK",
      "spanKind": "Client",
      "spanAttributes": {
        "http.path": "/",
        "http.method": "GET",
        "http.host": "{host}:{port}",
        "http.status_code": "200",
        "http.user_agent": "test-user-agent",
        "http.url": "http://{host}:{port}/"
      }
    }
  ]