@al/environments
Version:
A client for interacting with the Alert Logic Environments Public API.
138 lines (135 loc) • 4.68 kB
JavaScript
import { AlDefaultClient } from '@al/core';
/**
* A client for interacting with the Alert Logic Environments Public API.
*/
class EnvironmentsClient {
constructor() {
/**
* Expose AlDefaultClient to Credentials client
*/
this.alClient = AlDefaultClient;
}
/**
* Add an environment
* POST
* /environments/v1/:account_id
* "https://api.cloudinsight.alertlogic.com/environments/v1/01000001"
* -d '{"type":"aws",
* "type_id": "123456789012",
* "defender_support":true,
* "defender_location_id":"defender-us-denver",
* "discover":true,
* "scan":false}'
*/
async addEnvironment(accountId, environment) {
const added = await this.alClient.post({
service_name: 'environments',
account_id: accountId,
data: environment,
});
return added;
}
/**
* Delete an environment
* DELETE
* /environments/v1/:account_id/:environment_id
* "https://api.cloudinsight.alertlogic.com/environments/v1/01000001/B37CEE84-6D27-4D0F-943C-F23937587574"
*/
async deleteEnvironment(accountId, environmentId) {
const deleted = await this.alClient.delete({
service_name: 'environments',
account_id: accountId,
path: `/${environmentId}`,
});
return deleted;
}
/**
* Get an environment
* GET
* /environments/v1/:account_id/:environment_id
* "https://api.cloudinsight.alertlogic.com/environments/v1/01000001/582C62B4-9D1D-4F1C-9117-BE4198198861"
*/
async getEnvironment(accountId, environmentId, queryParams) {
const environment = await this.alClient.fetch({
service_name: 'environments',
account_id: accountId,
path: `/${environmentId}`,
params: queryParams,
});
return environment;
}
/**
* Get list of accounts with environments
* GET
* /environments/v1/accounts
* "https://api.cloudinsight.alertlogic.com/environments/v1/accounts"
*/
async getAccounts(accountId, queryParams) {
const accounts = await this.alClient.fetch({
service_name: 'environments',
account_id: accountId,
path: '/accounts',
params: queryParams,
});
return accounts;
}
/**
* Get environments for an account
* GET
* /environments/v1/:account_id
* "https://api.cloudinsight.alertlogic.com/environments/v1/01000001"
*/
async getEnvironments(accountId) {
const accounts = await this.alClient.fetch({
service_name: 'environments',
account_id: accountId,
});
return accounts;
}
/**
* Update an environment
* POST
* /environments/v1/:account_id/:environment_id
* "https://api.cloudinsight.alertlogic.com/environments/v1/01000001/039E77DF-C9B9-4103-9DC0-6A938892D8B4"
* -d '{"name":"environment5",
* "credential_id": "77C12B2C-8340-4AFD-AB25-4D0581443A5E",
* "scope": {
* "include": [{
* "type": "vpc",
* "key": "/aws/us-east-1/vpc/vpc-1234"
* }],
* "exclude": [{
* "type": "subnet",
* "key": "/aws/us-east-1/subnet/subnet-35f42c6c"}
* ]},
* "enabled":true}'
*/
async updateEnvironment(accountId, environmentId, environment) {
const updated = await this.alClient.post({
service_name: 'environments',
account_id: accountId,
path: `/${environmentId}`,
data: environment,
});
return updated;
}
/**
* Update environment status
* PUT
* /environments/v1/:account_id/:environment_id/status
* "https://api.cloudinsight.alertlogic.com/environments/v1/01000001/CC4BB141-A2F8-4C80-BC25-CBA1E58EBC5E/status"
* -d '{"status":"ok", "timestamp": 1471277293, "details":"status is ok now"}'
*/
async updateEnvironmentStatus(accountId, environmentId, status) {
const updated = await this.alClient.set({
service_name: 'environments',
account_id: accountId,
path: `/${environmentId}/status`,
data: status,
});
return updated;
}
}
const environmentsClient = new EnvironmentsClient();
export { environmentsClient as EnvironmentsClient };
//# sourceMappingURL=index.esm2015.js.map