Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,40 +58,61 @@ The following Squonk2 Data Manager API functions are available: -
- ``DmApi.ping()``

- ``DmApi.acknowledge_service_error()``
- ``DmApi.add_dataset_editor()``
- ``DmApi.add_project_administrator()``
- ``DmApi.add_project_editor()``
- ``DmApi.add_project_observer()``
- ``DmApi.apply_workflow_version()``
- ``DmApi.attach_dataset_to_project()``
- ``DmApi.create_dataset_from_project_file()``
- ``DmApi.create_project()``
- ``DmApi.create_project_path()``
- ``DmApi.create_user_account()``
- ``DmApi.create_workflow()``
- ``DmApi.delete_dataset()``
- ``DmApi.delete_instance()``
- ``DmApi.delete_instance_token()``
- ``DmApi.delete_job_manifest()``
- ``DmApi.delete_project()``
- ``DmApi.delete_project_file()``
- ``DmApi.delete_project_path()``
- ``DmApi.delete_service_error()``
- ``DmApi.delete_task()``
- ``DmApi.delete_unmanaged_project_files()``
- ``DmApi.delete_user_account()``
- ``DmApi.delete_workflow()``
- ``DmApi.delete_running_workflow()``
- ``DmApi.dry_run_job_instance()``
- ``DmApi.get_account()``
- ``DmApi.get_account_server_namespace()``
- ``DmApi.get_account_server_registration()``
- ``DmApi.get_admin_users()``
- ``DmApi.get_api_log()``
- ``DmApi.get_api_token()``
- ``DmApi.get_application()``
- ``DmApi.get_applications()``
- ``DmApi.get_available_instances()``
- ``DmApi.get_available_datasets()``
- ``DmApi.get_available_jobs()``
- ``DmApi.get_available_projects()``
- ``DmApi.get_available_tasks()``
- ``DmApi.get_dataset()``
- ``DmApi.get_dataset_for_digest()``
- ``DmApi.get_dataset_metadata()``
- ``DmApi.get_dataset_schema()``
- ``DmApi.get_dataset_version_metadata()``
- ``DmApi.get_dataset_versions()``
- ``DmApi.get_job()``
- ``DmApi.get_job_definition_schema_version()``
- ``DmApi.get_job_exchange_rate()``
- ``DmApi.get_job_exchange_rates()``
- ``DmApi.get_job_manifests()``
- ``DmApi.get_job_by_version()``
- ``DmApi.get_input_handler()``
- ``DmApi.get_instance()``
- ``DmApi.get_mode()``
- ``DmApi.get_project()``
- ``DmApi.get_project_file()``
- ``DmApi.get_project_instances()``
- ``DmApi.get_running_workflow()``
- ``DmApi.get_running_workflows()``
Expand All @@ -102,24 +123,34 @@ The following Squonk2 Data Manager API functions are available: -
- ``DmApi.get_unmanaged_project_file()``
- ``DmApi.get_unmanaged_project_file_with_token()``
- ``DmApi.get_user_inventory()``
- ``DmApi.get_users()``
- ``DmApi.get_version()``
- ``DmApi.get_workflows()``
- ``DmApi.get_workflow()``
- ``DmApi.get_workflow_definition()``
- ``DmApi.get_workflow_engine_version()``
- ``DmApi.list_project_files()``
- ``DmApi.load_job_manifests()``
- ``DmApi.move_project_file()``
- ``DmApi.move_project_path()``
- ``DmApi.put_unmanaged_project_files()``
- ``DmApi.put_job_manifest()``
- ``DmApi.remove_dataset_editor()``
- ``DmApi.remove_project_administrator()``
- ``DmApi.remove_project_editor()``
- ``DmApi.remove_project_observer()``
- ``DmApi.run_workflow()``
- ``DmApi.set_admin_state()``
- ``DmApi.set_job_exchange_rates()``
- ``DmApi.start_job_instance()``
- ``DmApi.stop_running_workflow()``
- ``DmApi.update_dataset_metadata()``
- ``DmApi.update_dataset_version_metadata()``
- ``DmApi.update_instance()``
- ``DmApi.update_project()``
- ``DmApi.update_user_account()``
- ``DmApi.update_workflow()``
- ``DmApi.upload_dataset()``

A ``dataclass`` defined in ``api`` is used as the return value for many of the methods: -

Expand Down Expand Up @@ -168,6 +199,7 @@ The following Squonk2 Account Server API functions are available: -
- ``AsApi.get_available_assets()``
- ``AsApi.get_available_units()``
- ``AsApi.get_available_products()``
- ``AsApi.get_charges()``
- ``AsApi.get_default_organisation()``
- ``AsApi.get_event_stream_version()``
- ``AsApi.get_event_stream()``
Expand Down
41 changes: 41 additions & 0 deletions src/squonk2/as_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -1421,6 +1421,47 @@ def get_organisation_charges(
timeout=timeout_s,
)[0]

@classmethod
@synchronized
def get_charges(
cls,
access_token: str,
*,
from_: Optional[date] = None,
until: Optional[date] = None,
pbp: Optional[int] = None,
timeout_s: int = _READ_TIMEOUT_S,
) -> ApiRv:
"""Returns charges for all Organisations. If from and until are omitted
charges for the current billing period are returned.

You will need admin rights on the Account Server to use this method.

:param access_token: A valid AS API access token
:param from_: An optional date where charges are to start (inclusive)
:param until: An optional date where charges are to end (exclusive)
:param pbp: An optional prior billing period
:param timeout_s: The underlying request timeout
"""
assert access_token

params: Dict[str, Any] = {}
if from_:
params["from"] = str(from_)
if until:
params["until"] = str(until)
if pbp:
params["pbp"] = str(pbp)

return AsApi.__request(
"GET",
"/charges",
access_token=access_token,
params=params,
error_message="Failed getting charges",
timeout=timeout_s,
)[0]

@classmethod
@synchronized
def get_organisation_users(
Expand Down
Loading