option app_label = "kubernetes";
option name = "kubernetes";

message KubernetesService (Service){
    option verbose_name = "Kubernetes Service";

}

message KubernetesResourceInstance (ServiceInstance){
     option verbose_name = "Kubernetes Resource Instance";
     option description = "An opaque-to-xos blob of yaml that is passed directly to kubectl";

     optional string resource_definition = 3 [
         help_text = "yaml containing kubernetes resources",
         max_length = 65535];
     optional string kubectl_state = 4 [
         help_text = "Most recent kubectl action completed by synchronizer",
         choices = "(('created', 'CREATED'), ('updated', 'UPDATED'), ('deleted', 'DELETED'))",
         feedback_state = True,
         max_length = 32];
}

message KubernetesServiceInstance (ComputeServiceInstance){
     option verbose_name = "Kubernetes Service Instance";
     option description = "A ComputeServiceInstance in kubernetes, usually in the form of a pod";

     optional string pod_ip = 1 [
         help_text = "IP address of pod",
         max_length=32];
     required bool need_event = 2 [
         help_text = "True if a kafka event needs to be sent by the pull step",
         default = False];
     optional string last_event_sent = 3 [
         help_text = "Type of last event sent",
         choices = "(('created', 'CREATED'), ('updated', 'UPDATED'), ('deleted', 'DELETED'))",
         max_length=32];
}

message KubernetesData (XOSBase) {
    option description = "Base class for Kubernetes ConfigMaps, Secrets, and similar models";

    required string name = 1 [
        help_text = "Name of this data store",
        max_length=256];
    optional string data = 2 [
        help_text = "Set of key,value pairs encoded as a json dictionary"];
    required manytoone trust_domain->TrustDomain:kubernetes_configmaps = 3:1003 [
        help_text = "Trust domain this data resides in",
        db_index = True];
}

message KubernetesConfigMap (KubernetesData) {
    option description = "A Kubernetes ConfigMap, holding (name, value) data in insecure manner";
}

message KubernetesSecret (KubernetesData) {
    option description = "A kubernetes Secret, hodling (name, value) data in a secure manner";
}

message KubernetesSecretVolumeMount (XOSBase) {
    option description = "Mounts a KubernetesSecret to a KubernetesServiceInstance";

    required manytoone secret->KubernetesSecret:kubernetes_secret_volume_mounts = 1:1001 [
        help_text = "Secret to mount",
        db_index = True];
    required manytoone service_instance->KubernetesServiceInstance:kubernetes_secret_volume_mounts = 2 [
        help_text = "Service instance in which to mount secret",
        db_index = True];
    required string mount_path = 3 [
        help_text = "Path to mount secret",
        max_length=1024];
    optional string sub_path = 4 [
        help_text = "Subpath within secret to mount",
        max_length=1024];
}

message KubernetesConfigVolumeMount (XOSBase) {
    option description = "Mounts a KubernetesConfigMap to a KubernetesServiceInstance";

    required manytoone config->KubernetesConfigMap:kubernetes_config_voume_mounts = 1:1001 [
        help_text = "Config to mount",
        db_index = True];
    required manytoone service_instance->KubernetesServiceInstance:kubernetes_config_volume_mounts = 2:1001 [
        help_text = "Service instance in which to mount config",
        db_index = True];
    required string mount_path = 3 [
        help_text = "Path to mount secret",
        max_length=1024];
    optional string sub_path = 4 [
        help_text = "Subpath within secret to mount",
        max_length=1024];
}

