diff --git a/examples/src/environments/get-environments.ts b/examples/src/environments/get-environments.ts new file mode 100644 index 0000000..0374df7 --- /dev/null +++ b/examples/src/environments/get-environments.ts @@ -0,0 +1,25 @@ +import { ClientConfiguration, EnvironmentV2Repository } from "../../../src/index"; +import { CreateClient } from "../utility"; + +const main = async () => { + + const configuration: ClientConfiguration = { + userAgentApp: "examples", + instanceURL: "instance-url", // required + apiKey: "api-key", // required + }; + + const client = await CreateClient(configuration); + + const environmentsRepo = new EnvironmentV2Repository(client, "Default"); + + const environments = await environmentsRepo.list({ skip: 0, take: 1000 }); + + if (environments.Items.length === 0) { + console.log("No environments found."); + return; + } + environments.Items.map(env => console.log(` - ${env.Name} (ID: ${env.Id})`)); +}; + +main(); \ No newline at end of file diff --git a/src/features/deploymentEnvironments/environmentV2Repository.ts b/src/features/deploymentEnvironments/environmentV2Repository.ts new file mode 100644 index 0000000..e9d7ed2 --- /dev/null +++ b/src/features/deploymentEnvironments/environmentV2Repository.ts @@ -0,0 +1,28 @@ +import { Client, DeploymentEnvironmentV2, ResourceCollection, spaceScopedRoutePrefix } from "../.."; + +type EnvironmentV2RepositoryListArgs = { + ids?: string[]; + partialName?: string; + type?: EnvironmentType; + skip: number; + take: number; +}; + +type EnvironmentType = "Static" | "Parent" | "Ephemeral"; + +export class EnvironmentV2Repository { + private client: Client; + private spaceName: string; + + constructor(client: Client, spaceName: string) { + this.client = client; + this.spaceName = spaceName; + } + + async list(args?: EnvironmentV2RepositoryListArgs): Promise> { + return this.client.request(`${spaceScopedRoutePrefix}/environments/v2{?ids,partialName,type,skip,take}`, { + spaceName: this.spaceName, + ...args, + }); + } +} diff --git a/src/features/deploymentEnvironments/index.ts b/src/features/deploymentEnvironments/index.ts index 9296a6d..80fd90c 100644 --- a/src/features/deploymentEnvironments/index.ts +++ b/src/features/deploymentEnvironments/index.ts @@ -1,2 +1,3 @@ export * from "./deploymentEnvironment"; export * from "./environmentRepository"; +export * from "./environmentV2Repository";