Package: lusid-drive-sdk
lusid-drive-sdkFINBOURNE TechnologyThis Python package is automatically generated by theOpenAPI Generatorproject:API version: 0.1.611Package version: 2.0.17Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visithttps://www.finbourne.comRequirements.Python 3.7+Installation & Usagepip installIf the python package is hosted on a repository, you can install directly using:pipinstallgit+https://github.com/finbourne/drive-sdk-python.git(you may need to runpipwith root permission:sudo pip install git+https://github.com/finbourne/drive-sdk-python.git)Then import the package:importlusid_driveSetuptoolsInstall viaSetuptools.pythonsetup.pyinstall--user(orsudo python setup.py installto install the package for all users)Then import the package:importlusid_driveTestsExecutepytestto run the tests.Getting StartedYou'll need to provide some configuration to connect to the lusid_drive application.
These can be provided using a secrets file or environment variables.Environment variablesIn order to useshort lived access tokensyou will need to have appropriate values set for the following environment variables:FBN_TOKEN_URL,
FBN_LUSID_DRIVE_API_URL,
FBN_USERNAME,
FBN_PASSWORD,
FBN_CLIENT_ID,
FBN_CLIENT_SECRET,
FBN_ACCESS_TOKENTo use a long lived Personal Access Token, you must provide the following environment variables:FBN_LUSID_DRIVE_API_URL,
FBN_ACCESS_TOKENYou can send your requests to lusid_drive via a proxy, by settingFBN_PROXY_ADDRESS.
If your proxy has basic auth enabled, you must akso supplyFBN_PROXY_USERNAMEandFBN_PROXY_PASSWORDSecrets fileIn order to useshort lived access tokensyou will need to have appropriate values set in asecrets.jsonfile in the same folder as your script.{
    "api":
    {
        "tokenUrl":"<your-token-url>",
        "lusid_driveUrl":"<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 asecrets.jsonwith the following variables:{
    "api":
    {
        "lusid_driveUrl":"<FINBOURNE-application-url>",
        "accessToken":"<your-access-token>"
    }
}You can send your requests to lusid_drive via a proxy, by adding a proxy section to yoursecrets.json.
If your proxy has basic auth enabled, you must also supply ausernameandpasswordin this section.{
    "api":
    {
        "lusid_driveUrl":"<FINBOURNE-application-url>",
        "accessToken":"<your-access-token>"
    },
    "proxy":
    {
        "address":"<your-proxy-address>",
        "username":"<your-proxy-username>",
        "password":"<your-proxy-password>"
    }
}Using the SDKPlease follow theinstallation procedureand then run the following:importtimeimportlusid_drivefromlusid_drive.exceptionsimportApiExceptionfrompprintimportpprintimportosfromlusid_driveimport(ApiClientFactory,ApplicationMetadataApi,EnvironmentVariablesConfigurationLoader,SecretsFileConfigurationLoader,ArgsConfigurationLoader)# Use the lusid_drive 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 directoryapi_client_factory=ApiClientFactory()# The ApiClientFactory can be passed an iterable of configuration loaders to read configuration fromapi_url="https://fbn-prd.lusid.com/drive"# 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 APIssecrets_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 useasyncwithapi_client_factory:# Create an instance of the API classapi_instance=api_client_factory.build(ApplicationMetadataApi)try:# [EARLY ACCESS] ListAccessControlledResources: Get resources available for access controlapi_response=awaitapi_instance.list_access_controlled_resources()print("The response of ApplicationMetadataApi->list_access_controlled_resources:\n")pprint(api_response)exceptApiExceptionase:print("Exception when calling ApplicationMetadataApi->list_access_controlled_resources:%s\n"%e)Documentation for API EndpointsAll URIs are relative tohttps://fbn-prd.lusid.com/driveClassMethodHTTP requestDescriptionApplicationMetadataApilist_access_controlled_resourcesGET/api/metadata/access/resources[EARLY ACCESS] ListAccessControlledResources: Get resources available for access controlFilesApicreate_filePOST/api/files[EARLY ACCESS] CreateFile: Uploads a file to Lusid Drive. If using an SDK, consider using the UploadAsStreamAsync function for larger files instead.FilesApidelete_fileDELETE/api/files/{id}[EARLY ACCESS] DeleteFile: Deletes a file from Drive.FilesApidownload_fileGET/api/files/{id}/contents[EARLY ACCESS] DownloadFile: Download the file from Drive.FilesApiget_fileGET/api/files/{id}[EARLY ACCESS] GetFile: Get a file stored in Drive.FilesApiupdate_file_contentsPUT/api/files/{id}/contents[EARLY ACCESS] UpdateFileContents: Updates contents of a file in Drive.FilesApiupdate_file_metadataPUT/api/files/{id}[EARLY ACCESS] UpdateFileMetadata: Updates metadata for a file in Drive.FoldersApicreate_folderPOST/api/folders[EARLY ACCESS] CreateFolder: Create a new folder in LUSID DriveFoldersApidelete_folderDELETE/api/folders/{id}[EARLY ACCESS] DeleteFolder: Delete a specified folder and all subfoldersFoldersApiget_folderGET/api/folders/{id}[EARLY ACCESS] GetFolder: Get metadata of folderFoldersApiget_folder_contentsGET/api/folders/{id}/contents[EARLY ACCESS] GetFolderContents: List contents of a folderFoldersApiget_root_folderGET/api/folders[EARLY ACCESS] GetRootFolder: List contents of root folderFoldersApimove_folderPOST/api/folders/{id}[EARLY ACCESS] MoveFolder: Move files to specified folderFoldersApiupdate_folderPUT/api/folders/{id}[EARLY ACCESS] UpdateFolder: Update an existing folder's name, pathSearchApisearchPOST/api/search[EARLY ACCESS] Search: Search for a file or folder with a given name and pathDocumentation For ModelsAccessControlledActionAccessControlledResourceActionIdCreateFolderIdSelectorDefinitionIdentifierPartSchemaLinkLusidProblemDetailsLusidValidationProblemDetailsPagedResourceListOfStorageObjectResourceListOfAccessControlledResourceSearchBodyStorageObjectUpdateFileUpdateFolderDocumentation For AuthorizationAuthentication schemes defined for the API:oauth2Type: OAuthFlow: implicitAuthorization URL:https://lusid.okta.com/oauth2/default/v1/authorizeScopes: N/AAuthorinfo@finbourne.com