All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hazelcast.aws.AwsProperties Maven / Gradle / Ivy

There is a newer version: 5.5.0
Show newest version
/*
 * Copyright (c) 2008-2021, Hazelcast, Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.hazelcast.aws;

import com.hazelcast.config.properties.PropertyDefinition;
import com.hazelcast.config.properties.PropertyTypeConverter;
import com.hazelcast.config.properties.SimplePropertyDefinition;

import static com.hazelcast.config.properties.PropertyTypeConverter.INTEGER;
import static com.hazelcast.config.properties.PropertyTypeConverter.STRING;

/**
 * Configuration properties for the Hazelcast Discovery Plugin for AWS. For more information
 * see {@link AwsConfig}.
 */
enum AwsProperties {

    /**
     * Access key of your account on EC2
     */
    ACCESS_KEY("access-key", STRING, true),

    /**
     * Secret key of your account on EC2
     */
    SECRET_KEY("secret-key", STRING, true),

    /**
     * The region where your members are running.
     * 

* If not defined, the current instance region is used. */ REGION("region", STRING, true), /** * IAM roles are used to make secure requests from your clients. You can provide the name * of your IAM role that you created previously on your AWS console. */ IAM_ROLE("iam-role", STRING, true), /** * The URL that is the entry point for a web service (the address where the EC2 API can be found). */ HOST_HEADER("host-header", STRING, true), /** * Name of the security group you specified at the EC2 management console. It is used to narrow the Hazelcast members to * be within this group. It is optional. */ SECURITY_GROUP_NAME("security-group-name", STRING, true), /** * Tag key as specified in the EC2 console. It is used to narrow the members returned by the discovery mechanism. *

* Can support multiple tag keys if separated by commas (e.g. {@code "TagKeyA,TagKeyB"}). */ TAG_KEY("tag-key", STRING, true), /** * Tag value as specified in the EC2 console. It is used to narrow the members returned by the discovery mechanism. *

* Can support multiple tag values if separated by commas (e.g. {@code "TagValueA,TagValueB"}). */ TAG_VALUE("tag-value", STRING, true), /** * Sets the connect timeout in seconds. *

* Its default value is 10. */ CONNECTION_TIMEOUT_SECONDS("connection-timeout-seconds", INTEGER, true), /** * Number of retries while connecting to AWS Services. Its default value is 3. *

* Hazelcast AWS plugin uses two AWS services: Describe Instances and EC2 Instance Metadata. */ CONNECTION_RETRIES("connection-retries", INTEGER, true), /** * Sets the read timeout in seconds. Its default value is 10. */ READ_TIMEOUT_SECONDS("read-timeout-seconds", INTEGER, true), /** * The discovery mechanism will discover only IP addresses. You can define the port or the port range on which * Hazelcast is * expected to be running. *

* Sample values: "5701", "5701-5710". *

* The default value is "5701-5708". */ PORT("hz-port", STRING, true), /** * ECS Cluster name or Cluster ARN. *

* If not defined, the current ECS Task cluster is used. */ CLUSTER("cluster", STRING, true), /** * ECS Task Family name that is used to narrow the Hazelcast members to be within the same Task Definition * family. *

* It is optional. *

* Note that this option is mutually exclusive with "service-name". */ FAMILY("family", STRING, true), /** * ECS Task Service Name that is used to narrow the Hazelcast members to be within the same ECS Service. *

* It is optional. *

* Note that this option is mutually exclusive with "family". */ SERVICE_NAME("service-name", STRING, true); private final PropertyDefinition propertyDefinition; AwsProperties(String key, PropertyTypeConverter typeConverter, boolean optional) { this.propertyDefinition = new SimplePropertyDefinition(key, optional, typeConverter); } PropertyDefinition getDefinition() { return propertyDefinition; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy