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

org.mandas.docker.client.messages.Info Maven / Gradle / Ivy

There is a newer version: 8.0.3
Show newest version
/*-
 * -\-\-
 * docker-client
 * --
 * Copyright (C) 2016 Spotify AB
 * Copyright (C) 9/2019 - 2020 Dimitris Mandalidis
 * --
 * 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 org.mandas.docker.client.messages;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.immutables.value.Value.Enclosing;
import org.immutables.value.Value.Immutable;
import org.mandas.docker.Nullable;
import org.mandas.docker.client.messages.swarm.SwarmInfo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.annotation.Nulls;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

@JsonDeserialize(builder = ImmutableInfo.Builder.class)
@Immutable
@Enclosing
public interface Info {

  @Nullable
  @JsonProperty("Architecture")
  String architecture();

  @Nullable
  @JsonProperty("ClusterStore")
  @Deprecated // as of v1.41
  String clusterStore();

  @Nullable
  @JsonProperty("CgroupDriver")
  String cgroupDriver();

  @Nullable
  @JsonProperty("CgroupVersion")
  String cgroupVersion();
  
  @JsonProperty("Containers")
  Integer containers();

  @Nullable
  @JsonProperty("ContainersRunning")
  Integer containersRunning();

  @Nullable
  @JsonProperty("ContainersStopped")
  Integer containersStopped();

  @Nullable
  @JsonProperty("ContainersPaused")
  Integer containersPaused();

  @Nullable
  @JsonProperty("CpuCfsPeriod")
  Boolean cpuCfsPeriod();

  @Nullable
  @JsonProperty("CpuCfsQuota")
  Boolean cpuCfsQuota();

  @JsonProperty("Debug")
  Boolean debug();

  @JsonProperty("DockerRootDir")
  String dockerRootDir();

  @JsonProperty("Driver")
  String storageDriver();

  @JsonProperty("DriverStatus")
  List> driverStatus();

  @Nullable
  @JsonProperty("ExperimentalBuild")
  Boolean experimentalBuild();

  @Nullable
  @JsonProperty("HttpProxy")
  String httpProxy();

  @Nullable
  @JsonProperty("HttpsProxy")
  String httpsProxy();

  @JsonProperty("ID")
  String id();

  @JsonProperty("IPv4Forwarding")
  Boolean ipv4Forwarding();

  @JsonProperty("Images")
  Integer images();

  @JsonProperty("IndexServerAddress")
  String indexServerAddress();

  @Nullable
  @JsonProperty("InitPath")
  String initPath();

  @Nullable
  @JsonProperty("InitSha1")
  String initSha1();

  @Nullable
  @JsonProperty("KernelMemory")
  @Deprecated // as of v1.41
  Boolean kernelMemory();

  @JsonProperty("KernelVersion")
  String kernelVersion();

  @JsonProperty("Labels")
  @JsonSetter(nulls = Nulls.AS_EMPTY)
  List labels();

  @JsonProperty("MemTotal")
  Long memTotal();

  @JsonProperty("MemoryLimit")
  Boolean memoryLimit();

  @JsonProperty("NCPU")
  Integer cpus();

  @JsonProperty("NEventsListener")
  Integer eventsListener();

  @JsonProperty("NFd")
  Integer fileDescriptors();

  @JsonProperty("NGoroutines")
  Integer goroutines();

  @JsonProperty("Name")
  String name();

  @Nullable
  @JsonProperty("NoProxy")
  String noProxy();

  @Nullable
  @JsonProperty("OomKillDisable")
  Boolean oomKillDisable();

  @JsonProperty("OperatingSystem")
  String operatingSystem();

  @Nullable
  @JsonProperty("OSType")
  String osType();

  @Nullable
  @JsonProperty("OSVersion")
  String osVersion();
  
  @Nullable
  @JsonProperty("Plugins")
  Plugins plugins();

  @JsonProperty("RegistryConfig")
  RegistryConfig registryConfig();

  @Nullable
  @JsonProperty("ServerVersion")
  String serverVersion();

  @JsonProperty("SwapLimit")
  Boolean swapLimit();
  
  @Nullable
  @JsonProperty("Swarm")
  SwarmInfo swarm();

  @Nullable
  @JsonProperty("SystemStatus")
  List> systemStatus();

  @JsonProperty("SystemTime")
  Date systemTime();

  @JsonDeserialize(builder = ImmutableInfo.Plugins.Builder.class)
  @Immutable
  public interface Plugins {

    @JsonProperty("Volume")
    @JsonSetter(nulls = Nulls.AS_EMPTY)
    List volumes();

    /**
     * @return the value of the `network` json path.
     * todo this method should be renamed to network
     */
    @JsonProperty("Network")
    @JsonSetter(nulls = Nulls.AS_EMPTY)
    List networks();
  }

  @JsonDeserialize(builder = ImmutableInfo.RegistryConfig.Builder.class)
  @Immutable
  public interface RegistryConfig {

    @JsonProperty("IndexConfigs")
    @JsonSetter(nulls = Nulls.AS_EMPTY)
    Map indexConfigs();

    @JsonProperty("InsecureRegistryCIDRs")
    @JsonSetter(nulls = Nulls.AS_EMPTY)
    List insecureRegistryCidrs();
  }

  @JsonDeserialize(builder = ImmutableInfo.IndexConfig.Builder.class)
  @Immutable
  public interface IndexConfig {

    @JsonProperty("Name")
    String name();

    @JsonProperty("Mirrors")
    @JsonSetter(nulls = Nulls.AS_EMPTY)
    List mirrors();

    @JsonProperty("Secure")
    Boolean secure();

    @JsonProperty("Official")
    Boolean official();
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy