Skip to content

Commit af03f66

Browse files
committed
Merge 101516692-purge-application-usage-events to master
[Completes #101516692]
2 parents 835724d + 9ba68ef commit af03f66

File tree

5 files changed

+124
-0
lines changed

5 files changed

+124
-0
lines changed

cloudfoundry-client-spring/src/main/lombok/org/cloudfoundry/spring/client/v2/applicationusageevents/SpringApplicationUsageEvents.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.cloudfoundry.client.v2.applicationusageevents.GetApplicationUsageEventResponse;
2323
import org.cloudfoundry.client.v2.applicationusageevents.ListApplicationUsageEventsRequest;
2424
import org.cloudfoundry.client.v2.applicationusageevents.ListApplicationUsageEventsResponse;
25+
import org.cloudfoundry.client.v2.applicationusageevents.PurgeAndReseedApplicationUsageEventsRequest;
2526
import org.cloudfoundry.spring.util.AbstractSpringOperations;
2627
import org.cloudfoundry.spring.util.QueryBuilder;
2728
import org.springframework.web.client.RestOperations;
@@ -60,4 +61,9 @@ public Mono<ListApplicationUsageEventsResponse> list(ListApplicationUsageEventsR
6061
});
6162
}
6263

64+
@Override
65+
public Mono<Void> purgeAndReseed(PurgeAndReseedApplicationUsageEventsRequest request) {
66+
return post(request, Void.class, builder -> builder.pathSegment("v2", "app_usage_events", "destructively_purge_all_and_reseed_started_apps"));
67+
}
68+
6369
}

cloudfoundry-client-spring/src/test/java/org/cloudfoundry/spring/client/v2/applicationusageevents/SpringApplicationUsageEventsTest.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,13 @@
2323
import org.cloudfoundry.client.v2.applicationusageevents.GetApplicationUsageEventResponse;
2424
import org.cloudfoundry.client.v2.applicationusageevents.ListApplicationUsageEventsRequest;
2525
import org.cloudfoundry.client.v2.applicationusageevents.ListApplicationUsageEventsResponse;
26+
import org.cloudfoundry.client.v2.applicationusageevents.PurgeAndReseedApplicationUsageEventsRequest;
2627
import org.cloudfoundry.spring.AbstractApiTest;
2728
import reactor.core.publisher.Mono;
2829

2930
import static org.springframework.http.HttpMethod.GET;
31+
import static org.springframework.http.HttpMethod.POST;
32+
import static org.springframework.http.HttpStatus.NO_CONTENT;
3033
import static org.springframework.http.HttpStatus.OK;
3134

3235
public final class SpringApplicationUsageEventsTest {
@@ -147,4 +150,36 @@ protected Mono<ListApplicationUsageEventsResponse> invoke(ListApplicationUsageEv
147150
}
148151
}
149152

153+
public static final class PurgeAndReseed extends AbstractApiTest<PurgeAndReseedApplicationUsageEventsRequest, Void> {
154+
155+
private final SpringApplicationUsageEvents applicationUsageEvents = new SpringApplicationUsageEvents(this.restTemplate, this.root, PROCESSOR_GROUP);
156+
157+
@Override
158+
protected PurgeAndReseedApplicationUsageEventsRequest getInvalidRequest() {
159+
return null;
160+
}
161+
162+
@Override
163+
protected RequestContext getRequestContext() {
164+
return new RequestContext()
165+
.method(POST).path("/v2/app_usage_events/destructively_purge_all_and_reseed_started_apps")
166+
.status(NO_CONTENT);
167+
}
168+
169+
@Override
170+
protected Void getResponse() {
171+
return null;
172+
}
173+
174+
@Override
175+
protected PurgeAndReseedApplicationUsageEventsRequest getValidRequest() throws Exception {
176+
return PurgeAndReseedApplicationUsageEventsRequest.builder().build();
177+
}
178+
179+
@Override
180+
protected Mono<Void> invoke(PurgeAndReseedApplicationUsageEventsRequest request) {
181+
return this.applicationUsageEvents.purgeAndReseed(request);
182+
}
183+
}
184+
150185
}

cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applicationusageevents/ApplicationUsageEvents.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,12 @@ public interface ApplicationUsageEvents {
3939
*/
4040
Mono<ListApplicationUsageEventsResponse> list(ListApplicationUsageEventsRequest request);
4141

42+
/**
43+
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/app_usage_events/purge_and_reseed_app_usage_events.html">Purge and Reseed Application Usage Events</a> request
44+
*
45+
* @param request the Purge and Reseed Application Usage Events
46+
* @return the response from the Purge and Reseed Application Usage Events request
47+
*/
48+
Mono<Void> purgeAndReseed(PurgeAndReseedApplicationUsageEventsRequest request);
49+
4250
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* Copyright 2013-2016 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.cloudfoundry.client.v2.applicationusageevents;
18+
19+
import lombok.Builder;
20+
import lombok.Data;
21+
import org.cloudfoundry.Validatable;
22+
import org.cloudfoundry.ValidationResult;
23+
24+
/**
25+
* The request payload for the Purge and Reseed Application Usage Events operation
26+
*/
27+
@Data
28+
public final class PurgeAndReseedApplicationUsageEventsRequest implements Validatable {
29+
30+
@Builder
31+
PurgeAndReseedApplicationUsageEventsRequest() {
32+
}
33+
34+
@Override
35+
public ValidationResult isValid() {
36+
return ValidationResult.builder().build();
37+
}
38+
39+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Copyright 2013-2016 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.cloudfoundry.client.v2.applicationusageevents;
18+
19+
import org.cloudfoundry.ValidationResult;
20+
import org.junit.Test;
21+
22+
import static org.cloudfoundry.ValidationResult.Status.VALID;
23+
import static org.junit.Assert.assertEquals;
24+
25+
public final class PurgeAndReseedApplicationUsageEventsRequestTest {
26+
27+
@Test
28+
public void isValid() {
29+
ValidationResult result = PurgeAndReseedApplicationUsageEventsRequest.builder()
30+
.build()
31+
.isValid();
32+
33+
assertEquals(VALID, result.getStatus());
34+
}
35+
36+
}

0 commit comments

Comments
 (0)