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",
        blank = False,
        db_index = False,
        max_length = 254,
        null = False];
    optional string service_secret = 2 [
        help_text = "Service Secret to place in a file",
        blank = True,
        db_index = False,
        null = 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",
         blank = False,
         db_index = False,
         max_length = 256,
         null = False];
     required string html_code = 2 [
         help_text = "HTML Code for this color",
         blank = False,
         db_index = False,
         max_length = 256,
         null = False];
}

// 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",
         blank = False,
         db_index = False,
         max_length = 254,
         null = False];
     optional manytoone foreground_color->ColorNew:serviceinstance_foreground_colors = 2:1001 [
         help_text = "Foreground color to use in web page",
         db_index = True,
         null = True,
         blank = True];
     optional manytoone background_color->ColorNew:serviceinstance_background_colors = 3:1002 [
         help_text = "Background color to use in web page",
         blank = True,
         db_index = True,
         null = True];
     optional string tenant_secret = 4 [
         help_text = "Tenant Secret to place in a file",
         blank = True,
         db_index = False,
         null = 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",
         blank = False,
         db_index = False,
         max_length = 256,
         null = False];
     required string url = 2 [
         help_text = "URL for this image",
         blank = False,
         db_index = False,
         max_length = 256,
         null = False];
     optional manytoone serviceinstance->SimpleExampleServiceInstance:embedded_images = 3:1001 [
         help_text = "ServiceInstance that represents the web page where this embedded image should be placed",
         blank = True,
         db_index = True,
         null = True];
}
