@Override
    public Optional<DiscoveryStrategyConfig> get(final HazelcastClusterProperties cluster, final JoinConfig joinConfig,
                                                 final Config configuration, final NetworkConfig networkConfig) {
        val gcp = cluster.getDiscovery().getGcp();
        val properties = new HashMap<String, Comparable>();
        if (StringUtils.isNotBlank(gcp.getPrivateKeyPath())) {
            properties.put("private-key-path", gcp.getPrivateKeyPath());
        }
        if (StringUtils.isNotBlank(gcp.getProjects())) {
            properties.put("projects", gcp.getProjects());
        }
        if (StringUtils.isNotBlank(gcp.getZones())) {
            properties.put("zones", gcp.getZones());
        }
        if (StringUtils.isNotBlank(gcp.getLabel())) {
            properties.put("label", gcp.getLabel());
        }
        if (StringUtils.isNotBlank(gcp.getRegion())) {
            properties.put("region", gcp.getRegion());
        }
        if (StringUtils.isNotBlank(gcp.getHzPort())) {
            properties.put("hz-port", gcp.getHzPort());
        }
        return Optional.of(new DiscoveryStrategyConfig(new GcpDiscoveryStrategyFactory(), properties));
    }
This is {@link GoogleCloudPlatformDiscoveryStrategy}.

@author Misagh Moayyed
@since 6.5.0
support/cas-server-support-hazelcast-discovery-gcp/src/main/java/org/apereo/cas/gcp/GoogleCloudPlatformDiscoveryStrategy.java