option app_label = "simpleexampleservice";
option name = "simpleexampleservice";

message SimpleExampleService (Service){
    option verbose_name = "Simple Example Service";
    option description = "Service that demonstrates integration with Kubernetes compute resources";

    required string service_message = 1 [
        help_text = "Service Message to display in web page",
        max_length = 256];
    optional string service_secret = 2 [
        help_text = "Service Secret to place in a file",
        text = True];
}

// Note: Named ColorNew to prevent name collision with ExampleService's Color.

message ColorNew (XOSBase){
     option verbose_name = "Color";
     option description = "An html color code that may be used to color a web page";

     required string name = 1 [
         help_text = "Name for this color",
         max_length = 256];
     required string html_code = 2 [
         help_text = "HTML Code for this color",
         max_length = 256];
}

// Note: Named ServiceInstanceWithCompute2 to prevent name collision with ExampleService.ServiceInstanceWithCompute.
//       Expect this model to eventually move to the core.

message ServiceInstanceWithCompute2 (ServiceInstance) {
    option description = "ServiceInstance with relation to a ComputeServiceInstance";

    optional manytoone compute_instance->ComputeServiceInstance:service_instance_with_computes = 1:1001 [
        help_text = "ComputeServiceInstance that holds compute resources for this ServiceInstance",
        db_index=True];
}

message SimpleExampleServiceInstance (ServiceInstanceWithCompute2){
     option verbose_name = "Example Service Instance";
     option description = "Tenancy in SimpleExampleService, represents a web server that serves one page";

     required string tenant_message = 1 [
         help_text = "Tenant Message to Display",
         max_length = 256];
     optional manytoone foreground_color->ColorNew:serviceinstance_foreground_colors = 2:1001 [
         help_text = "Foreground color to use in web page",
         db_index = True];
     optional manytoone background_color->ColorNew:serviceinstance_background_colors = 3:1002 [
         help_text = "Background color to use in web page",
         db_index = True];
     optional string tenant_secret = 4 [
         help_text = "Tenant Secret to place in a file",
         text = True];
}

// Note: Named EmbeddedImageNew to prevent name collision with ExampleService's EmbeddedImage.

message EmbeddedImageNew (XOSBase){
     option verbose_name = "Embedded Image";
     option description = "An embedded image that may be placed in a web page";

     required string name = 1 [
         help_text = "Name for this image",
         max_length = 256];
     required string url = 2 [
         help_text = "URL for this image",
         max_length = 256];
     optional manytoone serviceinstance->SimpleExampleServiceInstance:embedded_images = 3:1001 [
         help_text = "ServiceInstance that represents the web page where this embedded image should be placed",
         db_index = True];
}
