Aura Log Streaming API v1

Configure a flexible log collection utility that streams transaction logs to external Kafka destinations in near real time.

Learn more:


Overview

The Aura Log Streaming API is applicable to all Aura video delivery products.

This API allows you, as an LCDN or LMS operator, to manage the streaming, or export, of transaction logs to external Kafka destinations in near real-time.

Getting started

Before you use the Aura Log Streaming API for the first time, you must obtain an authorization token by creating and registering an application using the Aura Management Center (AMC) GUI. For detailed information about obtaining a token, see the “Managing OAuth2 Applications” section in the latest version of the Aura LCDN Administration Guide.

Concurrency control

To make sure that API clients do not overwrite each other’s data, this API supports optimistic concurrency control for PUT operations by including an Etag header. When the client updates a resource, it can include an optional If-Match header with the ETag header value it received from the GET. When the client provides an If-Match header, the request succeeds if the state matches what the client is updating as indicated by the ETag; otherwise it issues a 412 error.

Resources

This section provides details on the API’s various operations.

The following provides a road map of all the conceptual objects you deal with when interacting with this API

  • Stream: A stream specifies a source and a destination for streamed logs.

  • Source: A source specifies one type of log streaming source, such as HPC access logs.

  • Service: A service specifies a service type, such as Request Router, that has streamable customer logs.

  • Destination: A destination specifies a Kafka collection location for streamed logs.

  • Settings: Security settings specify certificates, keys, and CA certificates for a destination. Global settings apply to all destinations.

Before you begin any API operations, you must obtain an authorization token that you need from the AMC GUI. Please refer to the Getting Started section for detailed information.

API summary

Download the RAML descriptors for this API.

Operation Method Endpoint
Streams  
Create a new stream POST /api/log-streaming/v1/streams
List streams GET /api/log-streaming/v1/streams
Update a stream PUT /api/log-streaming/v1/streams/{streamId}
Remove a stream DELETE /api/log-streaming/v1/streams/{streamId}
Get a stream GET /api/log-streaming/v1/streams/{streamId}
Sources  
List sources GET /api/log-streaming/v1/sources
Get a source GET /api/log-streaming/v1/sources/{sourceId}
Services  
List services GET /api/log-streaming/v1/services
Get a service GET /api/log-streaming/v1/services/{serviceId}
Destinations  
Create a new destination POST /api/log-streaming/v1/destinations
List destinations GET /api/log-streaming/v1/destinations
Update a destination PUT /api/log-streaming/v1/destinations/{destinationId}
Remove a destination DELETE /api/log-streaming/v1/destinations/{destinationId}
Get a destination GET /api/log-streaming/v1/destinations/{destinationId}
Update security settings PUT /api/log-streaming/v1/destinations/{destinationId}/security
Get security settings GET /api/log-streaming/v1/destinations/{destinationId}/security

Create a new stream

This operation creates a new stream. A stream is defined by a unique stream ID, destination, source, and Kafka server.

POST /api/log-streaming/v1/streams

Content-Type: application/json

Object type: Stream

Download schema: stream.create.schema.json

Request Body:

{
    "destinationId": 1,
    "sourceId": 1,
    "kafkaTopic": "topic1"
}

Status 201 application/json

Headers:

ETag: 5c8235ea
Location: https://akzz-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/api/log-streaming/v1/streams/1

Object type: Stream

Download schema: stream.full.schema.json

Response Body:

{
    "streamId": 6,
    "destinationId": 1,
    "sourceId": 1,
    "enable": true,
    "kafkaTopic": "topic1"
}
  1. Run the List Destinations operation to get a list of the configured destinations. Store the destinationId of the relevant destination from the response.

  2. Make a GET request to /api/log-streaming/v1/sources. Store the sourceid of the relevant source from the response. The sourceid must match the server side configuration.

  3. Build a new Stream object.

  4. POST the object to /api/log-streaming/v1/streams.

  5. The Location response header provides a direct link where you can follow up and GET the new stream.

List streams

This operation returns a list of all configured streams.

GET /api/log-streaming/v1/streams

Status 200 application/json

Object type: Stream

Download schema: stream.collection.schema.json

Response Body:

{
    "streams": [
        {
            "streamId": 6,
            "destinationId": 1,
            "sourceId": 1
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 1
    }
}

Update a stream

Update the details of the stream.

PUT /api/log-streaming/v1/streams/{streamId}

Sample: /api/log-streaming/v1/streams/1

Headers:

If-Match: 5c8235ea

Content-Type: application/json

Object type: Stream

Download schema: stream.update.schema.json

Request Body:

{
    "streamId": 6,
    "destinationId": 1,
    "sourceId": 1,
    "enable": true,
    "kafkaTopic": "topic1"
}
Parameter Type Sample Description
URL parameters
streamId Integer 1 Uniquely identifies a stream.

Status 200 application/json

Headers:

ETag: 5c8235ea

Object type: Stream

Download schema: stream.full.schema.json

Response Body:

{
    "streamId": 6,
    "destinationId": 1,
    "sourceId": 1,
    "enable": true,
    "kafkaTopic": "topic1"
}
  1. Run the List streams operation to get a list of the configured streams. Store the streamId of the relevant stream from the response.

  2. Make a GET request to /api/log-streaming/v1/streams/{streamId}.

  3. Modify the Stream object. To interpret the response object, go to Stream members.

  4. PUT the object to /api/log-streaming/v1/streams/{streamId}. The request body is the Stream object updated in step 3, represented in JSON.

  5. The operation responds with the updated Stream object.

Remove a stream

Delete the details of the stream.

DELETE /api/log-streaming/v1/streams/{streamId}

Sample: /api/log-streaming/v1/streams/1

Parameter Type Sample Description
URL parameters
streamId Integer 1 Uniquely identifies a stream.

Status 204

  1. Run the List streams operation to get a list of the configured streams. Store the streamId of the relevant stream from the response.

  2. Make a DELETE request to /api/log-streaming/v1/streams/{streamId}.

Get a stream

Retrieve the details of the stream.

GET /api/log-streaming/v1/streams/{streamId}

Sample: /api/log-streaming/v1/streams/1

Parameter Type Sample Description
URL parameters
streamId Integer 1 Uniquely identifies a stream.

Status 200 application/json

Headers:

ETag: 5c8235ea

Object type: Stream

Download schema: stream.full.schema.json

Response Body:

{
    "streamId": 6,
    "destinationId": 1,
    "sourceId": 1,
    "enable": true,
    "kafkaTopic": "topic1"
}
  1. Run the List streams operation to get a list of the configured streams. Store the streamId of the relevant stream from the response.

  2. Make a GET request to /api/log-streaming/v1/streams/{streamId}.

  3. The operation responds with a Stream object.

List sources

This operation returns a list of all configured sources.

GET /api/log-streaming/v1/sources

Status 200 application/json

Object type: Source

Download schema: source.collection.schema.json

Response Body:

{
    "sources": [
        {
            "sourceId": 1,
            "name": "access-logs",
            "serviceId": 1
        },
        {
            "sourceId": 2,
            "name": "origin-logs",
            "serviceId": 1
        },
        {
            "sourceId": 3,
            "name": "dns-access-logs",
            "serviceId": 2
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 3
    }
}

Get a source

Retrieve the details of the source identified by sourceId.

GET /api/log-streaming/v1/sources/{sourceId}

Sample: /api/log-streaming/v1/sources/1

Parameter Type Sample Description
URL parameters
sourceId Integer 1 Uniquely identifies a source.

Status 200 application/json

Headers:

ETag: 5c8235ea

Object type: Source

Download schema: source.full.schema.json

Response Body:

{
    "sourceId": 1,
    "name": "access-logs",
    "serviceId": 1
}
  1. Run the List sources operation to retrieve a list of all configured sources. Store the sourceId of the relevant source from the response.

  2. Make a GET request to /api/log-streaming/v1/sources/{sourceId}.

  3. The response is a Source object.

List services

This operation returns a list of all configured services.

GET /api/log-streaming/v1/services

Status 200 application/json

Object type: Service

Download schema: service.collection.schema.json

Response Body:

{
    "services": [
        {
            "serviceId": 1,
            "name": "hypercache"
        },
        {
            "serviceId": 2,
            "name": "request-router"
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 2
    }
}

Get a service

Retrieve the details of the service identified by serviceId.

GET /api/log-streaming/v1/services/{serviceId}

Sample: /api/log-streaming/v1/services/1

Parameter Type Sample Description
URL parameters
serviceId Integer 1 Uniquely identifies a service.

Status 200 application/json

Headers:

ETag: 5c8235ea

Object type: Service

Download schema: service.full.schema.json

Response Body:

{
    "serviceId": 1,
    "name": "hypercache",
    "description": "HTTP caching and content-delivery service"
}

Create a new destination

This operation creates a new destination.

POST /api/log-streaming/v1/destinations

Content-Type: application/json

Object type: Destination

Download schema: destination.create.schema.json

Request Body:

{
    "name": "test_destination1",
    "enable": true,
    "type": "KAFKA",
    "hosts": [
        "test1.server.com:9200",
        "test2.server.com:9201"
    ]
}

Status 201 application/json

Headers:

ETag: 5c8235ea
Location: https://akzz-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/api/log-streaming/v1/destinations/1

Object type: Destination

Download schema: destination.full.schema.json

Response Body:

{
    "destinations": [
        {
            "destinationId": 1,
            "name": "test_destination_kafka",
            "type": "KAFKA"
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 1
    }
}
  1. Build a Destination object.

  2. POST the object to /api/log-streaming/v1/destinations.

  3. The Location response header provides a link where you can GET the newly created destination.

  4. To interpret the response, go to Destination members.

List destinations

This operation returns a list of all configured destinations.

GET /api/log-streaming/v1/destinations

Status 200 application/json

Object type: Destination

Download schema: destination.collection.schema.json

Response Body:

{
    "destinations": [
        {
            "destinationId": 1,
            "name": "test_destination_kafka",
            "type": "KAFKA"
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 1
    }
}

Update a destination

Update the details of the destination.

PUT /api/log-streaming/v1/destinations/{destinationId}

Sample: /api/log-streaming/v1/destinations/1

Headers:

If-Match: 5c8235ea

Content-Type: application/json

Object type: Destination

Download schema: destination.full.schema.json

Request Body:

{
    "destinationId": 1,
    "name": "test_destination_kafka",
    "type": "KAFKA",
    "hosts": [
        "test.server.com:9092"
    ]
}
Parameter Type Sample Description
URL parameters
destinationId Integer 1 Uniquely identifies a destination.

Status 200 application/json

Headers:

ETag: 5c8235ea

Object type: Destination

Download schema: destination.full.schema.json

Response Body:

{
    "destinationId": 1,
    "name": "test_destination_kafka",
    "type": "KAFKA",
    "hosts": [
        "test.server.com:9092"
    ]
}
  1. Run the List Destinations operation to get a list of the configured destinations. Store the destinationId of the relevant destination from the response.

  2. Make a GET request to /api/log-streaming/v1/destinations/{destinationId}.

  3. The operation responds with the details of the destination specified by the destinationId. To interpret the response object, go to Destination member.

  4. Update the appropriate properties in the Destination object.

  5. PUT the object to /api/log-streaming/v1/destinations/{destinationId}.

  6. The operation responds with the updated Destination object.

Remove a destination

Delete the details of the destination.

DELETE /api/log-streaming/v1/destinations/{destinationId}

Sample: /api/log-streaming/v1/destinations/1

Parameter Type Sample Description
URL parameters
destinationId Integer 1 Uniquely identifies a destination.

Status 204

  1. Run the List Destinations operation to get a list of the configured destinations. Store the destinationId of the relevant destination from the response.

  2. Make a DELETE request to /api/log-streaming/v1/destinations/{destinationId}.

Get a destination

Retrieves the details of an individual destination.

GET /api/log-streaming/v1/destinations/{destinationId}

Sample: /api/log-streaming/v1/destinations/1

Parameter Type Sample Description
URL parameters
destinationId Integer 1 Uniquely identifies a destination.

Status 200 application/json

Headers:

ETag: 5c8235ea

Object type: Destination

Download schema: destination.full.schema.json

Response Body:

{
    "destinationId": 1,
    "name": "test_destination_kafka",
    "type": "KAFKA",
    "hosts": [
        "test.server.com:9092"
    ]
}
  1. Run the List Destinations operation to get a list of the configured destinations. Store the destinationId of the relevant destination from the response.

  2. Make a GET request to /api/log-streaming/v1/destinations/{destinationId}.

  3. The operation responds with the details of the destination specified by the destinationId. To interpret the response object, go to Destination members.

Update security settings

Update security settings for this destination.

PUT /api/log-streaming/v1/destinations/{destinationId}/security

Sample: /api/log-streaming/v1/destinations/1/security

Headers:

If-Match: 5c8235ea

Content-Type: application/json

Object type: SecuritySettings

Download schema: destination-security.update.schema.json

Request Body:

{
    "key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEAtdV+tdPNSEVj1FU08/uCET+qeB/nGHO+UdBq/3Hq9SQdJty8\nGvy2m5Xd+N0y5ru02AfwAv8HeHxugPiRllYMaXPseYDYAfUu+rcUFjqNjdW6xt8r\n5fdU5ntyZ5xi/2X1GmTbS9mtZcjxac+ViuGYLrf0aFDhk8nLr1dAPbx29cbDu6wJ\nuzcFl2qLgDYKI0aYWJNnIUGHVXhZKRaxpqHYwDdcOXH9zGXXALxsgybylATVxYbM\nXZHow4mrLgIxbGJWQGiYYQ6r/uuS6JcGUNBn8Tkze8QzjgGMfSxSsX3HJ1a+1bzn\npuWuiyh68Pew63Wi8OBnNcUIAGcALNV7+IxhLwIDAQABAoIBAF/tJ5GpES1FXisQ\nYIUudCnBWp9QxUvDE+55c1kbsgZtbOupm5rpIzTlVVsK5uWOtRMa7OXHwRsxGeL0\nP2n+L0Iao/Bdppcxz/z4RKKNdUwUKxrrdW82khWdnndGq3ttQGcSOhbD2ZRO8/0M\nRComZXCQH2JA+SBMXyY7c2qeWGvD8oeCFVW+NLTBe3SZBvEzYz4ZvFOG/jTX9P79\noCvgPIoCneu9W3c1ZbizOzQsV7OW6qBmuqwoJHRZ+8mYXCrPEx7SUyzp4/TYcF+d\nn+MDfNxVvLxkh4dpKsa/icsw1JJTxDq9TBw44lHtnfNpi1OWBh027p6KnjWPU0Aa\n+y/SdLECgYEA37XRzMG31+Na0LqSzQm/szA62bG/EYzD7fuybmu6r0Hr2hy4yPlB\nAwbycqAevCKF3r7/z2eJJegC0/l+7YQI5Zt098lCbFBd7WBHS2zf/nH7+KL6rdfG\nHlcKMR6g3h7n3A7Z5UnqO1Xw0gvi/UchLrYh6T9N8WazJAp1F9ForZUCgYEA0BRU\nuv+4SvVd7vFhGxyemcygrt1Sb+QshPPTPv+a/00bN5s9ksweOzFFQp4KieBwZDdI\nXlZYQBeO9HDbitkWTCBm7cRwQ8dH9kyhxknX3Cm6iL1//0NXF30HdNpiiDCEosjF\nXtkLCim2IL/xsC7fBbeHvr2Lth6hRNJv08aaerMCgYEAuMogpikyajNUVex3zMSL\nxEFHq4EGmkGTqqZpaoq0Z4ZlgwKMpP43dH+tj3+yQ6ekuy08c59Li7NNermx3hJd\nowQ5p2Bo7L2qCKWp3qTtlemjwGsn9Key8GbndVGegjw3O/BMjvjycdb4mRjWhG7X\n+xTZiCkRgiFaQqAcvvLsq80CgYEAmSiN4YL+tPX8aTd0wY8EUrKjB3NTDZcHCemq\n8TEVdpvbz8dNwDLMgcdXcpx/p1Lzh2CFvSKTHMH6cIRtpLr7xZcIDDVOaSVTG8D2\nRsztvVlduu65Ozvm7BwUk/d3FUWZK3TaimD51kYzj9GY5ZTqhfu8SDKelrPfAphe\nxaPm6y8CgYEApoObwhaX4d2NChFSAvaVNmyt5huXdIQ6JBzW/zFlgxA6f24H4Wxg\nw65RHeXr3m84HuHt+hl5pZS0dxDKQrCjxwY88xJP8MY1+eaMzZvDTCjInWUzHBD0\nvXEjh6gigJXD30VXF5GxO0gmkm5OcgmhOKGOq0gTRrSVmRrwNHCnE+E=\n-----END RSA PRIVATE KEY-----\n",
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIGTjCCBDagAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgbExCzAJBgNVBAYTAlVT\nMQswCQYDVQQIDAJNQTESMBAGA1UEBwwJQ2FtYnJpZGdlMSIwIAYDVQQKDBlBa2Ft\nYWkgVGVjaG5vbG9naWVzLCBJbmMuMSIwIAYDVQQLDBlDYXJyaWVyIFByb2R1Y3Rz\nIERpdmlzaW9uMRcwFQYDVQQDDA5sY2RuLmRvY2tlci5jYTEgMB4GCSqGSIb3DQEJ\nARYRbm9ib2R5QGFrYW1haS5jb20wHhcNMTcwNjE1MTQyMjAzWhcNNDQxMDMwMTQy\nMjAzWjCBmTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1BMSIwIAYDVQQKDBlBa2Ft\nYWkgVGVjaG5vbG9naWVzLCBJbmMuMSIwIAYDVQQLDBlDYXJyaWVyIFByb2R1Y3Rz\nIERpdmlzaW9uMRQwEgYDVQQDDAtKVW5pdCBUZXN0czEfMB0GCSqGSIb3DQEJARYQ\nanVuaXRAYWthbWFpLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nALXVfrXTzUhFY9RVNPP7ghE/qngf5xhzvlHQav9x6vUkHSbcvBr8tpuV3fjdMua7\ntNgH8AL/B3h8boD4kZZWDGlz7HmA2AH1Lvq3FBY6jY3VusbfK+X3VOZ7cmecYv9l\n9Rpk20vZrWXI8WnPlYrhmC639GhQ4ZPJy69XQD28dvXGw7usCbs3BZdqi4A2CiNG\nmFiTZyFBh1V4WSkWsaah2MA3XDlx/cxl1wC8bIMm8pQE1cWGzF2R6MOJqy4CMWxi\nVkBomGEOq/7rkuiXBlDQZ/E5M3vEM44BjH0sUrF9xydWvtW856blrosoevD3sOt1\novDgZzXFCABnACzVe/iMYS8CAwEAAaOCAYQwggGAMAkGA1UdEwQCMAAwEQYJYIZI\nAYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBT\nZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFIub/DhaKcLxfbxpTcw8YdiT5O9H\nMIHmBgNVHSMEgd4wgduAFATfWUDHxy1CWxSHYJLxJqDiHhI2oYG3pIG0MIGxMQsw\nCQYDVQQGEwJVUzELMAkGA1UECAwCTUExEjAQBgNVBAcMCUNhbWJyaWRnZTEiMCAG\nA1UECgwZQWthbWFpIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UECwwZQ2Fycmll\nciBQcm9kdWN0cyBEaXZpc2lvbjEXMBUGA1UEAwwObGNkbi5kb2NrZXIuY2ExIDAe\nBgkqhkiG9w0BCQEWEW5vYm9keUBha2FtYWkuY29tggkAz0/BS2yHqvAwDgYDVR0P\nAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4IC\nAQDAqO8TYIYmPmtlkctmdYpAjyHrezyOvQqISI1puzUZiv45r1RLJdnx61hCeZXr\naIYgtsPco7yzZP1kmpb1VifJuVzX84MqoJlmIJsSlR7n3cu64qUe0eSs3ZnkFw1d\nWWz0UzWeMYU9f4hf9QPiFV15VjwpWOpwOeuBOoX1eIEQbd8dpIh05TgU6UV6cyTR\nLPImlFhqEKb5uQPUMf4jjnbgiMI+DRWiCElYJ1l3wS1xbVaqaQQaCmsPfvKQ9oIe\nO/HeEpdFtT6pgMaPB7cnxHnMArVGaWLeApnuIvSvbziLU2pA2IUIvktINoSbXMiN\nP/5IDt3CBLs7bMpeUTclo7W58H5m1UEGmfTjl4HmSEIuyXBREx49S8dvgrijvLsS\nGBAeV2JYovAgn0Jz2vD7zWD8QoacOsiu7UUnnBWhY+Lb2xB4w2tfCAfkzhfOt4Cr\nu6iSHiyQH0MwZXFSkfGtEMG40MW/UTWbBbYqCML3YDR3Ncbj8toiyWKTkkDBL6LJ\nlNfRWm955Q85bcrBseAY94wyCsnv9JhLvIq/RrLZqjv/8GOol/P0kzL1TIFBbP6G\nI576UQ9nrWO+oFcC9CYq9OnMKDYuwQ6a1/d1i8dhj3HwPakrS8hLGe5PgNM983f8\n3VfxMEPxHp0J3lYQDslGHURspHGRVRRvaUZeLvk8lmnf1g==\n-----END CERTIFICATE-----\n",
    "caCertificates": "-----BEGIN CERTIFICATE-----\nMIIGTjCCBDagAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgbExCzAJBgNVBAYTAlVT\nMQswCQYDVQQIDAJNQTESMBAGA1UEBwwJQ2FtYnJpZGdlMSIwIAYDVQQKDBlBa2Ft\nYWkgVGVjaG5vbG9naWVzLCBJbmMuMSIwIAYDVQQLDBlDYXJyaWVyIFByb2R1Y3Rz\nIERpdmlzaW9uMRcwFQYDVQQDDA5sY2RuLmRvY2tlci5jYTEgMB4GCSqGSIb3DQEJ\nARYRbm9ib2R5QGFrYW1haS5jb20wHhcNMTcwNjE1MTQyMjAzWhcNNDQxMDMwMTQy\nMjAzWjCBmTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1BMSIwIAYDVQQKDBlBa2Ft\nYWkgVGVjaG5vbG9naWVzLCBJbmMuMSIwIAYDVQQLDBlDYXJyaWVyIFByb2R1Y3Rz\nIERpdmlzaW9uMRQwEgYDVQQDDAtKVW5pdCBUZXN0czEfMB0GCSqGSIb3DQEJARYQ\nanVuaXRAYWthbWFpLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nALXVfrXTzUhFY9RVNPP7ghE/qngf5xhzvlHQav9x6vUkHSbcvBr8tpuV3fjdMua7\ntNgH8AL/B3h8boD4kZZWDGlz7HmA2AH1Lvq3FBY6jY3VusbfK+X3VOZ7cmecYv9l\n9Rpk20vZrWXI8WnPlYrhmC639GhQ4ZPJy69XQD28dvXGw7usCbs3BZdqi4A2CiNG\nmFiTZyFBh1V4WSkWsaah2MA3XDlx/cxl1wC8bIMm8pQE1cWGzF2R6MOJqy4CMWxi\nVkBomGEOq/7rkuiXBlDQZ/E5M3vEM44BjH0sUrF9xydWvtW856blrosoevD3sOt1\novDgZzXFCABnACzVe/iMYS8CAwEAAaOCAYQwggGAMAkGA1UdEwQCMAAwEQYJYIZI\nAYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBT\nZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFIub/DhaKcLxfbxpTcw8YdiT5O9H\nMIHmBgNVHSMEgd4wgduAFATfWUDHxy1CWxSHYJLxJqDiHhI2oYG3pIG0MIGxMQsw\nCQYDVQQGEwJVUzELMAkGA1UECAwCTUExEjAQBgNVBAcMCUNhbWJyaWRnZTEiMCAG\nA1UECgwZQWthbWFpIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UECwwZQ2Fycmll\nciBQcm9kdWN0cyBEaXZpc2lvbjEXMBUGA1UEAwwObGNkbi5kb2NrZXIuY2ExIDAe\nBgkqhkiG9w0BCQEWEW5vYm9keUBha2FtYWkuY29tggkAz0/BS2yHqvAwDgYDVR0P\nAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4IC\nAQDAqO8TYIYmPmtlkctmdYpAjyHrezyOvQqISI1puzUZiv45r1RLJdnx61hCeZXr\naIYgtsPco7yzZP1kmpb1VifJuVzX84MqoJlmIJsSlR7n3cu64qUe0eSs3ZnkFw1d\nWWz0UzWeMYU9f4hf9QPiFV15VjwpWOpwOeuBOoX1eIEQbd8dpIh05TgU6UV6cyTR\nLPImlFhqEKb5uQPUMf4jjnbgiMI+DRWiCElYJ1l3wS1xbVaqaQQaCmsPfvKQ9oIe\nO/HeEpdFtT6pgMaPB7cnxHnMArVGaWLeApnuIvSvbziLU2pA2IUIvktINoSbXMiN\nP/5IDt3CBLs7bMpeUTclo7W58H5m1UEGmfTjl4HmSEIuyXBREx49S8dvgrijvLsS\nGBAeV2JYovAgn0Jz2vD7zWD8QoacOsiu7UUnnBWhY+Lb2xB4w2tfCAfkzhfOt4Cr\nu6iSHiyQH0MwZXFSkfGtEMG40MW/UTWbBbYqCML3YDR3Ncbj8toiyWKTkkDBL6LJ\nlNfRWm955Q85bcrBseAY94wyCsnv9JhLvIq/RrLZqjv/8GOol/P0kzL1TIFBbP6G\nI576UQ9nrWO+oFcC9CYq9OnMKDYuwQ6a1/d1i8dhj3HwPakrS8hLGe5PgNM983f8\n3VfxMEPxHp0J3lYQDslGHURspHGRVRRvaUZeLvk8lmnf1g==\n-----END CERTIFICATE-----\n"
}
Parameter Type Sample Description
URL parameters
destinationId Integer 1 Uniquely identifies a destination.

Status 200 application/json

Headers:

ETag: 5c8235ea

Response Body:

{
    "certificateDetails": {
        "fingerprints": {
            "sha1Fingerprint": "DD:44:7A:D5:B3:DE:D3:C5:3B:CD:DC:72:21:D2:E7:42:C7:C4:0E:75",
            "sha256Fingerprint": "78:12:89:CC:AF:A4:25:12:4E:E9:B5:DF:D5:F3:95:67:18:46:5A:9E:1E:60:AF:AF:AE:5E:3A:7C:F4:E6:92:82"
        },
        "validity": {
            "notBefore": "2017-06-15T14:22:03.000+0000",
            "notAfter": "2044-10-30T14:22:03.000+0000"
        },
        "issuedTo": {
            "commonName": "JUnit Tests",
            "organization": "Akamai Technologies\\, Inc.",
            "organizationalUnit": "Carrier Products Division",
            "serial": "10:00"
        },
        "issuedBy": {
            "commonName": "lcdn.docker.ca",
            "organization": "Akamai Technologies\\, Inc.",
            "organizationalUnit": "Carrier Products Division"
        }
    },
    "caCertificatesDetails": {
        "fingerprints": {
            "sha1Fingerprint": "DD:44:7A:D5:B3:DE:D3:C5:3B:CD:DC:72:21:D2:E7:42:C7:C4:0E:75",
            "sha256Fingerprint": "78:12:89:CC:AF:A4:25:12:4E:E9:B5:DF:D5:F3:95:67:18:46:5A:9E:1E:60:AF:AF:AE:5E:3A:7C:F4:E6:92:82"
        },
        "validity": {
            "notBefore": "2017-06-15T14:22:03.000+0000",
            "notAfter": "2044-10-30T14:22:03.000+0000"
        },
        "issuedTo": {
            "commonName": "JUnit Tests",
            "organization": "Akamai Technologies\\, Inc.",
            "organizationalUnit": "Carrier Products Division",
            "serial": "10:00"
        },
        "issuedBy": {
            "commonName": "lcdn.docker.ca",
            "organization": "Akamai Technologies\\, Inc.",
            "organizationalUnit": "Carrier Products Division"
        }
    }
}
  1. Run the List destinations operation to get a list of the configured destinations. Store the destinationId of the relevant destination from the response.

  2. Form a SecuritySettings object using the certificate and key values described in SecuritySettings members.

  3. Make a PUT request to /api/log-streaming/v1/destinations/{destinationId}/security.

  4. The PUT response reflects the destination’s current security status, without revealing the original certificate or key values you provided.

Get security settings

Retrieve security settings for this destination.

GET /api/log-streaming/v1/destinations/{destinationId}/security

Sample: /api/log-streaming/v1/destinations/1/security

Parameter Type Sample Description
URL parameters
destinationId Integer 1 Uniquely identifies a destination.

Status 200 application/json

Headers:

ETag: 5c8235ea

Object type: SecuritySettings

Download schema: destination-security.read.schema.json

Response Body:

{
    "certificateDetails": {
        "fingerprints": {
            "sha1Fingerprint": "DD:44:7A:D5:B3:DE:D3:C5:3B:CD:DC:72:21:D2:E7:42:C7:C4:0E:75",
            "sha256Fingerprint": "78:12:89:CC:AF:A4:25:12:4E:E9:B5:DF:D5:F3:95:67:18:46:5A:9E:1E:60:AF:AF:AE:5E:3A:7C:F4:E6:92:82"
        },
        "validity": {
            "notBefore": "2017-06-15T14:22:03.000+0000",
            "notAfter": "2044-10-30T14:22:03.000+0000"
        },
        "issuedTo": {
            "commonName": "JUnit Tests",
            "organization": "Akamai Technologies\\, Inc.",
            "organizationalUnit": "Carrier Products Division",
            "serial": "10:00"
        },
        "issuedBy": {
            "commonName": "lcdn.docker.ca",
            "organization": "Akamai Technologies\\, Inc.",
            "organizationalUnit": "Carrier Products Division"
        }
    },
    "caCertificatesDetails": {
        "fingerprints": {
            "sha1Fingerprint": "DD:44:7A:D5:B3:DE:D3:C5:3B:CD:DC:72:21:D2:E7:42:C7:C4:0E:75",
            "sha256Fingerprint": "78:12:89:CC:AF:A4:25:12:4E:E9:B5:DF:D5:F3:95:67:18:46:5A:9E:1E:60:AF:AF:AE:5E:3A:7C:F4:E6:92:82"
        },
        "validity": {
            "notBefore": "2017-06-15T14:22:03.000+0000",
            "notAfter": "2044-10-30T14:22:03.000+0000"
        },
        "issuedTo": {
            "commonName": "JUnit Tests",
            "organization": "Akamai Technologies\\, Inc.",
            "organizationalUnit": "Carrier Products Division",
            "serial": "10:00"
        },
        "issuedBy": {
            "commonName": "lcdn.docker.ca",
            "organization": "Akamai Technologies\\, Inc.",
            "organizationalUnit": "Carrier Products Division"
        }
    }
}
  1. Run the List Destinations operation to get a list of the configured destinations. Store the destinationId of the relevant destination from the response.

  2. Make a GET request to /api/log-streaming/v1/destinations/{destinationId}/security.

  3. The response reflects the destination’s current security status, without revealing original certificates or keys provided.

Data

This section describes the Aura Log Streaming API’s data objects that the API exposes.

Download the JSON schemas for this API.

The data schema tables below list membership requirements as follows:

Member is required in requests, or always present in responses, even if its value is empty or null.
Member is optional, and may be omitted in some cases.
Member is out of scope, and irrelevant to the specified interaction context. If you include the member in that context, it either triggers an error, or is ignored.

Stream

Specifies a source and a destination for delivering log information.

Download schema: stream.full.schema.json, stream.create.schema.json

Sample GET response:

{
    "streamId": 6,
    "destinationId": 1,
    "sourceId": 1,
    "enable": true,
    "kafkaTopic": "topic1"
}

Stream members

Member Type Required Description
Stream: Specifies a source and a destination for delivering log information.
destinationId Integer The unique identifier for this destination object.
enable Boolean Whether the stream is enabled or not. If enabled, log lines stream to the destination.
kafkaTopic String A name that identifies a Kafka topic which needs to match server side configuration.
sourceId Integer A unique identifier for the source.
streamId Integer Read-only. A unique identifier for the stream.

Source

Specifies one type of log streaming source, such as HPC access logs.

Download schema: source.full.schema.json

Sample GET response:

{
    "sourceId": 1,
    "name": "access-logs",
    "serviceId": 1
}

Source members

Member Type Description
Source: Specifies one type of log streaming source, such as HPC access logs.
name String A name that, along with the serviceId, uniquely identifies the source.
serviceId Integer A unique identifier for the service.
sourceId Integer A unique identifier for the source.

Service

Specifies a service that has streamable customer logs.

Download schema: service.full.schema.json

Sample GET response:

{
    "serviceId": 1,
    "name": "hypercache",
    "description": "HTTP caching and content-delivery service"
}

Service members

Member Type Description
Service: Specifies a service that has streamable customer logs.
description String A description of the service.
name String A name that uniquely identifies the service.
serviceId Integer A unique identifier for the service.

Destination

Specifies a Kafka collection location for streamed logs.

Download schema: kafka-destination.full.schema.json, kafka-destination.create.schema.json

Sample GET response:

{
    "destinationId": 1,
    "name": "test_destination_kafka",
    "type": "KAFKA",
    "hosts": [
        "test.server.com:9092"
    ]
}

Destination members

Member Type Required Description
Destination: Specifies a Kafka collection location for streamed logs.
destinationId Integer Read-only. The unique identifier for this destination object.
enable Boolean Whether the destination is enabled or not. If disabled, logs are not streamed to the destination.
hosts Array A set of one to four hostnames indicated by minItmes/maxItems below.
name String A name that uniquely identifies the destination.
type Enumeration Read-only. Reflects the type of destination, for which the only available value is KAFKA.

SecuritySettings

Logstream client security summary update schema.

Download schema: destination-security.update.schema.json

Sample PUT request:

{
    "key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEAtdV+tdPNSEVj1FU08/uCET+qeB/nGHO+UdBq/3Hq9SQdJty8\nGvy2m5Xd+N0y5ru02AfwAv8HeHxugPiRllYMaXPseYDYAfUu+rcUFjqNjdW6xt8r\n5fdU5ntyZ5xi/2X1GmTbS9mtZcjxac+ViuGYLrf0aFDhk8nLr1dAPbx29cbDu6wJ\nuzcFl2qLgDYKI0aYWJNnIUGHVXhZKRaxpqHYwDdcOXH9zGXXALxsgybylATVxYbM\nXZHow4mrLgIxbGJWQGiYYQ6r/uuS6JcGUNBn8Tkze8QzjgGMfSxSsX3HJ1a+1bzn\npuWuiyh68Pew63Wi8OBnNcUIAGcALNV7+IxhLwIDAQABAoIBAF/tJ5GpES1FXisQ\nYIUudCnBWp9QxUvDE+55c1kbsgZtbOupm5rpIzTlVVsK5uWOtRMa7OXHwRsxGeL0\nP2n+L0Iao/Bdppcxz/z4RKKNdUwUKxrrdW82khWdnndGq3ttQGcSOhbD2ZRO8/0M\nRComZXCQH2JA+SBMXyY7c2qeWGvD8oeCFVW+NLTBe3SZBvEzYz4ZvFOG/jTX9P79\noCvgPIoCneu9W3c1ZbizOzQsV7OW6qBmuqwoJHRZ+8mYXCrPEx7SUyzp4/TYcF+d\nn+MDfNxVvLxkh4dpKsa/icsw1JJTxDq9TBw44lHtnfNpi1OWBh027p6KnjWPU0Aa\n+y/SdLECgYEA37XRzMG31+Na0LqSzQm/szA62bG/EYzD7fuybmu6r0Hr2hy4yPlB\nAwbycqAevCKF3r7/z2eJJegC0/l+7YQI5Zt098lCbFBd7WBHS2zf/nH7+KL6rdfG\nHlcKMR6g3h7n3A7Z5UnqO1Xw0gvi/UchLrYh6T9N8WazJAp1F9ForZUCgYEA0BRU\nuv+4SvVd7vFhGxyemcygrt1Sb+QshPPTPv+a/00bN5s9ksweOzFFQp4KieBwZDdI\nXlZYQBeO9HDbitkWTCBm7cRwQ8dH9kyhxknX3Cm6iL1//0NXF30HdNpiiDCEosjF\nXtkLCim2IL/xsC7fBbeHvr2Lth6hRNJv08aaerMCgYEAuMogpikyajNUVex3zMSL\nxEFHq4EGmkGTqqZpaoq0Z4ZlgwKMpP43dH+tj3+yQ6ekuy08c59Li7NNermx3hJd\nowQ5p2Bo7L2qCKWp3qTtlemjwGsn9Key8GbndVGegjw3O/BMjvjycdb4mRjWhG7X\n+xTZiCkRgiFaQqAcvvLsq80CgYEAmSiN4YL+tPX8aTd0wY8EUrKjB3NTDZcHCemq\n8TEVdpvbz8dNwDLMgcdXcpx/p1Lzh2CFvSKTHMH6cIRtpLr7xZcIDDVOaSVTG8D2\nRsztvVlduu65Ozvm7BwUk/d3FUWZK3TaimD51kYzj9GY5ZTqhfu8SDKelrPfAphe\nxaPm6y8CgYEApoObwhaX4d2NChFSAvaVNmyt5huXdIQ6JBzW/zFlgxA6f24H4Wxg\nw65RHeXr3m84HuHt+hl5pZS0dxDKQrCjxwY88xJP8MY1+eaMzZvDTCjInWUzHBD0\nvXEjh6gigJXD30VXF5GxO0gmkm5OcgmhOKGOq0gTRrSVmRrwNHCnE+E=\n-----END RSA PRIVATE KEY-----\n",
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIGTjCCBDagAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgbExCzAJBgNVBAYTAlVT\nMQswCQYDVQQIDAJNQTESMBAGA1UEBwwJQ2FtYnJpZGdlMSIwIAYDVQQKDBlBa2Ft\nYWkgVGVjaG5vbG9naWVzLCBJbmMuMSIwIAYDVQQLDBlDYXJyaWVyIFByb2R1Y3Rz\nIERpdmlzaW9uMRcwFQYDVQQDDA5sY2RuLmRvY2tlci5jYTEgMB4GCSqGSIb3DQEJ\nARYRbm9ib2R5QGFrYW1haS5jb20wHhcNMTcwNjE1MTQyMjAzWhcNNDQxMDMwMTQy\nMjAzWjCBmTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1BMSIwIAYDVQQKDBlBa2Ft\nYWkgVGVjaG5vbG9naWVzLCBJbmMuMSIwIAYDVQQLDBlDYXJyaWVyIFByb2R1Y3Rz\nIERpdmlzaW9uMRQwEgYDVQQDDAtKVW5pdCBUZXN0czEfMB0GCSqGSIb3DQEJARYQ\nanVuaXRAYWthbWFpLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nALXVfrXTzUhFY9RVNPP7ghE/qngf5xhzvlHQav9x6vUkHSbcvBr8tpuV3fjdMua7\ntNgH8AL/B3h8boD4kZZWDGlz7HmA2AH1Lvq3FBY6jY3VusbfK+X3VOZ7cmecYv9l\n9Rpk20vZrWXI8WnPlYrhmC639GhQ4ZPJy69XQD28dvXGw7usCbs3BZdqi4A2CiNG\nmFiTZyFBh1V4WSkWsaah2MA3XDlx/cxl1wC8bIMm8pQE1cWGzF2R6MOJqy4CMWxi\nVkBomGEOq/7rkuiXBlDQZ/E5M3vEM44BjH0sUrF9xydWvtW856blrosoevD3sOt1\novDgZzXFCABnACzVe/iMYS8CAwEAAaOCAYQwggGAMAkGA1UdEwQCMAAwEQYJYIZI\nAYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBT\nZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFIub/DhaKcLxfbxpTcw8YdiT5O9H\nMIHmBgNVHSMEgd4wgduAFATfWUDHxy1CWxSHYJLxJqDiHhI2oYG3pIG0MIGxMQsw\nCQYDVQQGEwJVUzELMAkGA1UECAwCTUExEjAQBgNVBAcMCUNhbWJyaWRnZTEiMCAG\nA1UECgwZQWthbWFpIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UECwwZQ2Fycmll\nciBQcm9kdWN0cyBEaXZpc2lvbjEXMBUGA1UEAwwObGNkbi5kb2NrZXIuY2ExIDAe\nBgkqhkiG9w0BCQEWEW5vYm9keUBha2FtYWkuY29tggkAz0/BS2yHqvAwDgYDVR0P\nAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4IC\nAQDAqO8TYIYmPmtlkctmdYpAjyHrezyOvQqISI1puzUZiv45r1RLJdnx61hCeZXr\naIYgtsPco7yzZP1kmpb1VifJuVzX84MqoJlmIJsSlR7n3cu64qUe0eSs3ZnkFw1d\nWWz0UzWeMYU9f4hf9QPiFV15VjwpWOpwOeuBOoX1eIEQbd8dpIh05TgU6UV6cyTR\nLPImlFhqEKb5uQPUMf4jjnbgiMI+DRWiCElYJ1l3wS1xbVaqaQQaCmsPfvKQ9oIe\nO/HeEpdFtT6pgMaPB7cnxHnMArVGaWLeApnuIvSvbziLU2pA2IUIvktINoSbXMiN\nP/5IDt3CBLs7bMpeUTclo7W58H5m1UEGmfTjl4HmSEIuyXBREx49S8dvgrijvLsS\nGBAeV2JYovAgn0Jz2vD7zWD8QoacOsiu7UUnnBWhY+Lb2xB4w2tfCAfkzhfOt4Cr\nu6iSHiyQH0MwZXFSkfGtEMG40MW/UTWbBbYqCML3YDR3Ncbj8toiyWKTkkDBL6LJ\nlNfRWm955Q85bcrBseAY94wyCsnv9JhLvIq/RrLZqjv/8GOol/P0kzL1TIFBbP6G\nI576UQ9nrWO+oFcC9CYq9OnMKDYuwQ6a1/d1i8dhj3HwPakrS8hLGe5PgNM983f8\n3VfxMEPxHp0J3lYQDslGHURspHGRVRRvaUZeLvk8lmnf1g==\n-----END CERTIFICATE-----\n",
    "caCertificates": "-----BEGIN CERTIFICATE-----\nMIIGTjCCBDagAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgbExCzAJBgNVBAYTAlVT\nMQswCQYDVQQIDAJNQTESMBAGA1UEBwwJQ2FtYnJpZGdlMSIwIAYDVQQKDBlBa2Ft\nYWkgVGVjaG5vbG9naWVzLCBJbmMuMSIwIAYDVQQLDBlDYXJyaWVyIFByb2R1Y3Rz\nIERpdmlzaW9uMRcwFQYDVQQDDA5sY2RuLmRvY2tlci5jYTEgMB4GCSqGSIb3DQEJ\nARYRbm9ib2R5QGFrYW1haS5jb20wHhcNMTcwNjE1MTQyMjAzWhcNNDQxMDMwMTQy\nMjAzWjCBmTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1BMSIwIAYDVQQKDBlBa2Ft\nYWkgVGVjaG5vbG9naWVzLCBJbmMuMSIwIAYDVQQLDBlDYXJyaWVyIFByb2R1Y3Rz\nIERpdmlzaW9uMRQwEgYDVQQDDAtKVW5pdCBUZXN0czEfMB0GCSqGSIb3DQEJARYQ\nanVuaXRAYWthbWFpLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nALXVfrXTzUhFY9RVNPP7ghE/qngf5xhzvlHQav9x6vUkHSbcvBr8tpuV3fjdMua7\ntNgH8AL/B3h8boD4kZZWDGlz7HmA2AH1Lvq3FBY6jY3VusbfK+X3VOZ7cmecYv9l\n9Rpk20vZrWXI8WnPlYrhmC639GhQ4ZPJy69XQD28dvXGw7usCbs3BZdqi4A2CiNG\nmFiTZyFBh1V4WSkWsaah2MA3XDlx/cxl1wC8bIMm8pQE1cWGzF2R6MOJqy4CMWxi\nVkBomGEOq/7rkuiXBlDQZ/E5M3vEM44BjH0sUrF9xydWvtW856blrosoevD3sOt1\novDgZzXFCABnACzVe/iMYS8CAwEAAaOCAYQwggGAMAkGA1UdEwQCMAAwEQYJYIZI\nAYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBT\nZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFIub/DhaKcLxfbxpTcw8YdiT5O9H\nMIHmBgNVHSMEgd4wgduAFATfWUDHxy1CWxSHYJLxJqDiHhI2oYG3pIG0MIGxMQsw\nCQYDVQQGEwJVUzELMAkGA1UECAwCTUExEjAQBgNVBAcMCUNhbWJyaWRnZTEiMCAG\nA1UECgwZQWthbWFpIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UECwwZQ2Fycmll\nciBQcm9kdWN0cyBEaXZpc2lvbjEXMBUGA1UEAwwObGNkbi5kb2NrZXIuY2ExIDAe\nBgkqhkiG9w0BCQEWEW5vYm9keUBha2FtYWkuY29tggkAz0/BS2yHqvAwDgYDVR0P\nAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4IC\nAQDAqO8TYIYmPmtlkctmdYpAjyHrezyOvQqISI1puzUZiv45r1RLJdnx61hCeZXr\naIYgtsPco7yzZP1kmpb1VifJuVzX84MqoJlmIJsSlR7n3cu64qUe0eSs3ZnkFw1d\nWWz0UzWeMYU9f4hf9QPiFV15VjwpWOpwOeuBOoX1eIEQbd8dpIh05TgU6UV6cyTR\nLPImlFhqEKb5uQPUMf4jjnbgiMI+DRWiCElYJ1l3wS1xbVaqaQQaCmsPfvKQ9oIe\nO/HeEpdFtT6pgMaPB7cnxHnMArVGaWLeApnuIvSvbziLU2pA2IUIvktINoSbXMiN\nP/5IDt3CBLs7bMpeUTclo7W58H5m1UEGmfTjl4HmSEIuyXBREx49S8dvgrijvLsS\nGBAeV2JYovAgn0Jz2vD7zWD8QoacOsiu7UUnnBWhY+Lb2xB4w2tfCAfkzhfOt4Cr\nu6iSHiyQH0MwZXFSkfGtEMG40MW/UTWbBbYqCML3YDR3Ncbj8toiyWKTkkDBL6LJ\nlNfRWm955Q85bcrBseAY94wyCsnv9JhLvIq/RrLZqjv/8GOol/P0kzL1TIFBbP6G\nI576UQ9nrWO+oFcC9CYq9OnMKDYuwQ6a1/d1i8dhj3HwPakrS8hLGe5PgNM983f8\n3VfxMEPxHp0J3lYQDslGHURspHGRVRRvaUZeLvk8lmnf1g==\n-----END CERTIFICATE-----\n"
}

SecuritySettings members

Member Type Required Description
SecuritySettings: Logstream client security summary update schema.
caCertificates String A list of OpenSSL PEM-formatted X.509 certificates that is used to establish a TLS connection to the destination server side.
certificate String An OpenSSL PEM-formatted X.509 certificate that is used to establish a TLS connection to the destination server side.
key String An OpenSSL PEM-formatted key that is used to establish a TLS connection to the destination server side.

Errors

This section provides details on the data object that reflects the API’s common response to error cases, and lists the API’s range of response status codes for both error and success cases.

Error responses

In the case of errors, the API returns an HTTP Problem JSON object with the application/problem+json media type.

{
  "type" : "https://localhost/api/log-streaming/errors#core.entity-not-found",
  "title" : "The requested entity could not be found",
  "detail" : "Destination 100 does not exist",
  "instance" : "https://localhost/api/log-streaming/v1/destinations/100#36c013198df7a754",
  "entityType" : "Destination",
  "entityId" : 100
}

HTTP status codes

This section lists the full range of response codes the API may generate.

Code Description
200 The operation was successful.
400 Bad Request.
401 Authentication failure.
403 The client does not have the appropriate authority to perform the requested operation.
404 Resource not found.
405 Method not supported.
409 The operation could not be completed due to a conflict with the current state of the resource.
412 An Etag or If-Match header does not match, indicating the content has been modified. See Concurrency Control for more information.
415 Unsupported media type.
503 Service is temporarily unavailable.

Last modified: 3/26/2019