Skip to content

Commit f90d23c

Browse files
Fyuselrubenhoenle
authored andcommitted
chore(resourcemanager): add examples
Signed-off-by: Alexander Dahmen <[email protected]>
1 parent 2b2e5c6 commit f90d23c

File tree

1 file changed

+74
-2
lines changed

1 file changed

+74
-2
lines changed

examples/resourcemanager/src/main/java/cloud/stackit/sdk/resourcemanager/examples/ResourcemanagerExample.java

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,15 @@
55
import cloud.stackit.sdk.resourcemanager.model.CreateFolderPayload;
66
import cloud.stackit.sdk.resourcemanager.model.CreateProjectPayload;
77
import cloud.stackit.sdk.resourcemanager.model.FolderResponse;
8+
import cloud.stackit.sdk.resourcemanager.model.ListFoldersResponse;
9+
import cloud.stackit.sdk.resourcemanager.model.ListProjectsResponse;
10+
import cloud.stackit.sdk.resourcemanager.model.Member;
11+
import cloud.stackit.sdk.resourcemanager.model.OrganizationResponse;
12+
import cloud.stackit.sdk.resourcemanager.model.PartialUpdateFolderPayload;
13+
import cloud.stackit.sdk.resourcemanager.model.PartialUpdateProjectPayload;
814
import cloud.stackit.sdk.resourcemanager.model.Project;
915
import java.io.IOException;
16+
import java.util.Arrays;
1017
import java.util.Collections;
1118
import java.util.UUID;
1219

@@ -16,23 +23,88 @@ public static void main(String[] args) throws IOException {
1623
// STACKIT_SERVICE_ACCOUNT_KEY_PATH / STACKIT_SERVICE_ACCOUNT_KEY
1724
ResourceManagerApi resourceManagerApi = new ResourceManagerApi();
1825

19-
// replace this with something useful for real use
20-
UUID containerParentId = UUID.randomUUID();
26+
// Read the organization id and the member subject from the environment
27+
String organizationIdString = System.getenv("STACKIT_ORGANIZATION_ID");
28+
String memberSubjectString = System.getenv("STACKIT_MEMBER_SUBJECT");
29+
if (organizationIdString == null || organizationIdString.isEmpty()) {
30+
System.err.println("Environment variable 'STACKIT_ORGANIZATION_ID' not found.");
31+
return;
32+
}
33+
if (memberSubjectString == null || memberSubjectString.isEmpty()) {
34+
System.err.println("Environment variable 'STACKIT_MEMBER_SUBJECT' not found.");
35+
return;
36+
}
37+
UUID containerParentId = UUID.fromString(organizationIdString);
38+
39+
Member member =
40+
new Member()
41+
.role("project.owner")
42+
.subject(memberSubjectString); // replace with an existing subject
2143

2244
try {
2345
/* create a project */
2446
Project project =
2547
resourceManagerApi.createProject(
2648
new CreateProjectPayload()
2749
.containerParentId(containerParentId.toString())
50+
.name("java-test-project")
51+
.addMembersItem(member)
2852
.labels(Collections.singletonMap("foo", "bar")));
53+
System.out.println("Project:\n" + project.toString());
54+
55+
/* list projects */
56+
ListProjectsResponse responseListProject =
57+
resourceManagerApi.listProjects(
58+
organizationIdString, null, null, null, null, null);
59+
System.out.println("Project List:\n" + responseListProject.toString());
2960

3061
/* create a folder */
3162
FolderResponse folder =
3263
resourceManagerApi.createFolder(
3364
new CreateFolderPayload()
3465
.containerParentId(containerParentId.toString())
66+
.name("java-testing-folder")
3567
.labels(Collections.singletonMap("foo", "bar")));
68+
System.out.println("Folder: \n" + folder.toString());
69+
70+
/* list folders */
71+
ListFoldersResponse responseListFolders =
72+
resourceManagerApi.listFolders(
73+
organizationIdString, null, null, null, null, null);
74+
System.out.println("Folder List:\n" + responseListFolders.toString());
75+
76+
/* delete a project label */
77+
resourceManagerApi.deleteProjectLabels(project.getContainerId(), Arrays.asList("foo"));
78+
79+
/* delete a folder label */
80+
resourceManagerApi.deleteFolderLabels(folder.getContainerId(), Arrays.asList("foo"));
81+
82+
/* update folder labels */
83+
resourceManagerApi.partialUpdateFolder(
84+
folder.getContainerId(),
85+
new PartialUpdateFolderPayload()
86+
.labels(Collections.singletonMap("foo2", "bar2")));
87+
88+
/* update project move to created folder */
89+
resourceManagerApi.partialUpdateProject(
90+
project.getContainerId(),
91+
new PartialUpdateProjectPayload().containerParentId(folder.getContainerId()));
92+
93+
/* get organization details */
94+
OrganizationResponse organizationResponse =
95+
resourceManagerApi.getOrganization(organizationIdString);
96+
System.out.println("Organization List:\n" + organizationResponse.toString());
97+
98+
/* since you cannot delete a folder when a project is present we need to move the project out again */
99+
resourceManagerApi.partialUpdateProject(
100+
project.getContainerId(),
101+
new PartialUpdateProjectPayload().containerParentId(organizationIdString));
102+
103+
/* delete project */
104+
resourceManagerApi.deleteProject(project.getContainerId());
105+
106+
/* delete folder */
107+
resourceManagerApi.deleteFolder(folder.getContainerId(), true);
36108
} catch (ApiException e) {
37109
throw new RuntimeException(e);
38110
}

0 commit comments

Comments
 (0)