Skip to content

Admin Arrow Billing Syncs

Operations Summary

Method Endpoint Description
Core CRUD
GET /api/admin/arrow/billing-syncs/ Billing syncs
GET /api/admin/arrow/billing-syncs/{uuid}/ Retrieve
Sync Control
POST /api/admin/arrow/billing-syncs/pause_sync/ Pause consumption sync operations
POST /api/admin/arrow/billing-syncs/reconcile/ Trigger reconciliation for a specific period
POST /api/admin/arrow/billing-syncs/resume_sync/ Resume consumption sync operations
POST /api/admin/arrow/billing-syncs/trigger_consumption_sync/ Trigger consumption sync for a specific period
POST /api/admin/arrow/billing-syncs/trigger_reconciliation/ Trigger reconciliation (check billing export and apply adjustments)
POST /api/admin/arrow/billing-syncs/trigger_sync/ Trigger billing sync for a specific period
Data Retrieval
GET /api/admin/arrow/billing-syncs/consumption_statistics/ Get consumption statistics
GET /api/admin/arrow/billing-syncs/consumption_status/ Get current consumption sync status
GET /api/admin/arrow/billing-syncs/pending_records/ List pending consumption records (not yet finalized)
POST /api/admin/arrow/billing-syncs/fetch_billing_export/ Fetch raw billing export from Arrow API
POST /api/admin/arrow/billing-syncs/fetch_consumption/ Fetch raw consumption data from Arrow API
POST /api/admin/arrow/billing-syncs/fetch_license_info/ Fetch license details from Arrow API
POST /api/admin/arrow/billing-syncs/sync_resource_historical_consumption/ Sync historical consumption for a specific resource from Arrow
POST /api/admin/arrow/billing-syncs/sync_resources/ Sync resources
Cleanup
POST /api/admin/arrow/billing-syncs/cleanup_consumption/ Delete consumption records with optional dry-run preview

Core CRUD

Billing syncs

1
2
3
4
http \
  GET \
  https://api.example.com/api/admin/arrow/billing-syncs/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.admin import admin_arrow_billing_syncs_list # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = admin_arrow_billing_syncs_list.sync(client=client)

for item in response:
    print(item)
  1. API Source: admin_arrow_billing_syncs_list
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import { adminArrowBillingSyncsList } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsList({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Description
arrow_state string
customer_mapping string (uri)
customer_mapping_uuid string (uuid)
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.
report_period string
report_period_from string
report_period_to string
settings_uuid string (uuid)
state integer
statement_reference string

200 -

The response body is an array of objects, where each object has the following structure:

Field Type Description
uuid string (uuid)
url string (uri)
customer_mapping string (uri)
customer_mapping_uuid string (uuid)
arrow_reference string Arrow customer ID (e.g., 'XSP661245')
waldur_customer_name string
statement_reference string Arrow statement ID
report_period string Report period in YYYY-MM format
arrow_state string Arrow billing state (pending/validated)
state any Waldur sync state
state_display string
buy_total string (decimal) Total buy amount
sell_total string (decimal) Total sell amount
currency string Currency code
invoice_uuid string (uuid)
error_message string Error message if sync failed
synced_at string (date-time) When billing was last synced
validated_at string (date-time) When Arrow validated the billing
reconciled_at string (date-time) When reconciliation was applied
items array of objects
items.uuid string (uuid)
items.arrow_line_reference string Arrow line ID
items.invoice_item_uuid string (uuid)
items.original_price string (decimal) Original price for reconciliation tracking
items.compensation_item_uuid string (uuid)
items.vendor_name string Vendor name (e.g., Microsoft)
items.subscription_reference string Arrow subscription reference
items.classification string Classification (IAAS/SAAS)
items.description string Line item description
items.quantity string (decimal) Quantity
items.created string (date-time)
created string (date-time)
modified string (date-time)

Retrieve

1
2
3
4
http \
  GET \
  https://api.example.com/api/admin/arrow/billing-syncs/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.admin import admin_arrow_billing_syncs_retrieve # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = admin_arrow_billing_syncs_retrieve.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client
)

print(response)
  1. API Source: admin_arrow_billing_syncs_retrieve
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { adminArrowBillingSyncsRetrieve } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsRetrieve({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)

200 -

Field Type Description
uuid string (uuid)
url string (uri)
customer_mapping string (uri)
customer_mapping_uuid string (uuid)
arrow_reference string Arrow customer ID (e.g., 'XSP661245')
waldur_customer_name string
statement_reference string Arrow statement ID
report_period string Report period in YYYY-MM format
arrow_state string Arrow billing state (pending/validated)
state any Waldur sync state
state_display string
buy_total string (decimal) Total buy amount
sell_total string (decimal) Total sell amount
currency string Currency code
invoice_uuid string (uuid)
error_message string Error message if sync failed
synced_at string (date-time) When billing was last synced
validated_at string (date-time) When Arrow validated the billing
reconciled_at string (date-time) When reconciliation was applied
items array of objects
items.uuid string (uuid)
items.arrow_line_reference string Arrow line ID
items.invoice_item_uuid string (uuid)
items.original_price string (decimal) Original price for reconciliation tracking
items.compensation_item_uuid string (uuid)
items.vendor_name string Vendor name (e.g., Microsoft)
items.subscription_reference string Arrow subscription reference
items.classification string Classification (IAAS/SAAS)
items.description string Line item description
items.quantity string (decimal) Quantity
items.created string (date-time)
created string (date-time)
modified string (date-time)

Sync Control

Pause consumption sync operations

Pause consumption sync operations.

1
2
3
4
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/pause_sync/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.sync_pause_request_request import SyncPauseRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_pause_sync # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = SyncPauseRequestRequest()
response = admin_arrow_billing_syncs_pause_sync.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: SyncPauseRequestRequest
  2. API Source: admin_arrow_billing_syncs_pause_sync
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import { adminArrowBillingSyncsPauseSync } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsPauseSync({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required
settings_uuid string (uuid)
pause_global boolean

200 -

Field Type Description
paused array of strings List of paused items
resumed array of strings List of resumed items

Trigger reconciliation for a specific period

Trigger reconciliation for a specific period.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/reconcile/ \
  Authorization:"Token YOUR_API_TOKEN" \
  year=123 \
  month=123
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.reconcile_request_request import ReconcileRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_reconcile # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = ReconcileRequestRequest(
    year=123,
    month=123
)
response = admin_arrow_billing_syncs_reconcile.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: ReconcileRequestRequest
  2. API Source: admin_arrow_billing_syncs_reconcile
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import { adminArrowBillingSyncsReconcile } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsReconcile({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "year": 123,
    "month": 123
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
year integer
month integer
settings_uuid string (uuid)
force boolean Force reconciliation even if not validated
Constraints: default: False

202 - No response body


Resume consumption sync operations

Resume consumption sync operations.

1
2
3
4
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/resume_sync/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.sync_pause_request_request import SyncPauseRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_resume_sync # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = SyncPauseRequestRequest()
response = admin_arrow_billing_syncs_resume_sync.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: SyncPauseRequestRequest
  2. API Source: admin_arrow_billing_syncs_resume_sync
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import { adminArrowBillingSyncsResumeSync } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsResumeSync({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required
settings_uuid string (uuid)
pause_global boolean

200 -

Field Type Description
paused array of strings List of paused items
resumed array of strings List of resumed items

Trigger consumption sync for a specific period

Trigger consumption sync for a specific period.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/trigger_consumption_sync/ \
  Authorization:"Token YOUR_API_TOKEN" \
  year=123 \
  month=123
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.trigger_consumption_sync_request_request import TriggerConsumptionSyncRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_trigger_consumption_sync # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = TriggerConsumptionSyncRequestRequest(
    year=123,
    month=123
)
response = admin_arrow_billing_syncs_trigger_consumption_sync.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: TriggerConsumptionSyncRequestRequest
  2. API Source: admin_arrow_billing_syncs_trigger_consumption_sync
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import { adminArrowBillingSyncsTriggerConsumptionSync } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsTriggerConsumptionSync({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "year": 123,
    "month": 123
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
year integer
month integer
settings_uuid string (uuid)
resource_uuid string (uuid) Sync specific resource only

202 - No response body


Trigger reconciliation (check billing export and apply adjustments)

Trigger reconciliation (check billing export and apply adjustments).

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/trigger_reconciliation/ \
  Authorization:"Token YOUR_API_TOKEN" \
  year=123 \
  month=123
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.reconcile_request_request import ReconcileRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_trigger_reconciliation # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = ReconcileRequestRequest(
    year=123,
    month=123
)
response = admin_arrow_billing_syncs_trigger_reconciliation.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: ReconcileRequestRequest
  2. API Source: admin_arrow_billing_syncs_trigger_reconciliation
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import { adminArrowBillingSyncsTriggerReconciliation } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsTriggerReconciliation({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "year": 123,
    "month": 123
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
year integer
month integer
settings_uuid string (uuid)
force boolean Force reconciliation even if not validated
Constraints: default: False

202 - No response body


Trigger billing sync for a specific period

Trigger billing sync for a specific period.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/trigger_sync/ \
  Authorization:"Token YOUR_API_TOKEN" \
  year=123 \
  month=123
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.trigger_sync_request_request import TriggerSyncRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_trigger_sync # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = TriggerSyncRequestRequest(
    year=123,
    month=123
)
response = admin_arrow_billing_syncs_trigger_sync.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: TriggerSyncRequestRequest
  2. API Source: admin_arrow_billing_syncs_trigger_sync
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import { adminArrowBillingSyncsTriggerSync } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsTriggerSync({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "year": 123,
    "month": 123
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
year integer
month integer
settings_uuid string (uuid)
resource_uuid string (uuid) If set, only sync billing lines for this resource.

202 - No response body


Data Retrieval

Get consumption statistics

Get consumption statistics.

1
2
3
4
http \
  GET \
  https://api.example.com/api/admin/arrow/billing-syncs/consumption_statistics/ \
  Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.admin import admin_arrow_billing_syncs_consumption_statistics_retrieve # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = admin_arrow_billing_syncs_consumption_statistics_retrieve.sync(client=client)

print(response)
  1. API Source: admin_arrow_billing_syncs_consumption_statistics_retrieve
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import { adminArrowBillingSyncsConsumptionStatisticsRetrieve } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsConsumptionStatisticsRetrieve({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}

200 -

Field Type
total_records integer
pending_records integer
finalized_records integer
reconciled_records integer
total_consumed_sell string (decimal)
total_adjustments string (decimal)
period_breakdown array of objects
period_breakdown.period string
period_breakdown.count integer
period_breakdown.consumed_sell string (decimal)
period_breakdown.finalized_count integer
period_breakdown.reconciled_count integer

Get current consumption sync status

Get current consumption sync status.

1
2
3
4
http \
  GET \
  https://api.example.com/api/admin/arrow/billing-syncs/consumption_status/ \
  Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.admin import admin_arrow_billing_syncs_consumption_status_retrieve # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = admin_arrow_billing_syncs_consumption_status_retrieve.sync(client=client)

print(response)
  1. API Source: admin_arrow_billing_syncs_consumption_status_retrieve
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import { adminArrowBillingSyncsConsumptionStatusRetrieve } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsConsumptionStatusRetrieve({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}

200 -

Field Type
global_sync_enabled boolean
settings_sync_enabled boolean
settings_uuid string (uuid)
last_sync_run string (date-time)

List pending consumption records (not yet finalized)

List pending consumption records (not yet finalized).

1
2
3
4
http \
  GET \
  https://api.example.com/api/admin/arrow/billing-syncs/pending_records/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.admin import admin_arrow_billing_syncs_pending_records_list # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = admin_arrow_billing_syncs_pending_records_list.sync(client=client)

for item in response:
    print(item)
  1. API Source: admin_arrow_billing_syncs_pending_records_list
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import { adminArrowBillingSyncsPendingRecordsList } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsPendingRecordsList({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Description
arrow_state string
customer_mapping string (uri)
customer_mapping_uuid string (uuid)
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.
report_period string
report_period_from string
report_period_to string
settings_uuid string (uuid)
state integer
statement_reference string

200 -

The response body is an array of objects, where each object has the following structure:

Field Type
uuid string (uuid)
resource_uuid string (uuid)
resource_name string
license_reference string
billing_period string (date)
consumed_sell string (decimal)
last_sync_at string (date-time)

Fetch raw billing export from Arrow API

Fetch raw billing export from Arrow API.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/fetch_billing_export/ \
  Authorization:"Token YOUR_API_TOKEN" \
  period_from="string-value" \
  period_to="string-value"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.fetch_billing_export_request_request import FetchBillingExportRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_fetch_billing_export # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = FetchBillingExportRequestRequest(
    period_from="string-value",
    period_to="string-value"
)
response = admin_arrow_billing_syncs_fetch_billing_export.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: FetchBillingExportRequestRequest
  2. API Source: admin_arrow_billing_syncs_fetch_billing_export
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import { adminArrowBillingSyncsFetchBillingExport } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsFetchBillingExport({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "period_from": "string-value",
    "period_to": "string-value"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
period_from string YYYY-MM format
period_to string YYYY-MM format
classification string

200 -

Field Type
period_from string
period_to string
classification string
row_count integer
data array of objects

Fetch raw consumption data from Arrow API

Fetch raw consumption data from Arrow API.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/fetch_consumption/ \
  Authorization:"Token YOUR_API_TOKEN" \
  license_reference="string-value" \
  period="string-value"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.fetch_consumption_request_request import FetchConsumptionRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_fetch_consumption # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = FetchConsumptionRequestRequest(
    license_reference="string-value",
    period="string-value"
)
response = admin_arrow_billing_syncs_fetch_consumption.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: FetchConsumptionRequestRequest
  2. API Source: admin_arrow_billing_syncs_fetch_consumption
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import { adminArrowBillingSyncsFetchConsumption } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsFetchConsumption({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "license_reference": "string-value",
    "period": "string-value"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
license_reference string
period string YYYY-MM format

200 -

Field Type
license_reference string
period string
row_count integer
data array of objects

Fetch license details from Arrow API

Fetch license details from Arrow API.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/fetch_license_info/ \
  Authorization:"Token YOUR_API_TOKEN" \
  license_reference="string-value"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.fetch_license_info_request_request import FetchLicenseInfoRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_fetch_license_info # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = FetchLicenseInfoRequestRequest(
    license_reference="string-value"
)
response = admin_arrow_billing_syncs_fetch_license_info.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: FetchLicenseInfoRequestRequest
  2. API Source: admin_arrow_billing_syncs_fetch_license_info
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { adminArrowBillingSyncsFetchLicenseInfo } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsFetchLicenseInfo({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "license_reference": "string-value"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required
license_reference string

200 -

Field Type Description
data object (free-form) Raw license data from Arrow API

Sync historical consumption for a specific resource from Arrow

Sync historical consumption for a specific resource from Arrow.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/sync_resource_historical_consumption/ \
  Authorization:"Token YOUR_API_TOKEN" \
  resource_uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.sync_resource_historical_consumption_request_request import SyncResourceHistoricalConsumptionRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_sync_resource_historical_consumption # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = SyncResourceHistoricalConsumptionRequestRequest(
    resource_uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
response = admin_arrow_billing_syncs_sync_resource_historical_consumption.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: SyncResourceHistoricalConsumptionRequestRequest
  2. API Source: admin_arrow_billing_syncs_sync_resource_historical_consumption
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { adminArrowBillingSyncsSyncResourceHistoricalConsumption } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsSyncResourceHistoricalConsumption({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "resource_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
resource_uuid string (uuid) UUID of the resource to sync
period_from string Start period in YYYY-MM format. Defaults to 12 months ago.
period_to string End period in YYYY-MM format. Defaults to current month.
force boolean If True, sync even for finalized periods.
Constraints: default: False
dry_run boolean If True, preview consumption data without saving.
Constraints: default: False

200 -

Field Type
resource_uuid string (uuid)
resource_name string
periods_synced integer
periods_skipped integer
periods_no_data integer
errors array of objects
dry_run boolean
preview_periods array of objects

Sync resources

Sync Arrow IAAS subscriptions to Waldur Resources. Matches subscriptions by Vendor Subscription ID to resource backend_id. Updates resource report and current_usages fields. With force_import=True, auto-creates Customers and Projects from Arrow data.

1
2
3
4
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/sync_resources/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.sync_resources_request_request import SyncResourcesRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_sync_resources # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = SyncResourcesRequestRequest()
response = admin_arrow_billing_syncs_sync_resources.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: SyncResourcesRequestRequest
  2. API Source: admin_arrow_billing_syncs_sync_resources
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import { adminArrowBillingSyncsSyncResources } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsSyncResources({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
period_from string Start period in YYYY-MM format (default: 6 months ago, Arrow max)
period_to string End period in YYYY-MM format (default: current month)
settings_uuid string (uuid)
offering_uuid string (uuid) Offering UUID for creating new resources
project_uuid string (uuid) Project UUID for creating new resources (ignored if force_import=True)
force_import boolean If True, auto-create Waldur Customers and Projects from Arrow data. Each Arrow customer gets a Waldur Customer with an 'Arrow Azure Subscriptions' project.
Constraints: default: False

200 -

Field Type
synced integer
created integer
updated integer
orders_created integer
customers_created integer
projects_created integer
mappings_created integer
invoices_created integer
invoice_items_created integer
errors array of objects

Cleanup

Delete consumption records with optional dry-run preview

Delete consumption records with optional dry-run preview.

1
2
3
4
http \
  POST \
  https://api.example.com/api/admin/arrow/billing-syncs/cleanup_consumption/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.cleanup_consumption_request_request import CleanupConsumptionRequestRequest # (1)
from waldur_api_client.api.admin import admin_arrow_billing_syncs_cleanup_consumption # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = CleanupConsumptionRequestRequest()
response = admin_arrow_billing_syncs_cleanup_consumption.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: CleanupConsumptionRequestRequest
  2. API Source: admin_arrow_billing_syncs_cleanup_consumption
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import { adminArrowBillingSyncsCleanupConsumption } from 'waldur-js-client';

try {
  const response = await adminArrowBillingSyncsCleanupConsumption({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
period_from string YYYY-MM format
period_to string YYYY-MM format
resource_uuid string (uuid)
only_finalized boolean
Constraints: default: False
only_unfinalized boolean
Constraints: default: False
dry_run boolean
Constraints: default: True

200 -

Field Type
dry_run boolean
records_to_delete integer
records_deleted integer
compensation_items_affected integer
invoice_items_affected integer