// Copyright 2016 The Kubernetes Authors All rights reserved.
//
// 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.

syntax = "proto3";

package hapi.chart;

option go_package = "chart";

// Maintainer describes a Chart maintainer.
message Maintainer {
	// Name is a user name or organization name
	string name = 1;

	// Email is an optional email address to contact the named maintainer
	string email = 2;
}

// Dependency describes this chart's dependency on another chart.
message Dependency {
	// Name is the name of the dependency, e.g. 'nginx'
	string name = 1;

	// Repository is the repository URL. Appending '/index.yaml' to this should
	// return the repo index.
	string repository = 2;

	// Version is a SemVer 2 version.
	string version = 3;
}

//	Metadata for a Chart file. This models the structure of a Chart.yaml file.
//
// 	Spec: https://k8s.io/helm/blob/master/docs/design/chart_format.md#the-chart-file
message Metadata {
	enum Engine {
		UNKNOWN = 0;
		GOTPL = 1;
	}
	// The name of the chart
	string name = 1;

	// The URL to a relevant project page, git repo, or contact person
	string home = 2;

	// Source is the URL to the source code of this chart
	repeated string sources = 3;

	// A SemVer 2 conformant version string of the chart
	string version = 4;

	// A one-sentence description of the chart
	string description = 5;

	// A list of string keywords
	repeated string keywords = 6;

	// A list of name and URL/email address combinations for the maintainer(s)
	repeated Maintainer maintainers = 7;

	// The name of the template engine to use. Defaults to 'gotpl'.
	string engine = 8;

	// The URL to an icon file.
	string icon = 9;

	repeated Dependency dependencies = 10;
}