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

com.vmware.photon.controller.model.adapters.gcp.constants.GCPConstants Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2015-2016 VMware, 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.vmware.photon.controller.model.adapters.gcp.constants;

import java.util.Collection;
import java.util.Collections;

import com.google.api.services.compute.ComputeScopes;

/**
 * GCP related constants.
 */
public class GCPConstants {
    // GCP API URIs
    private static final String BASE_URI = "https://www.googleapis.com";
    private static final String GCP_API_VERSION = "v1";
    private static final String BASE_COMPUTE_TEMPLATE_URI = BASE_URI + "/compute/"
            + GCP_API_VERSION + "/projects/%s/zones/%s";
    public static final String LIST_VM_TEMPLATE_URI = BASE_COMPUTE_TEMPLATE_URI + "/instances";
    public static final String MONITORING_API_BASE_URI = "https://monitoring.googleapis.com/";
    public static final String MONITORING_API_VERSION = "v3/";
    public static final String MONITORING_API_URI = MONITORING_API_BASE_URI + MONITORING_API_VERSION
            + "projects/";
    // Permission level for retrieving stats, used in authentication.
    public static final Collection SCOPES = Collections.singleton(ComputeScopes.CLOUD_PLATFORM);

    // GCP API Constants
    public static final String MAX_RESULTS = "maxResults";
    public static final String PAGE_TOKEN = "pageToken";

    // GCP Auth URIs
    private static final String OAUTH_API_VERSION = "v4";
    public static final String TOKEN_REQUEST_URI = BASE_URI + "/oauth2/"
            + OAUTH_API_VERSION + "/token";

    // GCP Auth Constants
    // This is the prefix of the request body, which is used to get access token.
    public static final String TOKEN_REQUEST_BODY_TEMPLATE =
            "grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=%s";
    // This is the prefix of the authorization header prefix.
    public static final String AUTH_HEADER_BEARER_PREFIX = "Bearer ";
    public static final String PRIVATE_KEY = "PRIVATE KEY";
    public static final String DEFAULT_AUTH_TYPE = "GoogleAuth";

    // GCP Disk Properties
    public static final String DEFAULT_DISK_SOURCE_IMAGE = "defaultDiskSourceImage";
    public static final String DISK_AUTO_DELETE = "autoDelete";
    public static final String DISK_TYPE_PERSISTENT = "PERSISTENT";
    public static final String DEFAULT_DISK_SERVICE_REFERENCE = "defaultDiskServiceReference";
    public static final long DEFAULT_DISK_CAPACITY = 10000L;

    // GCP CPU Properties
    public static final String CPU_PLATFORM = "CPUPlatform";
    public static final String DEFAULT_CPU_PLATFORM = "Ivy Bridge";
    public static final String DEFAULT_IMAGE_REFERENCE = "Canonical:UbuntuServer:14.04.3-LTS:latest";

    // GCP Instance Status Constants
    public static final String INSTANCE_STATUS_PROVISIONING = "PROVISIONING";
    public static final String INSTANCE_STATUS_STAGING = "STAGING";
    public static final String INSTANCE_STATUS_RUNNING = "RUNNING";
    public static final String INSTANCE_STATUS_STOPPING = "STOPPING";
    public static final String INSTANCE_STATUS_SUSPENDED = "SUSPENDED";
    public static final String INSTANCE_STATUS_SUSPENDING = "SUSPENDING";
    public static final String INSTANCE_STATUS_TERMINATED = "TERMINATED";

    // GCP Time Constants
    public static final long ONE_HOUR_IN_SECOND = 3600L;
    public static final String VM_CREATION_TIMESTAMP_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";

    // GCP Operation Constants
    public static final String OPERATION_STATUS_DONE = "DONE";

    // GCP Region Constants
    public static final String UNKNOWN_REGION = "Unknown";
    public static final String EASTERN_US = "Eastern US";
    public static final String CENTRAL_US = "Central US";
    public static final String WESTERN_EUROPE = "Western Europe";
    public static final String EAST_ASIA = "East Asia";

    // GCP Zone Constants
    public static final String US_EAST1_B = "us-east1-b";
    public static final String US_EAST1_C = "us-east1-c";
    public static final String US_EAST1_D = "us-east1-d";
    public static final String US_CENTRAL1_A = "us-central1-a";
    public static final String US_CENTRAL1_B = "us-central1-b";
    public static final String US_CENTRAL1_C = "us-central1-c";
    public static final String US_CENTRAL1_F = "us-central1-f";
    public static final String EUROPE_WEST1_B = "europe-west1-b";
    public static final String EUROPE_WEST1_C = "europe-west1-c";
    public static final String EUROPE_WEST1_D = "europe-west1-d";
    public static final String ASIA_EAST1_A = "asia-east1-a";
    public static final String ASIA_EAST1_B = "asia-east1-b";
    public static final String ASIA_EAST1_C = "asia-east1-c";

    // GCP Metric Name Constants
    public static final String METRIC_NAME_PREFIX = "compute.googleapis.com/";
    public static final String CPU_UTILIZATION = "instance/cpu/utilization";
    public static final String DISK_READ_BYTES = "instance/disk/read_bytes_count";
    public static final String DISK_READ_OPERATIONS = "instance/disk/read_ops_count";
    public static final String DISK_WRITE_BYTES = "instance/disk/write_bytes_count";
    public static final String DISK_WRITE_OPERATIONS = "instance/disk/write_ops_count";
    public static final String NETWORK_IN_BYTES = "instance/network/received_bytes_count";
    public static final String NETWORK_IN_PACKETS = "instance/network/received_packets_count";
    public static final String NETWORK_OUT_BYTES = "instance/network/sent_bytes_count";
    public static final String NETWORK_OUT_PACKETS = "instance/network/sent_packets_count";

    // GCP Metric Unit Constants
    public static final String UNIT_COUNT = "Count";
    public static final String UNIT_BYTE = "Bytes";
    public static final String UNIT_PERCENT = "Percent";
    public static final String UTC_TIMEZONE_ID = "UTC";

    // GCP Metric Filter Constants
    public static final String TIMESERIES_PREFIX = "/timeSeries";
    public static final String FILTER_KEY = "filter";
    public static final String INTERVAL_START_TIME = "interval.startTime";
    public static final String INTERVAL_END_TIME = "interval.endTime";
    public static final String METRIC_TYPE_FILTER = "metric.type";
    public static final String INSTANCE_NAME_FILTER = "resource.label.instance_id";
    public static final String RESPONSE_PAGE_SIZE = "pageSize";
    public static final String TIME_INTERVAL_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'";
    // To subtract 4 minutes from the current time and get start time.
    public static final long START_TIME_MILLIS = 240000;
    // To subtract 3 minutes from the current time and get end time.
    public static final long END_TIME_MILLIS = 180000;

    // GCP Aggregation Related Metric Filter Constants
    public static final String AGGREGATION_ALIGNMENT_PERIOD = "aggregation.alignmentPeriod";
    public static final String AGGREGATION_PER_SERIES_ALIGNER = "aggregation.perSeriesAligner";
    public static final String AGGREGATION_CROSS_SERIES_REDUCER = "aggregation.crossSeriesReducer";
    // Parameter specifying the duration for aggregation.
    // Value is slightly more than the interval to ensure aggregation results in exactly one data
    // point.
    public static final String AGGREGATION_ALIGNMENT_PERIOD_VALUE = "61s";
    // Aggregation enum values for CPU Utilization
    public static final String CPU_UTIL_PER_SERIES_ALIGNER_VALUE = "ALIGN_MEAN";
    public static final String CPU_UTIL_CROSS_SERIES_REDUCER_VALUE = "REDUCE_MEAN";
    // Aggregation enum values for all other stats.
    public static final String PER_SERIES_ALIGNER_VALUE = "ALIGN_SUM";
    public static final String CROSS_SERIES_REDUCER_VALUE = "REDUCE_SUM";
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy