diff --git a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/organizations/ReactorOrganizationsV3Test.java b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/organizations/ReactorOrganizationsV3Test.java index bd6b893f086..0ea60e9b280 100644 --- a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/organizations/ReactorOrganizationsV3Test.java +++ b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/organizations/ReactorOrganizationsV3Test.java @@ -401,6 +401,12 @@ void getUsageSummary() { UsageSummary.builder() .startedInstances(3) .memoryInMb(50) + .routes(0) + .serviceInstances(0) + .reservedPorts(0) + .perAppTasks(2) + .domains(2) + .serviceKeys(0) .build()) .link( "self", diff --git a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/authorizations/ReactorAuthorizationsTest.java b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/authorizations/ReactorAuthorizationsTest.java index 946f72d8a1c..6c526858467 100644 --- a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/authorizations/ReactorAuthorizationsTest.java +++ b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/authorizations/ReactorAuthorizationsTest.java @@ -367,6 +367,7 @@ void getOpenIdProviderConfigurationRequest() { .supportedUiLocale(Locale.US) .tokenEndpoint("http://localhost/oauth/token") .userInfoEndpoint("http://localhost/userinfo") + .endSessionEndpoint("http://localhost/logout.do") .build()) .expectComplete() .verify(Duration.ofSeconds(5)); diff --git a/cloudfoundry-client-reactor/src/test/resources/fixtures/client/v3/organizations/GET_{id}_usage_summary_response.json b/cloudfoundry-client-reactor/src/test/resources/fixtures/client/v3/organizations/GET_{id}_usage_summary_response.json index b7a31e7259f..1ae0fdbaffb 100644 --- a/cloudfoundry-client-reactor/src/test/resources/fixtures/client/v3/organizations/GET_{id}_usage_summary_response.json +++ b/cloudfoundry-client-reactor/src/test/resources/fixtures/client/v3/organizations/GET_{id}_usage_summary_response.json @@ -1,7 +1,13 @@ { "usage_summary": { "started_instances": 3, - "memory_in_mb": 50 + "memory_in_mb": 50, + "routes": 0, + "service_instances": 0, + "reserved_ports": 0, + "per_app_tasks": 2, + "domains": 2, + "service_keys": 0 }, "links": { "self": { diff --git a/cloudfoundry-client-reactor/src/test/resources/fixtures/uaa/authorizations/GET_response.json b/cloudfoundry-client-reactor/src/test/resources/fixtures/uaa/authorizations/GET_response.json index 42f9adb02db..60db42f3944 100644 --- a/cloudfoundry-client-reactor/src/test/resources/fixtures/uaa/authorizations/GET_response.json +++ b/cloudfoundry-client-reactor/src/test/resources/fixtures/uaa/authorizations/GET_response.json @@ -66,6 +66,7 @@ ], "claims_parameter_supported": false, "service_documentation": "http://docs.cloudfoundry.org/api/uaa/", + "end_session_endpoint": "http://localhost/logout.do", "ui_locales_supported": [ "en-US" ] diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/CloudFoundryClient.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/CloudFoundryClient.java index 446319cf4b3..75186dbd8cd 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/CloudFoundryClient.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/CloudFoundryClient.java @@ -81,7 +81,7 @@ public interface CloudFoundryClient { /** * The currently supported Cloud Controller API version */ - String SUPPORTED_API_VERSION = "2.186.0"; + String SUPPORTED_API_VERSION = "2.233.0"; /** * Main entry point to the Cloud Foundry Application Usage Events Client API diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_ApplicationEntity.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_ApplicationEntity.java index a4dc2943a1f..31dec6ef777 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_ApplicationEntity.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_ApplicationEntity.java @@ -121,4 +121,11 @@ abstract class _ApplicationEntity extends AbstractApplicationEntity { @Nullable abstract String getVersion(); + /** + * The log rate limit + */ + @JsonProperty("log_rate_limit") + @Nullable + abstract Integer getLogRateLimit(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_ApplicationInstanceInfo.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_ApplicationInstanceInfo.java index ab20b745278..4e6ff0e812e 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_ApplicationInstanceInfo.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_ApplicationInstanceInfo.java @@ -84,4 +84,11 @@ abstract class _ApplicationInstanceInfo { @Nullable abstract Long getUptime(); + /** + * Routable + */ + @JsonProperty("routable") + @Nullable + abstract String getRoutable(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_InstanceStatistics.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_InstanceStatistics.java index fc207d119f5..e2cfae9cd23 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_InstanceStatistics.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_InstanceStatistics.java @@ -46,4 +46,11 @@ abstract class _InstanceStatistics { @Nullable abstract Statistics getStatistics(); + /** + * Routable + */ + @JsonProperty("routable") + @Nullable + abstract String getRoutable(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_RestageApplicationEntity.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_RestageApplicationEntity.java index a97d90e543c..42a5c8061c3 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_RestageApplicationEntity.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_RestageApplicationEntity.java @@ -79,4 +79,11 @@ abstract class _RestageApplicationEntity extends AbstractApplicationEntity { @Nullable abstract String getVersion(); + /** + * The log rate limit + */ + @JsonProperty("log_rate_limit") + @Nullable + abstract Integer getLogRateLimit(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_Statistics.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_Statistics.java index 35052b2dc87..1135d51dc6b 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_Statistics.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_Statistics.java @@ -97,4 +97,11 @@ abstract class _Statistics { @Nullable abstract Usage getUsage(); + /** + * The log rate limit + */ + @JsonProperty("log_rate_limit") + @Nullable + abstract Integer getLogRateLimit(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_SummaryApplicationResponse.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_SummaryApplicationResponse.java index a0f3388706b..5ad85ae19b9 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_SummaryApplicationResponse.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_SummaryApplicationResponse.java @@ -117,4 +117,11 @@ abstract class _SummaryApplicationResponse extends AbstractApplicationEntity { @Nullable abstract String getVersion(); + /** + * The log rate limit + */ + @JsonProperty("log_rate_limit") + @Nullable + abstract Integer getLogRateLimit(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_Usage.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_Usage.java index f2d31cf5f7c..564ab275f9c 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_Usage.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/applications/_Usage.java @@ -35,6 +35,13 @@ abstract class _Usage { @Nullable abstract Double getCpu(); + /** + * The CPU entitlement + */ + @JsonProperty("cpu_entitlement") + @Nullable + abstract Double getCpuEntitlement(); + /** * The disk usage */ @@ -56,4 +63,11 @@ abstract class _Usage { @Nullable abstract String getTime(); + /** + * The log rate limit + */ + @JsonProperty("log_rate") + @Nullable + abstract Integer getLogRate(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizationquotadefinitions/_CreateOrganizationQuotaDefinitionRequest.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizationquotadefinitions/_CreateOrganizationQuotaDefinitionRequest.java index 3cff04a83b7..23f70d17284 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizationquotadefinitions/_CreateOrganizationQuotaDefinitionRequest.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizationquotadefinitions/_CreateOrganizationQuotaDefinitionRequest.java @@ -107,4 +107,11 @@ abstract class _CreateOrganizationQuotaDefinitionRequest { @Nullable abstract Boolean getTrialDatabaseAllowed(); + /** + * The log rate limit + */ + @JsonProperty("log_rate_limit") + @Nullable + abstract Integer getLogRateLimit(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizationquotadefinitions/_OrganizationQuotaDefinitionEntity.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizationquotadefinitions/_OrganizationQuotaDefinitionEntity.java index 2f54e9b739e..9ed9964e124 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizationquotadefinitions/_OrganizationQuotaDefinitionEntity.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizationquotadefinitions/_OrganizationQuotaDefinitionEntity.java @@ -20,6 +20,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.cloudfoundry.Nullable; import org.immutables.value.Value; +import org.immutables.value.Value.Default; /** * The entity response payload for the Quota Definition resource @@ -113,4 +114,13 @@ abstract class _OrganizationQuotaDefinitionEntity { @Nullable abstract Boolean getTrialDatabaseAllowed(); + /** + * The log rate limit + */ + @Value.Default + @JsonProperty("log_rate_limit") + @Nullable + Integer getLogRateLimit(){ + return -1; + } } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizations/_SummaryOrganizationResponse.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizations/_SummaryOrganizationResponse.java index fac1d7a5736..92559f75b05 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizations/_SummaryOrganizationResponse.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/organizations/_SummaryOrganizationResponse.java @@ -58,4 +58,12 @@ abstract class _SummaryOrganizationResponse { @Nullable abstract String getStatus(); + /** + * mode + */ + @JsonProperty("mode") + @Nullable + abstract String getMode(); + + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/spacequotadefinitions/_SpaceQuotaDefinitionEntity.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/spacequotadefinitions/_SpaceQuotaDefinitionEntity.java index 81ef406689c..0e2e996c13a 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/spacequotadefinitions/_SpaceQuotaDefinitionEntity.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/spacequotadefinitions/_SpaceQuotaDefinitionEntity.java @@ -119,4 +119,11 @@ abstract class _SpaceQuotaDefinitionEntity { @Nullable abstract Integer getTotalServices(); + /** + * The log rate limit + */ + @JsonProperty("log_rate_limit") + @Nullable + abstract Integer getLogRateLimit(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/spaces/_SpaceApplicationSummary.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/spaces/_SpaceApplicationSummary.java index 19e11886970..a46426f5ff5 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/spaces/_SpaceApplicationSummary.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/spaces/_SpaceApplicationSummary.java @@ -122,4 +122,11 @@ abstract class _SpaceApplicationSummary extends AbstractApplicationEntity { @Nullable abstract String getVersion(); + /** + * The log rate limit + */ + @JsonProperty("log_rate_limit") + @Nullable + abstract Integer getLogRateLimit(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/stacks/_StackEntity.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/stacks/_StackEntity.java index dd0fbd351b6..dc41d847591 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/stacks/_StackEntity.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/stacks/_StackEntity.java @@ -42,4 +42,18 @@ abstract class _StackEntity { @Nullable abstract String getName(); + /** + * Build RootFS Image + */ + @JsonProperty("build_rootfs_image") + @Nullable + abstract String getBuildRootfsImage(); + + /** + * Run RootFS Image + */ + @JsonProperty("run_rootfs_image") + @Nullable + abstract String getRunRootfsImage(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/_UsageSummary.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/_UsageSummary.java index 4b61a6d4c67..cfcaccae3ee 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/_UsageSummary.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/_UsageSummary.java @@ -18,6 +18,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; + +import org.cloudfoundry.Nullable; import org.immutables.value.Value; /** @@ -39,4 +41,46 @@ abstract class _UsageSummary { @JsonProperty("started_instances") abstract Integer getStartedInstances(); + /** + * The number of routes + */ + @JsonProperty("routes") + @Nullable + abstract Integer getRoutes(); + + /** + * The number of service instances + */ + @JsonProperty("service_instances") + @Nullable + abstract Integer getServiceInstances(); + + /** + * The number of reserved ports + */ + @JsonProperty("reserved_ports") + @Nullable + abstract Integer getReservedPorts(); + + /** + * The number of domains + */ + @JsonProperty("domains") + @Nullable + abstract Integer getDomains(); + + /** + * The number of tasks per app + */ + @JsonProperty("per_app_tasks") + @Nullable + abstract Integer getPerAppTasks(); + + /** + * The number of service keys + */ + @JsonProperty("service_keys") + @Nullable + abstract Integer getServiceKeys(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/builds/Build.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/builds/Build.java index e30e9d9268c..7d0e8387c0b 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/builds/Build.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/builds/Build.java @@ -93,4 +93,11 @@ public abstract class Build extends Resource { @JsonProperty("staging_disk_in_mb") @Nullable public abstract Integer getStagingDisk(); + + /** + * Log rate limit in bytes per second allocated for staging of the build + */ + @JsonProperty("staging_log_rate_limit_bytes_per_second") + @Nullable + public abstract Integer getStagingLogRateLimitBytesPerSecond(); } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/Process.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/Process.java index f6314597224..5500d8339bb 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/Process.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/Process.java @@ -17,6 +17,7 @@ package org.cloudfoundry.client.v3.processes; import com.fasterxml.jackson.annotation.JsonProperty; +import org.cloudfoundry.Nullable; import org.cloudfoundry.client.v3.Metadata; import org.cloudfoundry.client.v3.Resource; @@ -72,4 +73,18 @@ public abstract class Process extends Resource { */ @JsonProperty("type") public abstract String getType(); + + /** + * The version UUID + */ + @JsonProperty("version") + @Nullable + public abstract String getVersion(); + + /** + * The log rate limit + */ + @JsonProperty("log_rate_limit_in_bytes_per_second") + @Nullable + public abstract Integer getLogRateLimitInBytesPerSecond(); } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/ProcessStatistics.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/ProcessStatistics.java index a4fae2fd6d8..29758cba1b5 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/ProcessStatistics.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/ProcessStatistics.java @@ -104,4 +104,25 @@ public abstract class ProcessStatistics { @JsonProperty("usage") @Nullable public abstract ProcessUsage getUsage(); + + /** + * Routable + */ + @JsonProperty("routable") + @Nullable + abstract String getRoutable(); + + /** + * The internal IP address of the instance + */ + @JsonProperty("instance_internal_ip") + @Nullable + public abstract String getInstanceInternalIp(); + + /** + * The log rate limit + */ + @JsonProperty("log_rate_limit") + @Nullable + abstract Integer getLogRateLimit(); } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/_ProcessUsage.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/_ProcessUsage.java index 367e4c51fe2..5a6398f668d 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/_ProcessUsage.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/_ProcessUsage.java @@ -56,4 +56,18 @@ abstract class _ProcessUsage { @Nullable abstract String getTime(); + /** + * The CPU entitlement + */ + @JsonProperty("cpu_entitlement") + @Nullable + abstract Double getCpuEntitlement(); + + /** + * The current logging usage of the instance + */ + @JsonProperty("log_rate") + @Nullable + abstract Integer getLogRateLimit(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/stacks/Stack.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/stacks/Stack.java index 14042a010c1..0e90cc053de 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/stacks/Stack.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/stacks/Stack.java @@ -45,4 +45,25 @@ public abstract class Stack extends Resource { @JsonProperty("metadata") @Nullable public abstract Metadata getMetadata(); + + /** + * Build RootFS Image + */ + @JsonProperty("build_rootfs_image") + @Nullable + abstract String getBuildRootfsImage(); + + /** + * Run RootFS Image + */ + @JsonProperty("run_rootfs_image") + @Nullable + abstract String getRunRootfsImage(); + + /** + * Whether the stack is configured to be the default stack for new applications. + */ + @JsonProperty("default") + @Nullable + abstract Boolean geDefault(); } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/tasks/Task.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/tasks/Task.java index 68d192b246c..bd08afe5828 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/tasks/Task.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/tasks/Task.java @@ -89,4 +89,11 @@ public abstract class Task extends Resource { @JsonProperty("relationships") @Nullable public abstract TaskRelationships getTaskRelationships(); + + /** + * Amount of log rate to allocate for the task in bytes + */ + @JsonProperty("log_rate_limit_in_bytes_per_second") + @Nullable + public abstract Integer getLogRateLimitInBytesPerSecond(); } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/routing/v1/tcproutes/AbstractTcpRoute.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/routing/v1/tcproutes/AbstractTcpRoute.java index c7d86a39e45..07059a555bb 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/routing/v1/tcproutes/AbstractTcpRoute.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/routing/v1/tcproutes/AbstractTcpRoute.java @@ -64,4 +64,18 @@ abstract class AbstractTcpRoute { */ @JsonProperty("ttl") abstract Integer getTtl(); + + /** + * Backend TLS port + */ + @JsonProperty("backend_tls_port") + @Nullable + abstract Integer getBackendTlsPort(); + + /** + * Instance ID + */ + @JsonProperty("instance_id") + @Nullable + abstract Integer getInstanceId(); } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/authorizations/_GetOpenIdProviderConfigurationResponse.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/authorizations/_GetOpenIdProviderConfigurationResponse.java index 1545e77e230..475eab40610 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/authorizations/_GetOpenIdProviderConfigurationResponse.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/authorizations/_GetOpenIdProviderConfigurationResponse.java @@ -19,6 +19,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; + +import org.cloudfoundry.Nullable; import org.immutables.value.Value; import java.util.List; @@ -133,4 +135,18 @@ abstract class _GetOpenIdProviderConfigurationResponse { @JsonProperty("userinfo_endpoint") abstract String getUserInfoEndpoint(); + /** + * URL of the logout endpoint. + */ + @JsonProperty("end_session_endpoint") + @Nullable + abstract String getEndSessionEndpoint(); + + /** + * JSON array containing a list of PKCE code challenge methods supported by this authorization endpoint. + */ + @JsonProperty("code_challenge_methods_supported") + @Nullable + abstract List getCodeChallengeMethodsSupported(); + } \ No newline at end of file diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/AbstractIdentityProvider.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/AbstractIdentityProvider.java index 2b5998851e6..e2b53d7ac26 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/AbstractIdentityProvider.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/AbstractIdentityProvider.java @@ -63,6 +63,20 @@ abstract class AbstractIdentityProvider { @JsonProperty("id") abstract String getId(); + /** + * The alias id + */ + @JsonProperty("aliasId") + @Nullable + abstract String getAliasId(); + + /** + * The alias Zone id + */ + @JsonProperty("aliasZid") + @Nullable + abstract String getAliasZid(); + /** * Set to the zone that this provider will be active in. Determined either by the Host header or the zone switch header. */ diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/AbstractIdentityProviderConfiguration.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/AbstractIdentityProviderConfiguration.java index 3ab135fe660..f1f7cf2856c 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/AbstractIdentityProviderConfiguration.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/AbstractIdentityProviderConfiguration.java @@ -37,4 +37,11 @@ abstract class AbstractIdentityProviderConfiguration implements IdentityProvider @JsonProperty("providerDescription") @Nullable abstract String getProviderDescription(); + + /** + * explicit method to authenticate against the identity provider. + */ + @JsonProperty("authMethod") + @Nullable + abstract String getAuthMethod(); } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/_OAuth2Configuration.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/_OAuth2Configuration.java index 0dd02854296..209e6a35b23 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/_OAuth2Configuration.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityproviders/_OAuth2Configuration.java @@ -56,4 +56,45 @@ abstract class _OAuth2Configuration extends AbstractAuthenticationConfiguration @Nullable abstract String getResponseType(); + /** + * A URL for fetching user info attributes when queried with the obtained token authorization. + */ + @JsonProperty("userInfoUrl") + @Nullable + abstract String getUserInfoUrl(); + + /** + * Name of the request parameter that is used to pass a known username when redirecting to this identity provider from the account chooser + */ + @JsonProperty("userPropagationParameter") + @Nullable + abstract String getUserPropagationParameter(); + + /** + * A flag controlling whether PKCE (RFC 7636) is active in authorization code flow when requesting tokens from the external provider. + */ + @JsonProperty("cacheJwks") + @Nullable + abstract Boolean getCacheJwks(); + + /** + * Option to enable caching for the JWKS (verification key for validating token signatures) + */ + @JsonProperty("pkce") + @Nullable + abstract Boolean getPkce(); + + /** + * OAuth 2.0 logout endpoint. + */ + @JsonProperty("logoutUrl") + @Nullable + abstract String getLogoutUrl(); + + /** + * A flag controlling whether to log out of the external provider after a successful UAA logout + */ + @JsonProperty("performRpInitiatedLogout") + @Nullable + abstract Boolean getPerformRpInitiatedLogout(); } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_CreateIdentityZoneRequest.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_CreateIdentityZoneRequest.java index a18a3b2eb14..6b5cc449c72 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_CreateIdentityZoneRequest.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_CreateIdentityZoneRequest.java @@ -82,4 +82,11 @@ abstract class _CreateIdentityZoneRequest { @Nullable abstract Integer getVersion(); + /** + * Whether the identity zone is active + */ + @JsonProperty("active") + @Nullable + abstract Boolean getActive(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_TokenPolicy.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_TokenPolicy.java index d39c06f7e7d..a8543da72c6 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_TokenPolicy.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_TokenPolicy.java @@ -81,4 +81,11 @@ abstract class _TokenPolicy { @Nullable abstract Integer getRefreshTokenValidity(); + /** + * If true, uaa will issue a new refresh token value in grant type refresh_token. + */ + @JsonProperty("refreshTokenRotate") + @Nullable + abstract Boolean getRefreshTokenRotate(); + } diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_UserConfig.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_UserConfig.java index b882a4d56df..bec318c83f2 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_UserConfig.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/uaa/identityzones/_UserConfig.java @@ -19,6 +19,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; + +import org.cloudfoundry.Nullable; import org.immutables.value.Value; import java.util.List; @@ -34,6 +36,29 @@ abstract class _UserConfig { * The default groups */ @JsonProperty("defaultGroups") + @Nullable abstract List getDefaultGroups(); + /** + * The allowed groups + */ + @JsonProperty("allowedGroups") + @Nullable + abstract List getAllowedGroups(); + + /** + * Number of users in the zone. If more than 0, it limits the amount of users in the zone. (defaults to -1, no limit). + */ + @JsonProperty("maxUsers") + @Nullable + abstract Integer getMaxUsers(); + + /** + * Flag for switching on the check if origin is valid when creating or updating users + */ + @JsonProperty("checkOriginEnabled") + @Nullable + abstract Boolean getcheckOriginEnabled(); + + } diff --git a/integration-test/src/test/java/org/cloudfoundry/CloudFoundryVersion.java b/integration-test/src/test/java/org/cloudfoundry/CloudFoundryVersion.java index 1f88cc6055d..5be7b4fe0e3 100644 --- a/integration-test/src/test/java/org/cloudfoundry/CloudFoundryVersion.java +++ b/integration-test/src/test/java/org/cloudfoundry/CloudFoundryVersion.java @@ -55,6 +55,8 @@ public enum CloudFoundryVersion { PCF_2_13(Version.forIntegers(2, 186, 0)), + PCF_3_0(Version.forIntegers(3, 0, 0)), + UNSPECIFIED(Version.forIntegers(0)); private final Version version; diff --git a/integration-test/src/test/java/org/cloudfoundry/ServiceBrokerUtils.java b/integration-test/src/test/java/org/cloudfoundry/ServiceBrokerUtils.java index f921df6d7f1..e3677bd7ba7 100644 --- a/integration-test/src/test/java/org/cloudfoundry/ServiceBrokerUtils.java +++ b/integration-test/src/test/java/org/cloudfoundry/ServiceBrokerUtils.java @@ -88,6 +88,43 @@ public static Mono createServiceBroker ResourceUtils.getId(response)))); } + @SuppressWarnings("BlockingMethodInNonBlockingContext") + public static Mono createServiceBrokerNonPublic( + CloudFoundryClient cloudFoundryClient, + NameFactory nameFactory, + String planName, + String serviceBrokerName, + String serviceName, + String spaceId, + Boolean spaceScoped) { + Path application; + try { + application = new ClassPathResource("test-service-broker.jar").getFile().toPath(); + } catch (IOException e) { + throw Exceptions.propagate(e); + } + + return pushServiceBrokerApplication( + cloudFoundryClient, + application, + nameFactory, + planName, + serviceName, + spaceId) + .flatMap( + applicationMetadata -> + requestCreateServiceBroker( + cloudFoundryClient, + applicationMetadata, + serviceBrokerName, + spaceScoped) + .map( + response -> + new ServiceBrokerMetadata( + applicationMetadata, + ResourceUtils.getId(response)))); + } + public static Mono deleteServiceBroker( CloudFoundryClient cloudFoundryClient, String applicationId) { return cloudFoundryClient diff --git a/integration-test/src/test/java/org/cloudfoundry/client/v2/OrganizationQuotaDefinitionsTest.java b/integration-test/src/test/java/org/cloudfoundry/client/v2/OrganizationQuotaDefinitionsTest.java index c7f8c0b4f64..8a435cfa81b 100644 --- a/integration-test/src/test/java/org/cloudfoundry/client/v2/OrganizationQuotaDefinitionsTest.java +++ b/integration-test/src/test/java/org/cloudfoundry/client/v2/OrganizationQuotaDefinitionsTest.java @@ -56,6 +56,7 @@ public void create() { .nonBasicServicesAllowed(false) .totalRoutes(10) .totalServices(-1) + .logRateLimit(-1) .build()) .map(ResourceUtils::getEntity) .as(StepVerifier::create) @@ -73,6 +74,7 @@ public void create() { .totalServiceKeys(-1) .totalServices(-1) .trialDatabaseAllowed(false) + .logRateLimit(-1) .build()) .expectComplete() .verify(Duration.ofMinutes(5)); @@ -147,6 +149,7 @@ public void get() { .totalServiceKeys(-1) .totalServices(5) .trialDatabaseAllowed(false) + .logRateLimit(-1) .build()) .expectComplete() .verify(Duration.ofMinutes(5)); @@ -226,6 +229,7 @@ public void update() { .totalServiceKeys(-1) .totalServices(10) .trialDatabaseAllowed(false) + .logRateLimit(-1) .build()) .expectComplete() .verify(Duration.ofMinutes(5)); @@ -244,6 +248,7 @@ public void update() { .nonBasicServicesAllowed(false) .totalRoutes(10) .totalServices(5) + .logRateLimit(-1) .build()); } diff --git a/integration-test/src/test/java/org/cloudfoundry/client/v2/ServicePlanVisibilitiesTest.java b/integration-test/src/test/java/org/cloudfoundry/client/v2/ServicePlanVisibilitiesTest.java index fff382a4cb7..910294d42ac 100644 --- a/integration-test/src/test/java/org/cloudfoundry/client/v2/ServicePlanVisibilitiesTest.java +++ b/integration-test/src/test/java/org/cloudfoundry/client/v2/ServicePlanVisibilitiesTest.java @@ -16,7 +16,7 @@ package org.cloudfoundry.client.v2; -import static org.cloudfoundry.ServiceBrokerUtils.createServiceBroker; +import static org.cloudfoundry.ServiceBrokerUtils.createServiceBrokerNonPublic; import static org.cloudfoundry.ServiceBrokerUtils.deleteServiceBroker; import static org.cloudfoundry.util.tuple.TupleUtils.function; @@ -68,7 +68,7 @@ public void create() { this.cloudFoundryClient, organizationId, spaceName)) .flatMap( spaceId -> - createServiceBroker( + createServiceBrokerNonPublic( this.cloudFoundryClient, this.nameFactory, planName, @@ -133,7 +133,7 @@ public void delete() { this.cloudFoundryClient, organizationId, spaceName)) .flatMap( spaceId -> - createServiceBroker( + createServiceBrokerNonPublic( this.cloudFoundryClient, this.nameFactory, planName, @@ -203,7 +203,7 @@ public void deleteAsyncFalse() { this.cloudFoundryClient, organizationId, spaceName)) .flatMap( spaceId -> - createServiceBroker( + createServiceBrokerNonPublic( this.cloudFoundryClient, this.nameFactory, planName, @@ -267,7 +267,7 @@ public void get() { this.cloudFoundryClient, organizationId, spaceName)) .flatMap( spaceId -> - createServiceBroker( + createServiceBrokerNonPublic( this.cloudFoundryClient, this.nameFactory, planName, @@ -334,7 +334,7 @@ public void list() { this.cloudFoundryClient, organizationId, spaceName)) .flatMap( spaceId -> - createServiceBroker( + createServiceBrokerNonPublic( this.cloudFoundryClient, this.nameFactory, planName, @@ -411,7 +411,7 @@ public void listFilterByOrganizationId() { this.cloudFoundryClient, organizationId, spaceName)) .flatMap( spaceId -> - createServiceBroker( + createServiceBrokerNonPublic( this.cloudFoundryClient, this.nameFactory, planName, @@ -490,7 +490,7 @@ public void listFilterByServicePlanId() { this.cloudFoundryClient, organizationId, spaceName)) .flatMap( spaceId -> - createServiceBroker( + createServiceBrokerNonPublic( this.cloudFoundryClient, this.nameFactory, planName, @@ -563,7 +563,7 @@ public void update() { this.cloudFoundryClient, organizationId, spaceName)) .flatMap( spaceId -> - createServiceBroker( + createServiceBrokerNonPublic( this.cloudFoundryClient, this.nameFactory, planName,