blob: c9e867cd9bce1b1450c4c3ce93d45ae1e8fa9237 [file] [log] [blame]
/*
* Copyright 2018 The Kythe 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 kythe.proto;
option go_package = "extraction_config_go_proto";
// Represents configuration data necessary to construct an extraction image.
// Dockerfile reference: https://docs.docker.com/engine/reference/builder/
message ExtractionConfiguration {
// A list of the required images to be included in
// the composite extraction image.
repeated Image required_image = 1;
// A list of the custom docker RUN commands to be executed during construction
// of the composite extraction image. These can be used to install required
// SDKs which have no existing base image.
repeated RunCommand run_command = 2;
// A list of parameters to configure as the entry point for the image. This
// is specific to build system images, only the last entry point in an image
// will be observed.
repeated string entry_point = 3;
// Represents the information required for utilizing an image to be composed
// into a composite extraction image. The data within this message will be
// utilized as follows:
// FROM <image_uri> as <image_name>
// # repeated:
// COPY <image_copy_artifact.source> <image_copy_artifact.dest>
message Image {
// the image's URI to be utilized in the docker FROM command.
string uri = 1;
// A human readable name for the image, should be unique within the
// composite image and distinct from the uri.
string name = 2;
// A list of copy specs to be utilize in the docker COPY command.
repeated CopySpec copy_spec = 3;
// A list of environment variables to be setup in concert with this
// image.
repeated EnvVar env_var = 4;
}
// Represents information required for copying resources from images to
// composite images.
message CopySpec {
// The path to the source resource to be copied.
string source = 1;
// The destination path for the resource on the composite image.
// If not specified assumed same as source.
string destination = 2;
}
// Represents an image's corresonding environment variable to be incorporated
// into the composite image. The data within this message will be utilized as
// follows: ENV <name> <value>
message EnvVar {
string name = 1;
string value = 2;
}
// Represents an image's corresponding run command to be incorporated into the
// composite image. The data within this message will be utilized as follows:
// RUN <command> "<arg[0]>" "<arg[1]>" ...
message RunCommand {
string command = 1;
repeated string arg = 2;
}
}