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

io.debezium.operator.api.model.runtime.Runtime Maven / Gradle / Ivy

The newest version!
/*
 * Copyright Debezium Authors.
 *
 * Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
 */
package io.debezium.operator.api.model.runtime;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

import io.debezium.operator.api.config.ConfigMappable;
import io.debezium.operator.api.config.ConfigMapping;
import io.debezium.operator.api.model.runtime.jmx.JmxConfig;
import io.debezium.operator.api.model.runtime.metrics.Metrics;
import io.debezium.operator.api.model.runtime.storage.RuntimeStorage;
import io.debezium.operator.api.model.runtime.templates.Templates;
import io.debezium.operator.docs.annotations.Documented;
import io.sundr.builder.annotations.Buildable;

@JsonPropertyOrder({ "api", "storage", "environment", "jmx", "templates", "serviceAccount", "metrics" })
@Documented
@Buildable(editableEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder", lazyCollectionInitEnabled = false)
public class Runtime implements ConfigMappable {

    @JsonPropertyDescription("API configuration")
    private RuntimeApi api;

    @JsonPropertyDescription("Storage configuration")
    private RuntimeStorage storage;

    @JsonPropertyDescription("Additional environment variables used by this Debezium Server.")
    private RuntimeEnvironment environment;

    @JsonPropertyDescription("JMX configuration.")
    private JmxConfig jmx;

    @JsonPropertyDescription("Debezium Server resource templates.")
    private Templates templates;

    @JsonPropertyDescription("An existing service account used to run the Debezium Server pod")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String serviceAccount;

    @JsonPropertyDescription("Metrics configuration")
    private Metrics metrics;

    public Runtime() {
        this.api = new RuntimeApi();
        this.storage = new RuntimeStorage();
        this.environment = new RuntimeEnvironment();
        this.jmx = new JmxConfig();
        this.templates = new Templates();
        this.metrics = new Metrics();
    }

    public RuntimeApi getApi() {
        return api;
    }

    public void setApi(RuntimeApi api) {
        this.api = api;
    }

    public Templates getTemplates() {
        return templates;
    }

    public void setTemplates(Templates templates) {
        this.templates = templates;
    }

    public JmxConfig getJmx() {
        return jmx;
    }

    public void setJmx(JmxConfig jmx) {
        this.jmx = jmx;
    }

    public String getServiceAccount() {
        return serviceAccount;
    }

    public void setServiceAccount(String serviceAccount) {
        this.serviceAccount = serviceAccount;
    }

    public RuntimeStorage getStorage() {
        return storage;
    }

    public void setStorage(RuntimeStorage storage) {
        this.storage = storage;
    }

    public RuntimeEnvironment getEnvironment() {
        return environment;
    }

    public void setEnvironment(RuntimeEnvironment environment) {
        this.environment = environment;
    }

    public Metrics getMetrics() {
        return metrics;
    }

    public void setMetrics(Metrics metrics) {
        this.metrics = metrics;
    }

    @Override
    public ConfigMapping asConfiguration() {
        return ConfigMapping.empty()
                .putAll("api", api);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy