This is the java SDK for the FINBOURNE Access Management API, part of the LUSID by FINBOURNE platform. To use it you'll need a LUSID account - sign up for free at lusid.com.
Access provides access control for LUSID (in conjunction with Identity) - see https://support.lusid.com/knowledgebase/article/KA-01647/ to learn more.
For more details on other applications in the LUSID platform, see Understanding all the applications in the LUSID platform.
This sdk supports Production
, Early Access
, Beta
and Experimental
API endpoints. For more details on API endpoint categories, see What is the LUSID feature release lifecycle. To find out which category an API endpoint falls into, see the swagger page.
This code is automatically generated by the OpenAPI Generator project.
- API version: 0.0.4000
- SDK version: 2.0.292
- Java 1.8+
Add this dependency to your pom.xml
<dependency>
<groupId>com.finbourne</groupId>
<artifactId>access-sdk</artifactId>
<version>2.0.292</version>
</dependency>
Add this dependency to your build.gradle
repositories {
mavenCentral()
}
dependencies {
implementation "com.finbourne:access-sdk:2.0.292"
}
You'll need to provide some configuration to connect to the FINBOURNE Access Management API - see the articles about short-lived access tokens and a long-lived Personal Access Token. This configuration can be provided using a secrets file or environment variables.
For some configuration it is also possible to override the global configuration at the ApiFactory level, or at the request level. For the set of configuration which can be overridden, please see ConfigurationOptions. For a code illustration of this configuration being overridden, please see the example.
Required for a short-lived access token
FBN_TOKEN_URL
FBN_ACCESS_URL
FBN_USERNAME
FBN_PASSWORD
FBN_CLIENT_ID
FBN_CLIENT_SECRET
Required for a long-lived access token
FBN_ACCESS_URL
FBN_ACCESS_TOKEN
You can send your requests to the FINBOURNE Access Management API via a proxy, by setting FBN_PROXY_ADDRESS
. If your proxy has basic auth enabled, you must also set FBN_PROXY_USERNAME
and FBN_PROXY_PASSWORD
.
Other optional configuration
# sdk client timeouts in milliseconds - a value of 0 means no timeout, otherwise timeout values must be between 1 and 2147483647
# please note - the chances of seeing a network issue increases with the duration of the request
# for this reason, rather than increasing the timeout, it will be more reliable to use an alternate polling style endpoint where these exist
FBN_TOTAL_TIMEOUT_MS # the default is 1800000 (30 minutes)
FBN_CONNECT_TIMEOUT_MS # the default is 0 (no timeout)
FBN_READ_TIMEOUT_MS # the default is 0 (no timeout)
FBN_WRITE_TIMEOUT_MS # the default is 0 (no timeout)
FBN_RATE_LIMIT_RETRIES # the default is 2
The secrets file must be in the current working directory. By default the SDK looks for a secrets file called secrets.json
Required for a short-lived access token
{
"api":
{
"tokenUrl":"<your-token-url>",
"accessUrl":"https://<your-domain>.lusid.com/access",
"username":"<your-username>",
"password":"<your-password>",
"clientId":"<your-client-id>",
"clientSecret":"<your-client-secret>",
}
}
Required for a long-lived access token
{
"api":
{
"accessUrl":"https://<your-domain>.lusid.com/access",
"accessToken":"<your-access-token>"
}
}
You can send your requests to the FINBOURNE Access Management API via a proxy, by adding a proxy section. If your proxy has basic auth enabled, you must also supply a username
and password
in this section.
{
"api":
{
"accessUrl":"https://<your-domain>.lusid.com/access",
"accessToken":"<your-access-token>"
},
"proxy":
{
"address":"<your-proxy-address>",
"username":"<your-proxy-username>",
"password":"<your-proxy-password>"
}
}
Other optional configuration
{
"api":
{
// sdk client timeouts in milliseconds - a value of 0 means no timeout, otherwise timeout values must be between 1 and 2147483647
// please note - the chances of seeing a network issue increases with the duration of the request
// for this reason, rather than increasing the timeout, it will be more reliable to use an alternate polling style endpoint where these exist
"totalTimeoutMs":"<timeout-in-ms>", // the default is 1800000 (30 minutes)
"connectTimeoutMs":"<timeout-in-ms>", // the default is 0 (no timeout)
"readTimeoutMs":"<timeout-in-ms>", // the default is 0 (no timeout)
"writeTimeoutMs":"<timeout-in-ms>", // the default is 0 (no timeout)
"rateLimitRetries":<retries-when-being-rate-limited> // the default is 2
}
}
import com.finbourne.access.model.*;
import com.finbourne.access.api.ApplicationMetadataApi;
import com.finbourne.access.extensions.ApiConfigurationException;
import com.finbourne.access.extensions.ApiFactoryBuilder;
import com.finbourne.access.extensions.auth.FinbourneTokenException;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
public class ApplicationMetadataApiExample {
public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException, ApiConfigurationException, FinbourneTokenException {
String fileName = "secrets.json";
try(PrintWriter writer = new PrintWriter(fileName, "UTF-8")) {
writer.write("{" +
"\"api\": {" +
" \"tokenUrl\": \"<your-token-url>\"," +
" \"accessUrl\": \"https://<your-domain>.lusid.com/access\"," +
" \"username\": \"<your-username>\"," +
" \"password\": \"<your-password>\"," +
" \"clientId\": \"<your-client-id>\"," +
" \"clientSecret\": \"<your-client-secret>\"" +
" }" +
"}");
}
// uncomment the below to use configuration overrides
// ConfigurationOptions opts = new ConfigurationOptions();
// opts.setTotalTimeoutMs(2000);
// uncomment the below to use an api factory with overrides
// ApiFactory apiFactory = ApiFactoryBuilder.build(fileName, opts);
// ApplicationMetadataApi apiInstance = apiFactory.build(ApplicationMetadataApi.class);
ApplicationMetadataApi apiInstance = ApiFactoryBuilder.build(fileName).build(ApplicationMetadataApi.class);
try {
// uncomment the below to set overrides at the request level
// ResourceListOfAccessControlledResource result = apiInstance.listAccessControlledResources().execute(opts);
ResourceListOfAccessControlledResource result = apiInstance.listAccessControlledResources().execute();
System.out.println(result.toJson());
} catch (ApiException e) {
System.err.println("Exception when calling ApplicationMetadataApi#listAccessControlledResources");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}
- See Documentation for API Endpoints for a description of each endpoint
- See Documentation for Models for descriptions of the models used