Class: Infrawrench::NetworkFlowsNamespace

Inherits:
Object
  • Object
show all
Defined in:
lib/infrawrench/client.rb,
sig/infrawrench/sdk.rbs

Overview

client.network_flows

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(transport) ⇒ NetworkFlowsNamespace

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of NetworkFlowsNamespace.

Parameters:



10388
10389
10390
10391
# File 'lib/infrawrench/client.rb', line 10388

def initialize(transport)
  @transport = transport
  @settings = NetworkFlowsSettingsNamespace.new(@transport)
end

Instance Attribute Details

#settingsNetworkFlowsSettingsNamespace (readonly)

Returns client.network_flows.settings.

Returns:



10384
10385
10386
# File 'lib/infrawrench/client.rb', line 10384

def settings
  @settings
end

Instance Method Details

#get(org_id: nil, from: nil, to: nil, scope: nil, account_id: nil, limit: nil, request_options: nil) ⇒ Hash

Priced source→destination network flow attribution

Which two things are talking, across which billing boundary, and what that costs. Answers the question the cost dimensions structurally cannot: every cost dimension is about one side of a transfer, and a network charge is about a pair.

All figures are estimates and the estimated field says so unconditionally. Bytes come from the provider's flow logs (which sample, or drop records under capacity pressure) and are priced at published list rates with no free tier, no volume tier and no negotiated discount applied. Use the ranking; do not reconcile the total against an invoice line.

Accounts whose provider has no readable flow source appear in accounts with supportsFlows: false and contribute nothing to the totals — never zero bytes.

Requires permission: costs:read.

GET /api/org/orgId/network-flows

Raises on 400: Bad request

Parameters:

  • org_id (String, nil) (defaults to: nil)

    Organization id. Defaults to the org_id the client was constructed with.

  • from (String, nil) (defaults to: nil)

    Inclusive start day. Defaults to 13 days ago.

  • to (String, nil) (defaults to: nil)

    Inclusive end day. Defaults to today.

  • scope (String, nil) (defaults to: nil)

    Narrow to one billing boundary.

  • account_id (String, nil) (defaults to: nil)

    Narrow to one connected account.

  • limit (Integer, nil) (defaults to: nil)

    Pairs to return in topFlows, largest cost first. Defaults to 50.

  • request_options (Hash, nil) (defaults to: nil)

    Per-call :headers, :timeout and :open_timeout.

  • org_id: (String, nil) (defaults to: nil)
  • from: (String, nil) (defaults to: nil)
  • to: (String, nil) (defaults to: nil)
  • scope: ("intra_zone", "cross_zone", "cross_region", "internet_egress", "internet_ingress", "provider_service", "nat_gateway", "private_interconnect", "unknown", nil) (defaults to: nil)
  • account_id: (String, nil) (defaults to: nil)
  • limit: (Integer, nil) (defaults to: nil)
  • request_options: (Hash[Symbol, untyped], nil) (defaults to: nil)

Returns:

  • (Hash)

    Parsed JSON, shaped as NetworkFlowFeed — see sig/infrawrench/sdk.rbs.

Raises:



10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
# File 'lib/infrawrench/client.rb', line 10428

def get(
  org_id: nil,
  from: nil,
  to: nil,
  scope: nil,
  account_id: nil,
  limit: nil,
  request_options: nil
)
  @transport.request(
    http_method: "GET",
    path: "/api/org/{orgId}/network-flows",
    path_params: { "orgId" => org_id },
    query: {
      "from" => from,
      "to" => to,
      "scope" => scope,
      "accountId" => ,
      "limit" => limit
    },
    request_options: request_options
  )
end