FINBOURNE Scheduler API
Project description
lusid-scheduler-sdk
FINBOURNE Technology
This Python package is automatically generated by the OpenAPI Generator project:
- API version: 0.0.926
- Package version: 2.1.37
- Build package: org.openapitools.codegen.languages.PythonClientCodegen For more information, please visit https://www.finbourne.com
Requirements.
Python 3.7+
Installation & Usage
pip install
If the python package is hosted on a repository, you can install directly using:
pip install git+https://github.com/finbourne/scheduler-sdk-python.git
(you may need to run pip
with root permission: sudo pip install git+https://github.com/finbourne/scheduler-sdk-python.git
)
Then import the package:
import lusid_scheduler
Setuptools
Install via Setuptools.
python setup.py install --user
(or sudo python setup.py install
to install the package for all users)
Then import the package:
import lusid_scheduler
Tests
Execute pytest
to run the tests.
Getting Started
You'll need to provide some configuration to connect to the lusid_scheduler application. These can be provided using a secrets file or environment variables.
Environment variables
In order to use short lived access tokens you will need to have appropriate values set for the following environment variables:
FBN_TOKEN_URL,
FBN_LUSID_SCHEDULER_API_URL,
FBN_USERNAME,
FBN_PASSWORD,
FBN_CLIENT_ID,
FBN_CLIENT_SECRET
To use a long lived Personal Access Token, you must provide the following environment variables:
FBN_LUSID_SCHEDULER_API_URL,
FBN_ACCESS_TOKEN
You can send your requests to lusid_scheduler via a proxy, by setting FBN_PROXY_ADDRESS
.
If your proxy has basic auth enabled, you must akso supply FBN_PROXY_USERNAME
and FBN_PROXY_PASSWORD
Secrets file
In order to use short lived access tokens you will need to have appropriate values set in a secrets.json
file in the same folder as your script.
{
"api":
{
"tokenUrl":"<your-token-url>",
"lusid_schedulerUrl":"<FINBOURNE-application-url>",
"username":"<your-username>",
"password":"<your-password>",
"clientId":"<your-client-id>",
"clientSecret":"<your-client-secret>",
}
}
To use a long lived Personal Access Token, you must provide a secrets.json
with the following variables:
{
"api":
{
"lusid_schedulerUrl":"<FINBOURNE-application-url>",
"accessToken":"<your-access-token>"
}
}
You can send your requests to lusid_scheduler via a proxy, by adding a proxy section to your secrets.json
.
If your proxy has basic auth enabled, you must also supply a username
and password
in this section.
{
"api":
{
"lusid_schedulerUrl":"<FINBOURNE-application-url>",
"accessToken":"<your-access-token>"
},
"proxy":
{
"address":"<your-proxy-address>",
"username":"<your-proxy-username>",
"password":"<your-proxy-password>"
}
}
Using the SDK
Please follow the installation procedure and then run the following:
import time
import lusid_scheduler
from lusid_scheduler.exceptions import ApiException
from pprint import pprint
import os
from lusid_scheduler import (
ApiClientFactory,
ApplicationMetadataApi,
EnvironmentVariablesConfigurationLoader,
SecretsFileConfigurationLoader,
ArgsConfigurationLoader
)
# Use the lusid_scheduler ApiClientFactory to build Api instances with a configured api client
# By default this will read config from environment variables
# Then from a secrets.json file found in the current working directory
api_client_factory = ApiClientFactory()
# The ApiClientFactory can be passed an iterable of configuration loaders to read configuration from
api_url = "https://fbn-prd.lusid.com/scheduler2"
# Path to a secrets.json file containing authentication credentials
# See https://support.lusid.com/knowledgebase/article/KA-01667/en-us
# for a detailed guide to setting up the SDK make authenticated calls to LUSID APIs
secrets_path = os.getenv("FBN_SECRETS_PATH")
app_name="LusidJupyterNotebook"
config_loaders = [
EnvironmentVariablesConfigurationLoader(),
SecretsFileConfigurationLoader(api_secrets_file=secrets_path),
ArgsConfigurationLoader(api_url=api_url, app_name=app_name)
]
api_client_factory = ApiClientFactory(config_loaders=config_loaders)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Enter a context with an instance of the ApiClientFactory to ensure the connection pool is closed after use
async with api_client_factory:
# Create an instance of the API class
api_instance = api_client_factory.build(ApplicationMetadataApi)
try:
# [EXPERIMENTAL] ListAccessControlledResources: Get resources available for access control
api_response = await api_instance.list_access_controlled_resources()
print("The response of ApplicationMetadataApi->list_access_controlled_resources:\n")
pprint(api_response)
except ApiException as e:
print("Exception when calling ApplicationMetadataApi->list_access_controlled_resources: %s\n" % e)
Documentation for API Endpoints
All URIs are relative to https://fbn-prd.lusid.com/scheduler2
Class | Method | HTTP request | Description |
---|---|---|---|
ApplicationMetadataApi | list_access_controlled_resources | GET /api/metadata/access/resources | [EXPERIMENTAL] ListAccessControlledResources: Get resources available for access control |
ImagesApi | delete_image | DELETE /api/images/{name} | [EXPERIMENTAL] DeleteImage: Delete a Docker Image |
ImagesApi | download_image | GET /api/images/{name}/contents | [EXPERIMENTAL] DownloadImage: Download Docker Image |
ImagesApi | get_image | GET /api/images/{name} | [EXPERIMENTAL] GetImage: Get metadata of a Docker Image |
ImagesApi | list_images | GET /api/images/repository/{name} | [EXPERIMENTAL] ListImages: List all images under same image repository |
ImagesApi | list_repositories | GET /api/images/repository | [EXPERIMENTAL] ListRepositories: List all Docker image repositories |
ImagesApi | upload_image | POST /api/images | [EXPERIMENTAL] UploadImage: Upload a Docker Image used for Scheduler jobs |
JobsApi | create_job | POST /api/jobs | [EXPERIMENTAL] CreateJob: Create a new job |
JobsApi | delete_job | DELETE /api/jobs/{scope}/{code} | [EXPERIMENTAL] DeleteJob: Delete a job |
JobsApi | get_history | GET /api/jobs/history | [EXPERIMENTAL] GetHistory: Get the history of job runs |
JobsApi | get_job_console_output | GET /api/jobs/history/{runId}/console | [EXPERIMENTAL] GetJobConsoleOutput: Gets the console output of a specific job run |
JobsApi | get_run_history | GET /api/jobs/history/{runId} | [EXPERIMENTAL] GetRunHistory: Get the history for a single job run |
JobsApi | get_schedules_for_a_job | GET /api/jobs/{scope}/{code}/schedules | [EXPERIMENTAL] GetSchedulesForAJob: Get all the schedules for a single job |
JobsApi | list_jobs | GET /api/jobs | [EXPERIMENTAL] ListJobs: List the available jobs |
JobsApi | run_job | POST /api/jobs/{scope}/{code}/$run | [EXPERIMENTAL] RunJob: Run a job immediately |
JobsApi | update_job | PUT /api/jobs/{scope}/{code} | [EXPERIMENTAL] UpdateJob: Update a JobDefinition |
SchedulesApi | create_schedule | POST /api/schedules | [EXPERIMENTAL] CreateSchedule: Create a Schedule for a job |
SchedulesApi | delete_schedule | DELETE /api/schedules/{scope}/{code} | [EXPERIMENTAL] DeleteSchedule: Delete a schedule |
SchedulesApi | enabled_schedule | PUT /api/schedules/{scope}/{code}/enabled | [EXPERIMENTAL] EnabledSchedule: Enable/disable a schedule |
SchedulesApi | get_schedule | GET /api/schedules/{scope}/{code} | [EXPERIMENTAL] GetSchedule: Get a single Schedule |
SchedulesApi | list_schedules | GET /api/schedules | [EXPERIMENTAL] ListSchedules: List the available Schedules |
SchedulesApi | run_schedule | POST /api/schedules/{scope}/{code}/$run | [EXPERIMENTAL] RunSchedule: Run a schedule immediately |
SchedulesApi | update_schedule | PUT /api/schedules/{scope}/{code} | [EXPERIMENTAL] UpdateSchedule: Update a schedule. |
Documentation For Models
- AccessControlledAction
- AccessControlledResource
- ActionId
- ArgumentDefinition
- CreateJobRequest
- CreateScheduleRequest
- IdSelectorDefinition
- IdentifierPartSchema
- Image
- ImageSummary
- JobDefinition
- JobHistory
- JobRunResult
- Link
- LusidProblemDetails
- LusidValidationProblemDetails
- Notification
- Repository
- RequiredResources
- ResourceId
- ResourceListOfAccessControlledResource
- ResourceListOfImageSummary
- ResourceListOfJobDefinition
- ResourceListOfJobHistory
- ResourceListOfRepository
- ResourceListOfScheduleDefinition
- ScanReport
- ScanSummary
- ScheduleDefinition
- StartJobRequest
- StartJobResponse
- StartScheduleResponse
- Tag
- TimeTrigger
- Trigger
- UpdateJobRequest
- UpdateScheduleRequest
- UploadImageInstructions
- UploadImageRequest
- Vulnerability
Documentation For Authorization
Authentication schemes defined for the API:
oauth2
- Type: OAuth
- Flow: implicit
- Authorization URL: https://lusid.okta.com/oauth2/default/v1/authorize
- Scopes: N/A
Author
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for lusid_scheduler_sdk-2.1.37.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf5b7b7c047f31ddea855517dfa73f57a86dea61ed805541f7d8bbc80319d477 |
|
MD5 | 14649558707c2533b18b27478d265cd9 |
|
BLAKE2b-256 | 99e1fbc00e544e3df1a54492a4cfaccd40ae7ea68bba9faa61acb2e596fbf46a |
Hashes for lusid_scheduler_sdk-2.1.37-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8238a41a57b0a2c5d0eae673468cb973e845dece1ff9d3921a0d341cc8569ed5 |
|
MD5 | 56b6ce89bd6ef159730676ec9b9dec63 |
|
BLAKE2b-256 | e4535798f8b474dc669cd3679843b10be66fdea427012d7661f9a4c0d12259d8 |