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

com.yahoo.vespa.hosted.controller.athenz.config.AthenzConfig Maven / Gradle / Ivy

There is a newer version: 8.253.3
Show newest version
/**
 * This file is generated from a config definition file.
 * ------------   D O   N O T   E D I T !   ------------
 */

package com.yahoo.vespa.hosted.controller.athenz.config;

import java.util.*;
import java.io.File;
import java.nio.file.Path;
import com.yahoo.config.*;

/**
 * This class represents the root node of athenz
 *
 * Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
 */
public final class AthenzConfig extends ConfigInstance {

  public final static String CONFIG_DEF_MD5 = "3b606ce30eaa6df8348b1e61758ed74c";
  public final static String CONFIG_DEF_NAME = "athenz";
  public final static String CONFIG_DEF_NAMESPACE = "vespa.hosted.controller.athenz.config";
  public final static String CONFIG_DEF_VERSION = "";
  public final static String[] CONFIG_DEF_SCHEMA = {
    "namespace=vespa.hosted.controller.athenz.config",
    "zmsUrl string",
    "ztsUrl string",
    "domain string",
    "service.name string"
  };

  public static String getDefMd5()       { return CONFIG_DEF_MD5; }
  public static String getDefName()      { return CONFIG_DEF_NAME; }
  public static String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }
  public static String getDefVersion()   { return CONFIG_DEF_VERSION; }

  public interface Producer extends ConfigInstance.Producer {
    void getConfig(Builder builder);
  }

  public static class Builder implements ConfigInstance.Builder {
    private Set __uninitialized = new HashSet(Arrays.asList(
      "zmsUrl",
      "ztsUrl",
      "domain"
      ));

    private String zmsUrl = null;
    private String ztsUrl = null;
    private String domain = null;
    public Service.Builder service = new Service.Builder();

    public Builder() { }

    public Builder(AthenzConfig config) {
      zmsUrl(config.zmsUrl());
      ztsUrl(config.ztsUrl());
      domain(config.domain());
      service(new Service.Builder(config.service()));
    }

    private Builder override(Builder __superior) {
      if (__superior.zmsUrl != null)
        zmsUrl(__superior.zmsUrl);
      if (__superior.ztsUrl != null)
        ztsUrl(__superior.ztsUrl);
      if (__superior.domain != null)
        domain(__superior.domain);
      service(service.override(__superior.service));
      return this;
    }

    public Builder zmsUrl(String __value) {
    if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
      zmsUrl = __value;
      __uninitialized.remove("zmsUrl");
      return this;
    }


    public Builder ztsUrl(String __value) {
    if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
      ztsUrl = __value;
      __uninitialized.remove("ztsUrl");
      return this;
    }


    public Builder domain(String __value) {
    if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
      domain = __value;
      __uninitialized.remove("domain");
      return this;
    }


    public Builder service(Service.Builder __builder) {
      service = __builder;
      return this;
    }
    /**
     * Make a new builder and run the supplied function on it before adding it to the list
     * @param __func lambda that modifies the given builder
     * @return this builder
     */
    public Builder service(java.util.function.Consumer __func) {
      Service.Builder __inner = new Service.Builder();
      __func.accept(__inner);
      service = __inner;
      return this;
    }

    private boolean _applyOnRestart = false;

    @java.lang.Override
    public final boolean dispatchGetConfig(ConfigInstance.Producer producer) {
      if (producer instanceof Producer) {
        ((Producer)producer).getConfig(this);
        return true;
      }
      return false;
    }

    @java.lang.Override
    public final String getDefMd5() { return CONFIG_DEF_MD5; }

    @java.lang.Override
    public final String getDefName() { return CONFIG_DEF_NAME; }

    @java.lang.Override
    public final String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }

    @java.lang.Override
    public final boolean getApplyOnRestart() { return _applyOnRestart; }

    @java.lang.Override
    public final void setApplyOnRestart(boolean applyOnRestart) { _applyOnRestart = applyOnRestart; }

    public AthenzConfig build() {
      return new AthenzConfig(this);
    }

  }

  // URL to ZMS API endpoint
  private final StringNode zmsUrl;
  // URL to ZTS API endpoint
  private final StringNode ztsUrl;
  // Athenz domain for controller identity. The domain is also used for Athenz tenancy integration.
  private final StringNode domain;
  private final Service service;

  public AthenzConfig(Builder builder) {
    this(builder, true);
  }

  private AthenzConfig(Builder builder, boolean throwIfUninitialized) {
    if (throwIfUninitialized && ! builder.__uninitialized.isEmpty())
      throw new IllegalArgumentException("The following builder parameters for " +
          "athenz must be initialized: " + builder.__uninitialized);

    zmsUrl = (builder.zmsUrl == null) ?
        new StringNode() : new StringNode(builder.zmsUrl);
    ztsUrl = (builder.ztsUrl == null) ?
        new StringNode() : new StringNode(builder.ztsUrl);
    domain = (builder.domain == null) ?
        new StringNode() : new StringNode(builder.domain);
    service = new Service(builder.service, throwIfUninitialized);
  }

  /**
   * @return athenz.zmsUrl
   */
  public String zmsUrl() {
    return zmsUrl.value();
  }

  /**
   * @return athenz.ztsUrl
   */
  public String ztsUrl() {
    return ztsUrl.value();
  }

  /**
   * @return athenz.domain
   */
  public String domain() {
    return domain.value();
  }

  /**
   * @return athenz.service
   */
  public Service service() {
    return service;
  }

  private ChangesRequiringRestart getChangesRequiringRestart(AthenzConfig newConfig) {
    ChangesRequiringRestart changes = new ChangesRequiringRestart("athenz");
    return changes;
  }

  private static boolean containsFieldsFlaggedWithRestart() {
    return false;
  }

  /**
   * This class represents athenz.service
   */
  public final static class Service extends InnerNode { 

    public static class Builder implements ConfigBuilder {
      private Set __uninitialized = new HashSet(Arrays.asList(
        "name"
        ));

      private String name = null;

      public Builder() { }

      public Builder(Service config) {
        name(config.name());
      }

      private Builder override(Builder __superior) {
        if (__superior.name != null)
          name(__superior.name);
        return this;
      }

      public Builder name(String __value) {
      if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
        name = __value;
        __uninitialized.remove("name");
        return this;
      }


      public Service build() {
        return new Service(this);
      }

    }

    // Athenz service name for controller identity
    private final StringNode name;

    public Service(Builder builder) {
      this(builder, true);
    }

    private Service(Builder builder, boolean throwIfUninitialized) {
      if (throwIfUninitialized && ! builder.__uninitialized.isEmpty())
        throw new IllegalArgumentException("The following builder parameters for " +
            "athenz.service must be initialized: " + builder.__uninitialized);

      name = (builder.name == null) ?
          new StringNode() : new StringNode(builder.name);
    }

    /**
     * @return athenz.service.name
     */
    public String name() {
      return name.value();
    }

    private ChangesRequiringRestart getChangesRequiringRestart(Service newConfig) {
      ChangesRequiringRestart changes = new ChangesRequiringRestart("service");
      return changes;
    }
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy