{
  "swagger": "2.0",
  "definitions": {
    "io.k8s.api.apps.v1beta2.Deployment": {
      "description": "Deployment enables declarative updates for Pods and ReplicaSets.",
      "properties": {
        "apiVersion": {
          "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources",
          "type": "string"
        },
        "kind": {
          "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds",
          "type": "string"
        },
        "metadata": {
          "description": "Standard object metadata.",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
        },
        "spec": {
          "description": "Specification of the desired behavior of the Deployment.",
          "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentSpec"
        },
        "status": {
          "description": "Most recently observed status of the Deployment.",
          "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentStatus"
        }
      },
      "x-kubernetes-group-version-kind": [
        {
          "group": "apps",
          "kind": "Deployment",
          "version": "v1beta2"
        }
      ]
    },
    "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": {
      "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
      "properties": {
        "annotations": {
          "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "clusterName": {
          "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.",
          "type": "string"
        },
        "creationTimestamp": {
          "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time"
        },
        "deletionGracePeriodSeconds": {
          "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.",
          "type": "integer",
          "format": "int64"
        },
        "deletionTimestamp": {
          "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time"
        },
        "finalizers": {
          "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-kubernetes-patch-strategy": "merge"
        },
        "generateName": {
          "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency",
          "type": "string"
        },
        "generation": {
          "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.",
          "type": "integer",
          "format": "int64"
        },
        "initializers": {
          "description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers"
        },
        "labels": {
          "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names",
          "type": "string"
        },
        "namespace": {
          "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces",
          "type": "string"
        },
        "ownerReferences": {
          "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"
          },
          "x-kubernetes-patch-merge-key": "uid",
          "x-kubernetes-patch-strategy": "merge"
        },
        "resourceVersion": {
          "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency",
          "type": "string"
        },
        "selfLink": {
          "description": "SelfLink is a URL representing this object. Populated by the system. Read-only.",
          "type": "string"
        },
        "uid": {
          "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids",
          "type": "string"
        }
      }
    },
    "io.k8s.apimachinery.pkg.apis.meta.v1.Time": {
      "type": "string",
      "format": "date-time"
    },
    "io.k8s.apimachinery.pkg.apis.meta.v1.Initializers": {
      "description": "Initializers tracks the progress of initialization.",
      "required": [
        "pending"
      ],
      "properties": {
        "pending": {
          "description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer"
          },
          "x-kubernetes-patch-merge-key": "name",
          "x-kubernetes-patch-strategy": "merge"
        },
        "result": {
          "description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status"
        }
      }
    },
    "io.k8s.apimachinery.pkg.apis.meta.v1.Status": {
      "description": "Status is a return value for calls that don't return other objects.",
      "properties": {
        "apiVersion": {
          "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources",
          "type": "string"
        },
        "code": {
          "description": "Suggested HTTP return code for this status, 0 if not set.",
          "type": "integer",
          "format": "int32"
        },
        "details": {
          "description": "Extended data associated with the reason.  Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails"
        },
        "kind": {
          "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds",
          "type": "string"
        },
        "message": {
          "description": "A human-readable description of the status of this operation.",
          "type": "string"
        },
        "metadata": {
          "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
        },
        "reason": {
          "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.",
          "type": "string"
        },
        "status": {
          "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status",
          "type": "string"
        }
      },
      "x-kubernetes-group-version-kind": [
        {
          "group": "",
          "kind": "Status",
          "version": "v1"
        }
      ]
    },
    "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": {
      "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.",
      "properties": {
        "causes": {
          "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause"
          }
        },
        "group": {
          "description": "The group attribute of the resource associated with the status StatusReason.",
          "type": "string"
        },
        "kind": {
          "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds",
          "type": "string"
        },
        "name": {
          "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).",
          "type": "string"
        },
        "retryAfterSeconds": {
          "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.",
          "type": "integer",
          "format": "int32"
        },
        "uid": {
          "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids",
          "type": "string"
        }
      }
    },
    "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": {
      "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
      "properties": {
        "continue": {
          "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.",
          "type": "string"
        },
        "resourceVersion": {
          "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency",
          "type": "string"
        },
        "selfLink": {
          "description": "selfLink is a URL representing this object. Populated by the system. Read-only.",
          "type": "string"
        }
      }
    },
    "io.k8s.api.apps.v1beta2.DeploymentSpec": {
      "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.",
      "required": [
        "template"
      ],
      "properties": {
        "minReadySeconds": {
          "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
          "type": "integer",
          "format": "int32"
        },
        "paused": {
          "description": "Indicates that the deployment is paused.",
          "type": "boolean"
        },
        "progressDeadlineSeconds": {
          "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.",
          "type": "integer",
          "format": "int32"
        },
        "replicas": {
          "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.",
          "type": "integer",
          "format": "int32"
        },
        "revisionHistoryLimit": {
          "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.",
          "type": "integer",
          "format": "int32"
        },
        "selector": {
          "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
        },
        "strategy": {
          "description": "The deployment strategy to use to replace existing pods with new ones.",
          "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentStrategy"
        },
        "template": {
          "description": "Template describes the pods that will be created.",
          "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec"
        }
      }
    },
    "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": {
      "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.",
      "properties": {
        "matchExpressions": {
          "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement"
          }
        },
        "matchLabels": {
          "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "io.k8s.api.apps.v1beta2.DeploymentStrategy": {
      "description": "DeploymentStrategy describes how to replace existing pods with new ones.",
      "properties": {
        "rollingUpdate": {
          "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.",
          "$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDeployment"
        },
        "type": {
          "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.",
          "type": "string"
        }
      }
    },
    "io.k8s.api.apps.v1beta2.RollingUpdateDeployment": {
      "description": "Spec to control the desired behavior of rolling update.",
      "properties": {
        "maxSurge": {
          "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString"
        },
        "maxUnavailable": {
          "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString"
        }
      }
    },
    "io.k8s.apimachinery.pkg.util.intstr.IntOrString": {
      "type": "string",
      "format": "int-or-string"
    },
    "io.k8s.api.core.v1.PodTemplateSpec": {
      "description": "PodTemplateSpec describes the data a pod should have when created from a template",
      "properties": {
        "metadata": {
          "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata",
          "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
        },
        "spec": {
          "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status",
          "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec"
        }
      }
    },
    "io.k8s.api.core.v1.PodSpec": {
      "description": "PodSpec is a description of a pod.",
      "required": [
        "containers"
      ],
      "properties": {
        "activeDeadlineSeconds": {
          "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
          "type": "integer",
          "format": "int64"
        },
        "affinity": {
          "description": "If specified, the pod's scheduling constraints",
          "$ref": "#/definitions/io.k8s.api.core.v1.Affinity"
        },
        "automountServiceAccountToken": {
          "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
          "type": "boolean"
        },
        "containers": {
          "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.Container"
          },
          "x-kubernetes-patch-merge-key": "name",
          "x-kubernetes-patch-strategy": "merge"
        },
        "dnsPolicy": {
          "description": "Set DNS policy for containers within the pod. One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'. Defaults to \"ClusterFirst\". To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
          "type": "string"
        },
        "hostAliases": {
          "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias"
          },
          "x-kubernetes-patch-merge-key": "ip",
          "x-kubernetes-patch-strategy": "merge"
        },
        "hostIPC": {
          "description": "Use the host's ipc namespace. Optional: Default to false.",
          "type": "boolean"
        },
        "hostNetwork": {
          "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.",
          "type": "boolean"
        },
        "hostPID": {
          "description": "Use the host's pid namespace. Optional: Default to false.",
          "type": "boolean"
        },
        "hostname": {
          "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
          "type": "string"
        },
        "imagePullSecrets": {
          "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference"
          },
          "x-kubernetes-patch-merge-key": "name",
          "x-kubernetes-patch-strategy": "merge"
        },
        "initContainers": {
          "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.Container"
          },
          "x-kubernetes-patch-merge-key": "name",
          "x-kubernetes-patch-strategy": "merge"
        },
        "nodeName": {
          "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.",
          "type": "string"
        },
        "nodeSelector": {
          "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "priority": {
          "description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
          "type": "integer",
          "format": "int32"
        },
        "priorityClassName": {
          "description": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
          "type": "string"
        },
        "restartPolicy": {
          "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
          "type": "string"
        },
        "schedulerName": {
          "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
          "type": "string"
        },
        "securityContext": {
          "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.",
          "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext"
        },
        "serviceAccount": {
          "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.",
          "type": "string"
        },
        "serviceAccountName": {
          "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
          "type": "string"
        },
        "subdomain": {
          "description": "If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.",
          "type": "string"
        },
        "terminationGracePeriodSeconds": {
          "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. 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 pod 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 30 seconds.",
          "type": "integer",
          "format": "int64"
        },
        "tolerations": {
          "description": "If specified, the pod's tolerations.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.Toleration"
          }
        },
        "volumes": {
          "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.Volume"
          },
          "x-kubernetes-patch-merge-key": "name",
          "x-kubernetes-patch-strategy": "merge,retainKeys"
        }
      }
    },
    "io.k8s.api.core.v1.Affinity": {
      "description": "Affinity is a group of affinity scheduling rules.",
      "properties": {
        "nodeAffinity": {
          "description": "Describes node affinity scheduling rules for the pod.",
          "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity"
        },
        "podAffinity": {
          "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).",
          "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity"
        },
        "podAntiAffinity": {
          "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).",
          "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity"
        }
      }
    },
    "io.k8s.api.core.v1.NodeAffinity": {
      "description": "Node affinity is a group of node affinity scheduling rules.",
      "properties": {
        "preferredDuringSchedulingIgnoredDuringExecution": {
          "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm"
          }
        },
        "requiredDuringSchedulingIgnoredDuringExecution": {
          "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.",
          "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector"
        }
      }
    },
    "io.k8s.api.core.v1.NodeSelector": {
      "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.",
      "required": [
        "nodeSelectorTerms"
      ],
      "properties": {
        "nodeSelectorTerms": {
          "description": "Required. A list of node selector terms. The terms are ORed.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm"
          }
        }
      }
    },
    "io.k8s.api.core.v1.PodAffinity": {
      "description": "Pod affinity is a group of inter pod affinity scheduling rules.",
      "properties": {
        "preferredDuringSchedulingIgnoredDuringExecution": {
          "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm"
          }
        },
        "requiredDuringSchedulingIgnoredDuringExecution": {
          "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm"
          }
        }
      }
    },
    "io.k8s.api.core.v1.PodAntiAffinity": {
      "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.",
      "properties": {
        "preferredDuringSchedulingIgnoredDuringExecution": {
          "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm"
          }
        },
        "requiredDuringSchedulingIgnoredDuringExecution": {
          "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm"
          }
        }
      }
    },
    "io.k8s.api.core.v1.PodSecurityContext": {
      "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext.  Field values of container.securityContext take precedence over field values of PodSecurityContext.",
      "properties": {
        "fsGroup": {
          "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.",
          "type": "integer",
          "format": "int64"
        },
        "runAsNonRoot": {
          "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
          "type": "boolean"
        },
        "runAsUser": {
          "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.",
          "type": "integer",
          "format": "int64"
        },
        "seLinuxOptions": {
          "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.",
          "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions"
        },
        "supplementalGroups": {
          "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID.  If unspecified, no groups will be added to any container.",
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        }
      }
    },
    "io.k8s.api.core.v1.SELinuxOptions": {
      "description": "SELinuxOptions are the labels to be applied to the container",
      "properties": {
        "level": {
          "description": "Level is SELinux level label that applies to the container.",
          "type": "string"
        },
        "role": {
          "description": "Role is a SELinux role label that applies to the container.",
          "type": "string"
        },
        "type": {
          "description": "Type is a SELinux type label that applies to the container.",
          "type": "string"
        },
        "user": {
          "description": "User is a SELinux user label that applies to the container.",
          "type": "string"
        }
      }
    },
    "io.k8s.api.apps.v1beta2.DeploymentStatus": {
      "description": "DeploymentStatus is the most recently observed status of the Deployment.",
      "properties": {
        "availableReplicas": {
          "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.",
          "type": "integer",
          "format": "int32"
        },
        "collisionCount": {
          "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.",
          "type": "integer",
          "format": "int32"
        },
        "conditions": {
          "description": "Represents the latest available observations of a deployment's current state.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentCondition"
          },
          "x-kubernetes-patch-merge-key": "type",
          "x-kubernetes-patch-strategy": "merge"
        },
        "observedGeneration": {
          "description": "The generation observed by the deployment controller.",
          "type": "integer",
          "format": "int64"
        },
        "readyReplicas": {
          "description": "Total number of ready pods targeted by this deployment.",
          "type": "integer",
          "format": "int32"
        },
        "replicas": {
          "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).",
          "type": "integer",
          "format": "int32"
        },
        "unavailableReplicas": {
          "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.",
          "type": "integer",
          "format": "int32"
        },
        "updatedReplicas": {
          "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.",
          "type": "integer",
          "format": "int32"
        }
      }
    }
  }
}