{ "swagger": "2.0", "info": { "description": "Swagger description for Katib", "title": "Katib", "version": "v1beta1-0.1" }, "paths": {}, "definitions": { ".v1beta1.Suggestion": { "description": "Suggestion represents the structure of a Suggestion resource.", "type": "object", "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/sig-architecture/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/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "default": {}, "$ref": "#/definitions/v1.ObjectMeta" }, "spec": { "default": {}, "$ref": "#/definitions/.v1beta1.SuggestionSpec" }, "status": { "default": {}, "$ref": "#/definitions/.v1beta1.SuggestionStatus" } } }, ".v1beta1.SuggestionCondition": { "description": "SuggestionCondition describes the state of the Suggestion at a certain point.", "type": "object", "required": [ "type", "status" ], "properties": { "lastTransitionTime": { "description": "Last time the condition transitioned from one status to another.", "$ref": "#/definitions/v1.Time" }, "lastUpdateTime": { "description": "The last time this condition was updated.", "$ref": "#/definitions/v1.Time" }, "message": { "description": "A human readable message indicating details about the transition.", "type": "string" }, "reason": { "description": "The reason for the condition's last transition.", "type": "string" }, "status": { "description": "Status of the condition, one of True, False, Unknown.", "type": "string", "default": "" }, "type": { "description": "Type of Suggestion condition.", "type": "string", "default": "" } } }, ".v1beta1.SuggestionList": { "description": "SuggestionList contains a list of Suggestion", "type": "object", "required": [ "items" ], "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/sig-architecture/api-conventions.md#resources", "type": "string" }, "items": { "type": "array", "items": { "default": {}, "$ref": "#/definitions/.v1beta1.Suggestion" } }, "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/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "default": {}, "$ref": "#/definitions/v1.ListMeta" } } }, ".v1beta1.SuggestionSpec": { "description": "SuggestionSpec is the specification of a Suggestion.", "type": "object", "properties": { "algorithm": { "description": "Algorithm describes HP or NAS algorithm that suggestion is used.", "$ref": "#/definitions/v1beta1.AlgorithmSpec" }, "earlyStopping": { "description": "EarlyStopping describes early stopping algorithm that suggestion is used.", "$ref": "#/definitions/v1beta1.EarlyStoppingSpec" }, "requests": { "description": "Number of suggestions requested.", "type": "integer", "format": "int32" }, "resumePolicy": { "description": "ResumePolicy describes resuming policy which usually take effect after experiment terminated. Default value is Never.", "type": "string" } } }, ".v1beta1.SuggestionStatus": { "description": "SuggestionStatus is the current status of a Suggestion.", "type": "object", "properties": { "algorithmSettings": { "description": "AlgorithmSettings defines HP or NAS algorithm settings which suggestion gRPC service returns. These settings overwrites Experiment's settings before the gRPC request. It can be empty if settings haven't been changed.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.AlgorithmSetting" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" }, "completionTime": { "description": "Represents time when the Suggestion was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", "$ref": "#/definitions/v1.Time" }, "conditions": { "description": "List of observed runtime conditions for this Suggestion.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/.v1beta1.SuggestionCondition" }, "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map" }, "lastReconcileTime": { "description": "Represents last time when the Suggestion was reconciled. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", "$ref": "#/definitions/v1.Time" }, "startTime": { "description": "Represents time when the Suggestion was acknowledged by the Suggestion controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", "$ref": "#/definitions/v1.Time" }, "suggestionCount": { "description": "Number of suggestion results", "type": "integer", "format": "int32" }, "suggestions": { "description": "Suggestion results", "type": "array", "items": { "default": {}, "$ref": "#/definitions/.v1beta1.TrialAssignment" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" } } }, ".v1beta1.Trial": { "description": "Represents the structure of a Trial resource.", "type": "object", "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/sig-architecture/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/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "default": {}, "$ref": "#/definitions/v1.ObjectMeta" }, "spec": { "default": {}, "$ref": "#/definitions/.v1beta1.TrialSpec" }, "status": { "default": {}, "$ref": "#/definitions/.v1beta1.TrialStatus" } } }, ".v1beta1.TrialAssignment": { "description": "TrialAssignment is the assignment for one trial.", "type": "object", "properties": { "earlyStoppingRules": { "description": "Rules for early stopping techniques Contains rule name, value and comparison type", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.EarlyStoppingRule" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" }, "labels": { "description": "Suggestion label metadata to attach to Trial job", "type": "object", "additionalProperties": { "type": "string", "default": "" } }, "name": { "description": "Name of the suggestion", "type": "string" }, "parameterAssignments": { "description": "Suggestion results with Trial parameters", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.ParameterAssignment" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" } } }, ".v1beta1.TrialCondition": { "description": "TrialCondition describes the state of the trial at a certain point.", "type": "object", "required": [ "type", "status" ], "properties": { "lastTransitionTime": { "description": "Last time the condition transitioned from one status to another.", "$ref": "#/definitions/v1.Time" }, "lastUpdateTime": { "description": "The last time this condition was updated.", "$ref": "#/definitions/v1.Time" }, "message": { "description": "A human readable message indicating details about the transition.", "type": "string" }, "reason": { "description": "The reason for the condition's last transition.", "type": "string" }, "status": { "description": "Status of the condition, one of True, False, Unknown.", "type": "string", "default": "" }, "type": { "description": "Type of trial condition.", "type": "string", "default": "" } } }, ".v1beta1.TrialList": { "description": "TrialList contains a list of Trials", "type": "object", "required": [ "items" ], "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/sig-architecture/api-conventions.md#resources", "type": "string" }, "items": { "type": "array", "items": { "default": {}, "$ref": "#/definitions/.v1beta1.Trial" } }, "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/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "default": {}, "$ref": "#/definitions/v1.ListMeta" } } }, ".v1beta1.TrialSpec": { "description": "TrialSpec is the specification of a Trial.", "type": "object", "properties": { "earlyStoppingRules": { "description": "Rules for early stopping techniques. Each rule should be met to early stop Trial.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.EarlyStoppingRule" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" }, "failureCondition": { "description": "Condition when trial custom resource is failed. Condition must be in GJSON format, ref https://github.com/tidwall/gjson. For example for BatchJob: status.conditions.#(type==\"Failed\")#|#(status==\"True\")#", "type": "string" }, "labels": { "description": "Labels that provide additional metadata for services (e.g. Suggestions tracking)", "type": "object", "additionalProperties": { "type": "string", "default": "" } }, "metricsCollector": { "description": "Describes how metrics will be collected", "default": {}, "$ref": "#/definitions/v1beta1.MetricsCollectorSpec" }, "objective": { "description": "Describes the objective of the experiment.", "$ref": "#/definitions/v1beta1.ObjectiveSpec" }, "parameterAssignments": { "description": "Key-value pairs for hyperparameters and assignment values.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.ParameterAssignment" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" }, "primaryContainerName": { "description": "Name of training container where actual model training is running", "type": "string" }, "primaryPodLabels": { "description": "Label that determines if pod needs to be injected by Katib sidecar container", "type": "object", "additionalProperties": { "type": "string", "default": "" } }, "retainRun": { "description": "Whether to retain the trial run object after completed.", "type": "boolean" }, "runSpec": { "description": "Raw text for the trial run spec. This can be any generic Kubernetes runtime object. The trial operator should create the resource as written, and let the corresponding resource controller (e.g. Kubeflow Training Operator) handle the rest.", "$ref": "#/definitions/v1.unstructured.Unstructured" }, "successCondition": { "description": "Condition when trial custom resource is succeeded. Condition must be in GJSON format, ref https://github.com/tidwall/gjson. For example for BatchJob: status.conditions.#(type==\"Complete\")#|#(status==\"True\")#", "type": "string" } } }, ".v1beta1.TrialStatus": { "description": "TrialStatus is the current status of a Trial.", "type": "object", "properties": { "completionTime": { "description": "Represents time when the Trial was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC", "$ref": "#/definitions/v1.Time" }, "conditions": { "description": "List of observed runtime conditions for this Trial.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/.v1beta1.TrialCondition" }, "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map" }, "lastReconcileTime": { "description": "Represents last time when the Trial was reconciled. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", "$ref": "#/definitions/v1.Time" }, "observation": { "description": "Results of the Trial - objectives and other metrics values.", "$ref": "#/definitions/v1beta1.Observation" }, "startTime": { "description": "Represents time when the Trial was acknowledged by the Trial controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC", "$ref": "#/definitions/v1.Time" } } }, "v1beta1.AlgorithmSetting": { "description": "AlgorithmSetting represents key-value pair for HP or NAS algorithm settings.", "type": "object", "properties": { "name": { "description": "Name is setting name.", "type": "string" }, "value": { "description": "Value is the setting value.", "type": "string" } } }, "v1beta1.AlgorithmSpec": { "description": "AlgorithmSpec is the specification for a HP or NAS algorithm.", "type": "object", "properties": { "algorithmName": { "description": "HP or NAS algorithm name.", "type": "string" }, "algorithmSettings": { "description": "Key-value pairs representing settings for suggestion algorithms.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.AlgorithmSetting" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" } } }, "v1beta1.CollectorSpec": { "type": "object", "properties": { "customCollector": { "description": "When kind is \"customCollector\", this field will be used", "$ref": "#/definitions/v1.Container" }, "kind": { "type": "string" } } }, "v1beta1.ConfigMapSource": { "description": "ConfigMapSource references the config map where trial template is located", "type": "object", "properties": { "configMapName": { "description": "Name of config map where trial template is located", "type": "string" }, "configMapNamespace": { "description": "Namespace of config map where trial template is located", "type": "string" }, "templatePath": { "description": "Path in config map where trial template is located", "type": "string" } } }, "v1beta1.EarlyStoppingRule": { "description": "EarlyStoppingRule represents each rule for early stopping.", "type": "object", "properties": { "comparison": { "description": "Comparison defines correlation between name and value.", "type": "string" }, "name": { "description": "Name contains metric name for the rule.", "type": "string" }, "startStep": { "description": "StartStep defines quantity of intermediate results that should be received before applying the rule. If start step is empty, rule is applied from the first recorded metric.", "type": "integer", "format": "int32" }, "value": { "description": "Value contains metric value for the rule.", "type": "string" } } }, "v1beta1.EarlyStoppingSetting": { "description": "EarlyStoppingSetting represents key-value pair for early stopping algorithm settings.", "type": "object", "properties": { "name": { "description": "Name is the setting name.", "type": "string" }, "value": { "description": "Value is the setting value.", "type": "string" } } }, "v1beta1.EarlyStoppingSpec": { "description": "EarlyStoppingSpec is the specification for a early stopping algorithm.", "type": "object", "properties": { "algorithmName": { "description": "Early stopping algorithm name.", "type": "string" }, "algorithmSettings": { "description": "Key-value pairs representing settings for early stopping algorithm.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.EarlyStoppingSetting" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" } } }, "v1beta1.Experiment": { "description": "Structure of the Experiment custom resource.", "type": "object", "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/sig-architecture/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/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "default": {}, "$ref": "#/definitions/v1.ObjectMeta" }, "spec": { "default": {}, "$ref": "#/definitions/v1beta1.ExperimentSpec" }, "status": { "default": {}, "$ref": "#/definitions/v1beta1.ExperimentStatus" } } }, "v1beta1.ExperimentCondition": { "description": "ExperimentCondition describes the state of the experiment at a certain point.", "type": "object", "required": [ "type", "status" ], "properties": { "lastTransitionTime": { "description": "Last time the condition transitioned from one status to another.", "$ref": "#/definitions/v1.Time" }, "lastUpdateTime": { "description": "The last time this condition was updated.", "$ref": "#/definitions/v1.Time" }, "message": { "description": "A human readable message indicating details about the transition.", "type": "string" }, "reason": { "description": "The reason for the condition's last transition.", "type": "string" }, "status": { "description": "Status of the condition, one of True, False, Unknown.", "type": "string", "default": "" }, "type": { "description": "Type of experiment condition.", "type": "string", "default": "" } } }, "v1beta1.ExperimentList": { "description": "ExperimentList contains a list of Experiments", "type": "object", "required": [ "items" ], "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/sig-architecture/api-conventions.md#resources", "type": "string" }, "items": { "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.Experiment" } }, "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/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "default": {}, "$ref": "#/definitions/v1.ListMeta" } } }, "v1beta1.ExperimentSpec": { "description": "ExperimentSpec is the specification of an Experiment.", "type": "object", "properties": { "algorithm": { "description": "Describes the suggestion algorithm.", "$ref": "#/definitions/v1beta1.AlgorithmSpec" }, "earlyStopping": { "description": "Describes the early stopping algorithm.", "$ref": "#/definitions/v1beta1.EarlyStoppingSpec" }, "maxFailedTrialCount": { "description": "Max failed trials to mark experiment as failed.", "type": "integer", "format": "int32" }, "maxTrialCount": { "description": "Max completed trials to mark experiment as succeeded", "type": "integer", "format": "int32" }, "metricsCollectorSpec": { "description": "Describes the specification of the metrics collector", "$ref": "#/definitions/v1beta1.MetricsCollectorSpec" }, "nasConfig": { "$ref": "#/definitions/v1beta1.NasConfig" }, "objective": { "description": "Describes the objective of the experiment.", "$ref": "#/definitions/v1beta1.ObjectiveSpec" }, "parallelTrialCount": { "description": "How many trials can be processed in parallel. Defaults to 3", "type": "integer", "format": "int32" }, "parameters": { "description": "List of hyperparameter configurations.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.ParameterSpec" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" }, "resumePolicy": { "description": "Describes resuming policy which usually take effect after experiment terminated. Default value is Never.", "type": "string" }, "trialTemplate": { "description": "Template for each run of the trial.", "$ref": "#/definitions/v1beta1.TrialTemplate" } } }, "v1beta1.ExperimentStatus": { "description": "ExperimentStatus is the current status of an Experiment.", "type": "object", "properties": { "completionTime": { "description": "Represents time when the Experiment was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", "$ref": "#/definitions/v1.Time" }, "conditions": { "description": "List of observed runtime conditions for this Experiment.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.ExperimentCondition" }, "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map" }, "currentOptimalTrial": { "description": "Current optimal trial parameters and observations.", "default": {}, "$ref": "#/definitions/v1beta1.OptimalTrial" }, "earlyStoppedTrialList": { "description": "List of trial names which have been early stopped.", "type": "array", "items": { "type": "string", "default": "" }, "x-kubernetes-list-type": "set" }, "failedTrialList": { "description": "List of trial names which have already failed.", "type": "array", "items": { "type": "string", "default": "" }, "x-kubernetes-list-type": "set" }, "killedTrialList": { "description": "List of trial names which have been killed.", "type": "array", "items": { "type": "string", "default": "" }, "x-kubernetes-list-type": "set" }, "lastReconcileTime": { "description": "Represents last time when the Experiment was reconciled. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", "$ref": "#/definitions/v1.Time" }, "metricsUnavailableTrialList": { "description": "List of trial names which have been metrics unavailable", "type": "array", "items": { "type": "string", "default": "" }, "x-kubernetes-list-type": "set" }, "pendingTrialList": { "description": "List of trial names which are pending.", "type": "array", "items": { "type": "string", "default": "" }, "x-kubernetes-list-type": "set" }, "runningTrialList": { "description": "List of trial names which are running.", "type": "array", "items": { "type": "string", "default": "" }, "x-kubernetes-list-type": "set" }, "startTime": { "description": "Represents time when the Experiment was acknowledged by the Experiment controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", "$ref": "#/definitions/v1.Time" }, "succeededTrialList": { "description": "List of trial names which have already succeeded.", "type": "array", "items": { "type": "string", "default": "" }, "x-kubernetes-list-type": "set" }, "trialMetricsUnavailable": { "description": "How many trials are currently metrics unavailable.", "type": "integer", "format": "int32" }, "trials": { "description": "Trials is the total number of trials owned by the experiment.", "type": "integer", "format": "int32" }, "trialsEarlyStopped": { "description": "How many trials are currently early stopped.", "type": "integer", "format": "int32" }, "trialsFailed": { "description": "How many trials have failed.", "type": "integer", "format": "int32" }, "trialsKilled": { "description": "How many trials have been killed.", "type": "integer", "format": "int32" }, "trialsPending": { "description": "How many trials are currently pending.", "type": "integer", "format": "int32" }, "trialsRunning": { "description": "How many trials are currently running.", "type": "integer", "format": "int32" }, "trialsSucceeded": { "description": "How many trials have succeeded.", "type": "integer", "format": "int32" } } }, "v1beta1.FeasibleSpace": { "type": "object", "properties": { "distribution": { "type": "string" }, "list": { "type": "array", "items": { "type": "string", "default": "" }, "x-kubernetes-list-type": "set" }, "max": { "type": "string" }, "min": { "type": "string" }, "step": { "type": "string" } } }, "v1beta1.FileSystemPath": { "type": "object", "properties": { "format": { "type": "string" }, "kind": { "type": "string" }, "path": { "type": "string" } } }, "v1beta1.FilterSpec": { "type": "object", "properties": { "metricsFormat": { "description": "When the metrics output follows format as this field specified, metricsCollector collects it and reports to metrics server, it can be \"\u003cmetric_name\u003e: \u003cfloat\u003e\" or else", "type": "array", "items": { "type": "string", "default": "" }, "x-kubernetes-list-type": "set" } } }, "v1beta1.GraphConfig": { "description": "GraphConfig contains a config of DAG", "type": "object", "properties": { "inputSizes": { "type": "array", "items": { "type": "integer", "format": "int32", "default": 0 }, "x-kubernetes-list-type": "set" }, "numLayers": { "type": "integer", "format": "int32" }, "outputSizes": { "type": "array", "items": { "type": "integer", "format": "int32", "default": 0 }, "x-kubernetes-list-type": "set" } } }, "v1beta1.Metric": { "type": "object", "properties": { "latest": { "type": "string" }, "max": { "type": "string" }, "min": { "type": "string" }, "name": { "type": "string" } } }, "v1beta1.MetricStrategy": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string" } } }, "v1beta1.MetricsCollectorSpec": { "type": "object", "properties": { "collector": { "$ref": "#/definitions/v1beta1.CollectorSpec" }, "source": { "$ref": "#/definitions/v1beta1.SourceSpec" } } }, "v1beta1.NasConfig": { "description": "NasConfig contains config for NAS job", "type": "object", "properties": { "graphConfig": { "default": {}, "$ref": "#/definitions/v1beta1.GraphConfig" }, "operations": { "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.Operation" }, "x-kubernetes-list-map-keys": [ "operationType" ], "x-kubernetes-list-type": "map" } } }, "v1beta1.ObjectiveSpec": { "description": "ObjectiveSpec represents Experiment's objective specification.", "type": "object", "properties": { "additionalMetricNames": { "description": "AdditionalMetricNames represents metrics that should be collected from Trials. This can be empty if we only care about the objective metric. Note: If we adopt a push instead of pull mechanism, this can be omitted completely.", "type": "array", "items": { "type": "string", "default": "" }, "x-kubernetes-list-type": "set" }, "goal": { "description": "Goal is the Experiment's objective goal that should be reached. In case of empty goal, Experiment is running until MaxTrialCount = TrialsSucceeded.", "type": "number", "format": "double" }, "metricStrategies": { "description": "MetricStrategies defines various rules (min, max or latest) to extract metrics values. This field is allowed to missing, experiment defaulter (webhook) will fill it.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.MetricStrategy" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" }, "objectiveMetricName": { "description": "ObjectiveMetricName represents primary Experiment's metric to optimize.", "type": "string" }, "type": { "description": "Type for Experiment optimization.", "type": "string" } } }, "v1beta1.Observation": { "type": "object", "properties": { "metrics": { "description": "Key-value pairs for metric names and values", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.Metric" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" } } }, "v1beta1.Operation": { "description": "Operation contains type of operation in DAG", "type": "object", "properties": { "operationType": { "type": "string" }, "parameters": { "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.ParameterSpec" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" } } }, "v1beta1.OptimalTrial": { "description": "OptimalTrial is the metrics and assignments of the best trial.", "type": "object", "properties": { "bestTrialName": { "description": "BestTrialName is the name of the best trial.", "type": "string" }, "observation": { "description": "Observation for this trial", "default": {}, "$ref": "#/definitions/v1beta1.Observation" }, "parameterAssignments": { "description": "Key-value pairs for hyperparameters and assignment values.", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.ParameterAssignment" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" } } }, "v1beta1.ParameterAssignment": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string" } } }, "v1beta1.ParameterSpec": { "type": "object", "properties": { "feasibleSpace": { "default": {}, "$ref": "#/definitions/v1beta1.FeasibleSpace" }, "name": { "type": "string" }, "parameterType": { "type": "string" } } }, "v1beta1.SourceSpec": { "type": "object", "properties": { "fileSystemPath": { "description": "During training model, metrics may be persisted into local file in source code, such as tfEvent use case", "$ref": "#/definitions/v1beta1.FileSystemPath" }, "filter": { "description": "Default metric output format is {\"metric\": \"\u003cmetric_name\u003e\", \"value\": \u003cint_or_float\u003e, \"epoch\": \u003cint\u003e, \"step\": \u003cint\u003e}, but if the output doesn't follow default format, please extend it here", "$ref": "#/definitions/v1beta1.FilterSpec" }, "httpGet": { "description": "Model-train source code can expose metrics by http, such as HTTP endpoint in prometheus metric format", "$ref": "#/definitions/v1.HTTPGetAction" } } }, "v1beta1.TrialParameterSpec": { "description": "TrialParameterSpec describes parameters that must be replaced in trial template", "type": "object", "properties": { "description": { "description": "Description of the parameter", "type": "string" }, "name": { "description": "Name of the parameter that must be replaced in trial template", "type": "string" }, "reference": { "description": "Reference to the parameter in search space", "type": "string" } } }, "v1beta1.TrialSource": { "description": "TrialSource represent the source for trial template Only one source can be specified", "type": "object", "properties": { "configMap": { "description": "ConfigMap spec represents a reference to ConfigMap", "$ref": "#/definitions/v1beta1.ConfigMapSource" }, "trialSpec": { "description": "TrialSpec represents trial template in unstructured format", "$ref": "#/definitions/v1.unstructured.Unstructured" } } }, "v1beta1.TrialTemplate": { "description": "TrialTemplate describes structure of trial template", "type": "object", "properties": { "configMap": { "description": "ConfigMap spec represents a reference to ConfigMap", "$ref": "#/definitions/v1beta1.ConfigMapSource" }, "failureCondition": { "description": "Condition when trial custom resource is failed. Condition must be in GJSON format, ref https://github.com/tidwall/gjson. For example for BatchJob: status.conditions.#(type==\"Failed\")#|#(status==\"True\")#", "type": "string" }, "primaryContainerName": { "description": "Name of training container where actual model training is running", "type": "string" }, "primaryPodLabels": { "description": "Labels that determines if pod needs to be injected by Katib sidecar container. If PrimaryPodLabels is omitted, metrics collector wraps all Trial's pods.", "type": "object", "additionalProperties": { "type": "string", "default": "" } }, "retain": { "description": "Retain indicates that trial resources must be not cleanup", "type": "boolean" }, "successCondition": { "description": "Condition when trial custom resource is succeeded. Condition must be in GJSON format, ref https://github.com/tidwall/gjson. For example for BatchJob: status.conditions.#(type==\"Complete\")#|#(status==\"True\")#", "type": "string" }, "trialParameters": { "description": "List of parameters that are used in trial template", "type": "array", "items": { "default": {}, "$ref": "#/definitions/v1beta1.TrialParameterSpec" }, "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" }, "trialSpec": { "description": "TrialSpec represents trial template in unstructured format", "$ref": "#/definitions/v1.unstructured.Unstructured" } } } } }