summaryrefslogtreecommitdiffstats
path: root/src/orchestrator/json-schemas/generic-placement-intent-app.json
blob: 0b6447c2070a33c8a594efc5cced5b6345c6584d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
{
  "$schema": "http://json-schema.org/schema#",
  "type": "object",
  "properties": {
    "spec": {
      "properties": {
          "app-name": {
            "type": "string",
            "example": "appl",
            "maxLength": 128
          },
          "anyOf": {
            "items": {
              "type": "object",
              "description": "AnyOf consists of Array of ProviderName & ClusterLabelNames",
              "properties": {
                "cluster-label-name": {
                  "type": "string",
                  "example": "east",
                  "maxLength": 128
                },
                "provider-name": {
                  "type": "string",
                  "example": "provider1",
                  "maxLength": 128
                },
                "cluster-name": {
                  "type": "string",
                  "example": "cluster1",
                  "maxLength": 128
                }
              }
            },
            "type": "array"
          },
          "allOf": {
            "items": {
              "type": "object",
              "description": "AllOf ProviderName, ClusterName, ClusterLabelName and AnyOfArray",
              "properties": {
                "provider-name": {
                  "type": "string",
                  "example": "provider2",
                  "maxLength": 128
                },
                "cluster-label-name": {
                  "type": "string",
                  "example": "west",
                  "maxLength": 128
                },
                "anyOf": {
                  "items": {
                    "type": "object",
                    "description": "AnyOf consists of Array of ProviderName & ClusterLabelNames",
                    "properties": {
                      "cluster-label-name": {
                        "type": "string",
                        "example": "east",
                        "maxLength": 128
                      },
                      "provider-name": {
                        "type": "string",
                        "example": "provider1",
                        "maxLength": 128
                      },
                      "cluster-name": {
                        "type": "string",
                        "example": "cluster1",
                        "maxLength": 128
                      }
                    }
                  },
                  "type": "array"
                },
                "cluster-name": {
                  "type": "string",
                  "example": "cluster2",
                  "maxLength": 128
                }
              }
            },
            "type": "array"
          }
        }
    },
    "metadata": {
      "required": ["name"],
      "properties": {
        "userData2": {
          "description": "User relevant data for the resource",
          "type": "string",
          "example": "Some more data",
          "maxLength": 512
        },
        "userData1": {
          "description": "User relevant data for the resource",
          "type": "string",
          "example": "Some data",
          "maxLength": 512
        },
        "name": {
          "description": "Name of the resource",
          "type": "string",
          "example": "ResName",
          "maxLength": 128,
          "pattern": "[-_0-9a-zA-Z]+$"
        },
        "description": {
          "description": "Description for the resource",
          "type": "string",
          "example": "Resource description",
          "maxLength": 1024
        }
      }
    }
  }
}