Class: Auth0::LogStreams::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/auth0/log_streams/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ void

Parameters:



9
10
11
# File 'lib/auth0/log_streams/client.rb', line 9

def initialize(client:)
  @client = client
end

Instance Method Details

#create(request_options: {}, **params) ⇒ Auth0::Types::CreateLogStreamResponseContent

Create a log stream.

Log Stream Types

The type of log stream being created determines the properties required in the sink payload.

HTTP Stream

For an http Stream, the sink properties are listed in the payload below.

Request:

{
  "name": "string",
  "type": "http",
  "sink": {
    "httpEndpoint": "string",
    "httpContentType": "string",
    "httpContentFormat": "JSONLINES|JSONARRAY",
    "httpAuthorization": "string"
  }
}

Response:

{
  "id": "string",
  "name": "string",
  "type": "http",
  "status": "active",
  "sink": {
    "httpEndpoint": "string",
    "httpContentType": "string",
    "httpContentFormat": "JSONLINES|JSONARRAY",
    "httpAuthorization": "string"
  }
}

Amazon EventBridge Stream

For an eventbridge Stream, the sink properties are listed in the payload below.

Request:

{
  "name": "string",
  "type": "eventbridge",
  "sink": {
    "awsRegion": "string",
    "awsAccountId": "string"
  }
}

The response will include an additional field awsPartnerEventSource in the sink:

Response:

{
  "id": "string",
  "name": "string",
  "type": "eventbridge",
  "status": "active",
  "sink": {
    "awsAccountId": "string",
    "awsRegion": "string",
    "awsPartnerEventSource": "string"
  }
}

Azure Event Grid Stream

For an Azure Event Grid Stream, the sink properties are listed in the payload below.

Request:

{
  "name": "string",
  "type": "eventgrid",
  "sink": {
    "azureSubscriptionId": "string",
    "azureResourceGroup": "string",
    "azureRegion": "string"
  }
}

Response:

{
  "id": "string",
  "name": "string",
  "type": "http",
  "status": "active",
  "sink": {
    "azureSubscriptionId": "string",
    "azureResourceGroup": "string",
    "azureRegion": "string",
    "azurePartnerTopic": "string"
  }
}

Datadog Stream

For a Datadog Stream, the sink properties are listed in the payload below.

Request:

{
  "name": "string",
  "type": "datadog",
  "sink": {
    "datadogRegion": "string",
    "datadogApiKey": "string"
  }
}

Response:

{
  "id": "string",
  "name": "string",
  "type": "datadog",
  "status": "active",
  "sink": {
    "datadogRegion": "string",
    "datadogApiKey": "string"
  }
}

Splunk Stream

For a Splunk Stream, the sink properties are listed in the payload below.

Request:

{
  "name": "string",
  "type": "splunk",
  "sink": {
    "splunkDomain": "string",
    "splunkToken": "string",
    "splunkPort": "string",
    "splunkSecure": "boolean"
  }
}

Response:

{
  "id": "string",
  "name": "string",
  "type": "splunk",
  "status": "active",
  "sink": {
    "splunkDomain": "string",
    "splunkToken": "string",
    "splunkPort": "string",
    "splunkSecure": "boolean"
  }
}

Sumo Logic Stream

For a Sumo Logic Stream, the sink properties are listed in the payload below.

Request:

{
  "name": "string",
  "type": "sumo",
  "sink": {
    "sumoSourceAddress": "string"
  }
}

Response:

{
  "id": "string",
  "name": "string",
  "type": "sumo",
  "status": "active",
  "sink": {
    "sumoSourceAddress": "string"
  }
}

Parameters:

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Returns:



320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
# File 'lib/auth0/log_streams/client.rb', line 320

def create(request_options: {}, **params)
  params = Auth0::Internal::Types::Utils.normalize_keys(params)
  request = Auth0::Internal::JSON::Request.new(
    base_url: request_options[:base_url],
    method: "POST",
    path: "log-streams",
    body: Auth0::Types::CreateLogStreamRequestContent.new(params).to_h,
    request_options: request_options
  )
  begin
    response = @client.send(request)
  rescue Net::HTTPRequestTimeout
    raise Auth0::Errors::TimeoutError
  end
  code = response.code.to_i
  if code.between?(200, 299)
    Auth0::Types::CreateLogStreamResponseContent.load(response.body)
  else
    error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(response.body, code: code)
  end
end

#delete(request_options: {}, **params) ⇒ untyped

Delete a log stream.

Parameters:

  • request_options (Hash) (defaults to: {})
  • params (Hash)

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Options Hash (**params):

  • :id (String)

Returns:

  • (untyped)

Raises:

  • (error_class)


540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
# File 'lib/auth0/log_streams/client.rb', line 540

def delete(request_options: {}, **params)
  params = Auth0::Internal::Types::Utils.normalize_keys(params)
  request = Auth0::Internal::JSON::Request.new(
    base_url: request_options[:base_url],
    method: "DELETE",
    path: "log-streams/#{URI.encode_uri_component(params[:id].to_s)}",
    request_options: request_options
  )
  begin
    response = @client.send(request)
  rescue Net::HTTPRequestTimeout
    raise Auth0::Errors::TimeoutError
  end
  code = response.code.to_i
  return if code.between?(200, 299)

  error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
  raise error_class.new(response.body, code: code)
end

#get(request_options: {}, **params) ⇒ Auth0::Types::GetLogStreamResponseContent

Retrieve a log stream configuration and status.

Sample responses

Amazon EventBridge Log Stream

{
  "id": "string",
  "name": "string",
  "type": "eventbridge",
  "status": "active|paused|suspended",
  "sink": {
    "awsAccountId": "string",
    "awsRegion": "string",
    "awsPartnerEventSource": "string"
  }
}

HTTP Log Stream

{
  "id": "string",
  "name": "string",
  "type": "http",
  "status": "active|paused|suspended",
  "sink": {
    "httpContentFormat": "JSONLINES|JSONARRAY",
    "httpContentType": "string",
    "httpEndpoint": "string",
    "httpAuthorization": "string"
  }
}

Datadog Log Stream

{
  "id": "string",
  "name": "string",
  "type": "datadog",
  "status": "active|paused|suspended",
  "sink": {
    "datadogRegion": "string",
    "datadogApiKey": "string"
  }
}

Mixpanel

Request:

{
  "name": "string",
  "type": "mixpanel",
  "sink": {
    "mixpanelRegion": "string",
    "mixpanelProjectId": "string",
    "mixpanelServiceAccountUsername": "string",
    "mixpanelServiceAccountPassword": "string"
  }
}

Response:

{
  "id": "string",
  "name": "string",
  "type": "mixpanel",
  "status": "active",
  "sink": {
    "mixpanelRegion": "string",
    "mixpanelProjectId": "string",
    "mixpanelServiceAccountUsername": "string",
    "mixpanelServiceAccountPassword": "string"
  }
}

Segment

Request:

{
  "name": "string",
  "type": "segment",
  "sink": {
    "segmentWriteKey": "string"
  }
}

Response:

{
  "id": "string",
  "name": "string",
  "type": "segment",
  "status": "active",
  "sink": {
    "segmentWriteKey": "string"
  }
}

Splunk Log Stream

{
  "id": "string",
  "name": "string",
  "type": "splunk",
  "status": "active|paused|suspended",
  "sink": {
    "splunkDomain": "string",
    "splunkToken": "string",
    "splunkPort": "string",
    "splunkSecure": "boolean"
  }
}

Sumo Logic Log Stream

{
  "id": "string",
  "name": "string",
  "type": "sumo",
  "status": "active|paused|suspended",
  "sink": {
    "sumoSourceAddress": "string"
  }
}

Status

The status of a log stream maybe any of the following:

  1. active - Stream is currently enabled.
  2. paused - Stream is currently user disabled and will not attempt log delivery.
  3. suspended - Stream is currently disabled because of errors and will not attempt log delivery.

Parameters:

  • request_options (Hash) (defaults to: {})
  • params (Hash)

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Options Hash (**params):

  • :id (String)

Returns:



506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
# File 'lib/auth0/log_streams/client.rb', line 506

def get(request_options: {}, **params)
  params = Auth0::Internal::Types::Utils.normalize_keys(params)
  request = Auth0::Internal::JSON::Request.new(
    base_url: request_options[:base_url],
    method: "GET",
    path: "log-streams/#{URI.encode_uri_component(params[:id].to_s)}",
    request_options: request_options
  )
  begin
    response = @client.send(request)
  rescue Net::HTTPRequestTimeout
    raise Auth0::Errors::TimeoutError
  end
  code = response.code.to_i
  if code.between?(200, 299)
    Auth0::Types::GetLogStreamResponseContent.load(response.body)
  else
    error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(response.body, code: code)
  end
end

#list(request_options: {}, **_params) ⇒ Array[Auth0::Types::LogStreamResponseSchema]

Retrieve details on log streams.

Sample Response

[{
  "id": "string",
  "name": "string",
  "type": "eventbridge",
  "status": "active|paused|suspended",
  "sink": {
    "awsAccountId": "string",
    "awsRegion": "string",
    "awsPartnerEventSource": "string"
  }
}, {
  "id": "string",
  "name": "string",
  "type": "http",
  "status": "active|paused|suspended",
  "sink": {
    "httpContentFormat": "JSONLINES|JSONARRAY",
    "httpContentType": "string",
    "httpEndpoint": "string",
    "httpAuthorization": "string"
  }
},
{
  "id": "string",
  "name": "string",
  "type": "eventgrid",
  "status": "active|paused|suspended",
  "sink": {
    "azureSubscriptionId": "string",
    "azureResourceGroup": "string",
    "azureRegion": "string",
    "azurePartnerTopic": "string"
  }
},
{
  "id": "string",
  "name": "string",
  "type": "splunk",
  "status": "active|paused|suspended",
  "sink": {
    "splunkDomain": "string",
    "splunkToken": "string",
    "splunkPort": "string",
    "splunkSecure": "boolean"
  }
},
{
  "id": "string",
  "name": "string",
  "type": "sumo",
  "status": "active|paused|suspended",
  "sink": {
    "sumoSourceAddress": "string"
  }
},
{
  "id": "string",
  "name": "string",
  "type": "datadog",
  "status": "active|paused|suspended",
  "sink": {
    "datadogRegion": "string",
    "datadogApiKey": "string"
  }
}]

Parameters:

  • request_options (Hash) (defaults to: {})
  • _params (Hash)

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Returns:

Raises:

  • (error_class)


94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/auth0/log_streams/client.rb', line 94

def list(request_options: {}, **_params)
  request = Auth0::Internal::JSON::Request.new(
    base_url: request_options[:base_url],
    method: "GET",
    path: "log-streams",
    request_options: request_options
  )
  begin
    response = @client.send(request)
  rescue Net::HTTPRequestTimeout
    raise Auth0::Errors::TimeoutError
  end
  code = response.code.to_i
  return if code.between?(200, 299)

  error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
  raise error_class.new(response.body, code: code)
end

#update(request_options: {}, **params) ⇒ Auth0::Types::UpdateLogStreamResponseContent

Update a log stream.

Examples of how to use the PATCH endpoint.

The following fields may be updated in a PATCH operation:

  • name
  • status
  • sink

Note: For log streams of type eventbridge and eventgrid, updating the sink is not permitted.

Update the status of a log stream

{
  "status": "active|paused"
}

Update the name of a log stream

{
  "name": "string"
}

Update the sink properties of a stream of type http

{
  "sink": {
    "httpEndpoint": "string",
    "httpContentType": "string",
    "httpContentFormat": "JSONARRAY|JSONLINES",
    "httpAuthorization": "string"
  }
}

Update the sink properties of a stream of type datadog

{
  "sink": {
    "datadogRegion": "string",
    "datadogApiKey": "string"
  }
}

Update the sink properties of a stream of type splunk

{
  "sink": {
    "splunkDomain": "string",
    "splunkToken": "string",
    "splunkPort": "string",
    "splunkSecure": "boolean"
  }
}

Update the sink properties of a stream of type sumo

{
  "sink": {
    "sumoSourceAddress": "string"
  }
}

Parameters:

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Options Hash (**params):

  • :id (String)

Returns:



645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
# File 'lib/auth0/log_streams/client.rb', line 645

def update(request_options: {}, **params)
  params = Auth0::Internal::Types::Utils.normalize_keys(params)
  request_data = Auth0::LogStreams::Types::UpdateLogStreamRequestContent.new(params).to_h
  non_body_param_names = %w[id]
  body = request_data.except(*non_body_param_names)

  request = Auth0::Internal::JSON::Request.new(
    base_url: request_options[:base_url],
    method: "PATCH",
    path: "log-streams/#{URI.encode_uri_component(params[:id].to_s)}",
    body: body,
    request_options: request_options
  )
  begin
    response = @client.send(request)
  rescue Net::HTTPRequestTimeout
    raise Auth0::Errors::TimeoutError
  end
  code = response.code.to_i
  if code.between?(200, 299)
    Auth0::Types::UpdateLogStreamResponseContent.load(response.body)
  else
    error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(response.body, code: code)
  end
end