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

com.azure.resourcemanager.appplatform.models.DeploymentSettings Maven / Gradle / Ivy

Go to download

This package contains Microsoft Azure App Platform Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt

There is a newer version: 2.42.0
Show newest version
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.appplatform.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.util.Map;

/**
 * Deployment settings payload.
 */
@Fluent
public final class DeploymentSettings {
    /*
     * The requested resource quantity for required CPU and Memory. It is recommended that using this field to
     * represent the required CPU and Memory, the old field cpu and memoryInGB will be deprecated later.
     */
    @JsonProperty(value = "resourceRequests")
    private ResourceRequests resourceRequests;

    /*
     * Collection of environment variables
     */
    @JsonProperty(value = "environmentVariables")
    @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
    private Map environmentVariables;

    /*
     * Collection of ApmReferences
     */
    @JsonProperty(value = "apms")
    private List apms;

    /*
     * Collection of addons
     */
    @JsonProperty(value = "addonConfigs")
    @JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.ALWAYS)
    private Map> addonConfigs;

    /*
     * Periodic probe of App Instance liveness. App Instance will be restarted if the probe fails. More info:
     * https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     */
    @JsonProperty(value = "livenessProbe")
    private Probe livenessProbe;

    /*
     * Periodic probe of App Instance service readiness. App Instance will be removed from service endpoints if the
     * probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     */
    @JsonProperty(value = "readinessProbe")
    private Probe readinessProbe;

    /*
     * StartupProbe indicates that the App Instance has successfully initialized. If specified, no other probes are
     * executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the
     * livenessProbe failed. This can be used to provide different probe parameters at the beginning of a App
     * Instance's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state
     * operation. This cannot be updated. More info:
     * https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     */
    @JsonProperty(value = "startupProbe")
    private Probe startupProbe;

    /*
     * Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request.
     * Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no
     * opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period
     * is the duration in seconds after the processes running in the App Instance are sent a termination signal and the
     * time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup
     * time for your process. Defaults to 90 seconds.
     */
    @JsonProperty(value = "terminationGracePeriodSeconds")
    private Integer terminationGracePeriodSeconds;

    /*
     * Container liveness and readiness probe settings
     */
    @JsonProperty(value = "containerProbeSettings")
    private ContainerProbeSettings containerProbeSettings;

    /**
     * Creates an instance of DeploymentSettings class.
     */
    public DeploymentSettings() {
    }

    /**
     * Get the resourceRequests property: The requested resource quantity for required CPU and Memory. It is
     * recommended that using this field to represent the required CPU and Memory, the old field cpu and memoryInGB
     * will be deprecated later.
     * 
     * @return the resourceRequests value.
     */
    public ResourceRequests resourceRequests() {
        return this.resourceRequests;
    }

    /**
     * Set the resourceRequests property: The requested resource quantity for required CPU and Memory. It is
     * recommended that using this field to represent the required CPU and Memory, the old field cpu and memoryInGB
     * will be deprecated later.
     * 
     * @param resourceRequests the resourceRequests value to set.
     * @return the DeploymentSettings object itself.
     */
    public DeploymentSettings withResourceRequests(ResourceRequests resourceRequests) {
        this.resourceRequests = resourceRequests;
        return this;
    }

    /**
     * Get the environmentVariables property: Collection of environment variables.
     * 
     * @return the environmentVariables value.
     */
    public Map environmentVariables() {
        return this.environmentVariables;
    }

    /**
     * Set the environmentVariables property: Collection of environment variables.
     * 
     * @param environmentVariables the environmentVariables value to set.
     * @return the DeploymentSettings object itself.
     */
    public DeploymentSettings withEnvironmentVariables(Map environmentVariables) {
        this.environmentVariables = environmentVariables;
        return this;
    }

    /**
     * Get the apms property: Collection of ApmReferences.
     * 
     * @return the apms value.
     */
    public List apms() {
        return this.apms;
    }

    /**
     * Set the apms property: Collection of ApmReferences.
     * 
     * @param apms the apms value to set.
     * @return the DeploymentSettings object itself.
     */
    public DeploymentSettings withApms(List apms) {
        this.apms = apms;
        return this;
    }

    /**
     * Get the addonConfigs property: Collection of addons.
     * 
     * @return the addonConfigs value.
     */
    public Map> addonConfigs() {
        return this.addonConfigs;
    }

    /**
     * Set the addonConfigs property: Collection of addons.
     * 
     * @param addonConfigs the addonConfigs value to set.
     * @return the DeploymentSettings object itself.
     */
    public DeploymentSettings withAddonConfigs(Map> addonConfigs) {
        this.addonConfigs = addonConfigs;
        return this;
    }

    /**
     * Get the livenessProbe property: Periodic probe of App Instance liveness. App Instance will be restarted if the
     * probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes.
     * 
     * @return the livenessProbe value.
     */
    public Probe livenessProbe() {
        return this.livenessProbe;
    }

    /**
     * Set the livenessProbe property: Periodic probe of App Instance liveness. App Instance will be restarted if the
     * probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes.
     * 
     * @param livenessProbe the livenessProbe value to set.
     * @return the DeploymentSettings object itself.
     */
    public DeploymentSettings withLivenessProbe(Probe livenessProbe) {
        this.livenessProbe = livenessProbe;
        return this;
    }

    /**
     * Get the readinessProbe property: Periodic probe of App Instance service readiness. App Instance will be removed
     * from service endpoints if the probe fails. More info:
     * https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes.
     * 
     * @return the readinessProbe value.
     */
    public Probe readinessProbe() {
        return this.readinessProbe;
    }

    /**
     * Set the readinessProbe property: Periodic probe of App Instance service readiness. App Instance will be removed
     * from service endpoints if the probe fails. More info:
     * https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes.
     * 
     * @param readinessProbe the readinessProbe value to set.
     * @return the DeploymentSettings object itself.
     */
    public DeploymentSettings withReadinessProbe(Probe readinessProbe) {
        this.readinessProbe = readinessProbe;
        return this;
    }

    /**
     * Get the startupProbe property: StartupProbe indicates that the App Instance has successfully initialized. If
     * specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be
     * restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the
     * beginning of a App Instance's lifecycle, when it might take a long time to load data or warm a cache, than
     * during steady-state operation. This cannot be updated. More info:
     * https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes.
     * 
     * @return the startupProbe value.
     */
    public Probe startupProbe() {
        return this.startupProbe;
    }

    /**
     * Set the startupProbe property: StartupProbe indicates that the App Instance has successfully initialized. If
     * specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be
     * restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the
     * beginning of a App Instance's lifecycle, when it might take a long time to load data or warm a cache, than
     * during steady-state operation. This cannot be updated. More info:
     * https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes.
     * 
     * @param startupProbe the startupProbe value to set.
     * @return the DeploymentSettings object itself.
     */
    public DeploymentSettings withStartupProbe(Probe startupProbe) {
        this.startupProbe = startupProbe;
        return this;
    }

    /**
     * Get the terminationGracePeriodSeconds property: Optional duration in seconds the App Instance needs to terminate
     * gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates
     * stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace
     * period will be used instead. The grace period is the duration in seconds after the processes running in the App
     * Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal.
     * Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds.
     * 
     * @return the terminationGracePeriodSeconds value.
     */
    public Integer terminationGracePeriodSeconds() {
        return this.terminationGracePeriodSeconds;
    }

    /**
     * Set the terminationGracePeriodSeconds property: Optional duration in seconds the App Instance needs to terminate
     * gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates
     * stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace
     * period will be used instead. The grace period is the duration in seconds after the processes running in the App
     * Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal.
     * Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds.
     * 
     * @param terminationGracePeriodSeconds the terminationGracePeriodSeconds value to set.
     * @return the DeploymentSettings object itself.
     */
    public DeploymentSettings withTerminationGracePeriodSeconds(Integer terminationGracePeriodSeconds) {
        this.terminationGracePeriodSeconds = terminationGracePeriodSeconds;
        return this;
    }

    /**
     * Get the containerProbeSettings property: Container liveness and readiness probe settings.
     * 
     * @return the containerProbeSettings value.
     */
    public ContainerProbeSettings containerProbeSettings() {
        return this.containerProbeSettings;
    }

    /**
     * Set the containerProbeSettings property: Container liveness and readiness probe settings.
     * 
     * @param containerProbeSettings the containerProbeSettings value to set.
     * @return the DeploymentSettings object itself.
     */
    public DeploymentSettings withContainerProbeSettings(ContainerProbeSettings containerProbeSettings) {
        this.containerProbeSettings = containerProbeSettings;
        return this;
    }

    /**
     * Validates the instance.
     * 
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    public void validate() {
        if (resourceRequests() != null) {
            resourceRequests().validate();
        }
        if (apms() != null) {
            apms().forEach(e -> e.validate());
        }
        if (livenessProbe() != null) {
            livenessProbe().validate();
        }
        if (readinessProbe() != null) {
            readinessProbe().validate();
        }
        if (startupProbe() != null) {
            startupProbe().validate();
        }
        if (containerProbeSettings() != null) {
            containerProbeSettings().validate();
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy