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",
        db_index = False,
        max_length = 254];
    optional string service_secret = 2 [
        help_text = "Service Secret to place in a file",
        db_index = False];
}

// 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",
         db_index = False,
         max_length = 256];
     required string html_code = 2 [
         help_text = "HTML Code for this color",
         db_index = False,
         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",
        blank=True,
        db_index=True,
        null=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",
         db_index = False,
         max_length = 254];
     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",
         db_index = False];
}

// 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",
         db_index = False,
         max_length = 256];
     required string url = 2 [
         help_text = "URL for this image",
         db_index = False,
         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];
}
