github.com/solo-io/cue@v0.4.7/encoding/openapi/testdata/oneof-resolve.json (about)

     1  {
     2     "openapi": "3.0.0",
     3     "info": {
     4        "title": "test",
     5        "version": "v1"
     6     },
     7     "paths": {},
     8     "components": {
     9        "schemas": {
    10           "Embed": {
    11              "type": "object",
    12              "properties": {
    13                 "a": {
    14                    "type": "integer"
    15                 },
    16                 "d": {
    17                    "type": "object",
    18                    "properties": {
    19                       "b": {
    20                          "type": "integer"
    21                       }
    22                    }
    23                 },
    24                 "e": {
    25                    "type": "integer"
    26                 },
    27                 "b": {
    28                    "type": "object",
    29                    "properties": {
    30                       "b": {
    31                          "type": "integer"
    32                       }
    33                    }
    34                 },
    35                 "c": {
    36                    "type": "integer"
    37                 }
    38              },
    39              "allOf": [
    40                 {
    41                    "oneOf": [
    42                       {
    43                          "not": {
    44                             "anyOf": [
    45                                {
    46                                   "required": [
    47                                      "b"
    48                                   ]
    49                                },
    50                                {
    51                                   "required": [
    52                                      "c"
    53                                   ]
    54                                }
    55                             ]
    56                          }
    57                       },
    58                       {
    59                          "required": [
    60                             "b"
    61                          ]
    62                       },
    63                       {
    64                          "required": [
    65                             "c"
    66                          ]
    67                       }
    68                    ]
    69                 },
    70                 {
    71                    "oneOf": [
    72                       {
    73                          "not": {
    74                             "anyOf": [
    75                                {
    76                                   "required": [
    77                                      "d"
    78                                   ]
    79                                },
    80                                {
    81                                   "required": [
    82                                      "e"
    83                                   ]
    84                                }
    85                             ]
    86                          }
    87                       },
    88                       {
    89                          "required": [
    90                             "d"
    91                          ]
    92                       },
    93                       {
    94                          "required": [
    95                             "e"
    96                          ]
    97                       }
    98                    ]
    99                 }
   100              ]
   101           },
   102           "Embed.T": {
   103              "type": "object",
   104              "properties": {
   105                 "b": {
   106                    "type": "integer"
   107                 }
   108              }
   109           },
   110           "Foo": {
   111              "type": "object",
   112              "required": [
   113                 "include",
   114                 "exclude",
   115                 "count"
   116              ],
   117              "properties": {
   118                 "include": {
   119                    "type": "object",
   120                    "properties": {
   121                       "shared": {
   122                          "type": "integer"
   123                       },
   124                       "shared2": {
   125                          "type": "integer"
   126                       },
   127                       "count": {
   128                          "type": "integer"
   129                       },
   130                       "amount": {
   131                          "type": "integer"
   132                       },
   133                       "exact": {
   134                          "type": "string"
   135                       },
   136                       "regex": {
   137                          "type": "string"
   138                       }
   139                    },
   140                    "allOf": [
   141                       {
   142                          "required": [
   143                             "shared"
   144                          ],
   145                          "oneOf": [
   146                             {
   147                                "not": {
   148                                   "anyOf": [
   149                                      {
   150                                         "required": [
   151                                            "exact"
   152                                         ]
   153                                      },
   154                                      {
   155                                         "required": [
   156                                            "regex"
   157                                         ]
   158                                      }
   159                                   ]
   160                                }
   161                             },
   162                             {
   163                                "required": [
   164                                   "exact"
   165                                ]
   166                             },
   167                             {
   168                                "required": [
   169                                   "regex"
   170                                ]
   171                             }
   172                          ]
   173                       },
   174                       {
   175                          "oneOf": [
   176                             {
   177                                "not": {
   178                                   "anyOf": [
   179                                      {
   180                                         "required": [
   181                                            "count"
   182                                         ]
   183                                      },
   184                                      {
   185                                         "required": [
   186                                            "amount"
   187                                         ]
   188                                      }
   189                                   ]
   190                                }
   191                             },
   192                             {
   193                                "required": [
   194                                   "count"
   195                                ]
   196                             },
   197                             {
   198                                "required": [
   199                                   "amount"
   200                                ]
   201                             }
   202                          ],
   203                          "required": [
   204                             "shared2"
   205                          ]
   206                       }
   207                    ]
   208                 },
   209                 "exclude": {
   210                    "type": "array",
   211                    "items": {
   212                       "type": "object",
   213                       "properties": {
   214                          "shared": {
   215                             "type": "integer"
   216                          },
   217                          "shared2": {
   218                             "type": "integer"
   219                          },
   220                          "count": {
   221                             "type": "integer"
   222                          },
   223                          "amount": {
   224                             "type": "integer"
   225                          },
   226                          "exact": {
   227                             "type": "string"
   228                          },
   229                          "regex": {
   230                             "type": "string"
   231                          }
   232                       },
   233                       "allOf": [
   234                          {
   235                             "required": [
   236                                "shared"
   237                             ],
   238                             "oneOf": [
   239                                {
   240                                   "not": {
   241                                      "anyOf": [
   242                                         {
   243                                            "required": [
   244                                               "exact"
   245                                            ]
   246                                         },
   247                                         {
   248                                            "required": [
   249                                               "regex"
   250                                            ]
   251                                         }
   252                                      ]
   253                                   }
   254                                },
   255                                {
   256                                   "required": [
   257                                      "exact"
   258                                   ]
   259                                },
   260                                {
   261                                   "required": [
   262                                      "regex"
   263                                   ]
   264                                }
   265                             ]
   266                          },
   267                          {
   268                             "oneOf": [
   269                                {
   270                                   "not": {
   271                                      "anyOf": [
   272                                         {
   273                                            "required": [
   274                                               "count"
   275                                            ]
   276                                         },
   277                                         {
   278                                            "required": [
   279                                               "amount"
   280                                            ]
   281                                         }
   282                                      ]
   283                                   }
   284                                },
   285                                {
   286                                   "required": [
   287                                      "count"
   288                                   ]
   289                                },
   290                                {
   291                                   "required": [
   292                                      "amount"
   293                                   ]
   294                                }
   295                             ],
   296                             "required": [
   297                                "shared2"
   298                             ]
   299                          }
   300                       ]
   301                    }
   302                 },
   303                 "count": {
   304                    "type": "integer"
   305                 }
   306              }
   307           },
   308           "Incompatible": {
   309              "type": "object",
   310              "properties": {
   311                 "shared": {
   312                    "type": "integer"
   313                 },
   314                 "extra1": {
   315                    "type": "integer"
   316                 },
   317                 "extra2": {
   318                    "type": "integer"
   319                 }
   320              },
   321              "oneOf": [
   322                 {
   323                    "allOf": [
   324                       {
   325                          "required": [
   326                             "shared"
   327                          ]
   328                       },
   329                       {
   330                          "not": {
   331                             "anyOf": [
   332                                {
   333                                   "required": [
   334                                      "shared",
   335                                      "extra1"
   336                                   ]
   337                                },
   338                                {
   339                                   "required": [
   340                                      "shared",
   341                                      "extra2"
   342                                   ]
   343                                }
   344                             ]
   345                          }
   346                       }
   347                    ]
   348                 },
   349                 {
   350                    "required": [
   351                       "shared",
   352                       "extra1"
   353                    ]
   354                 },
   355                 {
   356                    "required": [
   357                       "shared",
   358                       "extra2"
   359                    ]
   360                 }
   361              ]
   362           },
   363           "MyInt": {
   364              "type": "integer"
   365           },
   366           "T": {
   367              "description": "This should be dedupped.",
   368              "type": "object",
   369              "properties": {
   370                 "shared": {
   371                    "type": "integer"
   372                 },
   373                 "shared2": {
   374                    "type": "integer"
   375                 },
   376                 "count": {
   377                    "type": "integer"
   378                 },
   379                 "amount": {
   380                    "type": "integer"
   381                 },
   382                 "exact": {
   383                    "type": "string"
   384                 },
   385                 "regex": {
   386                    "type": "string"
   387                 }
   388              },
   389              "allOf": [
   390                 {
   391                    "required": [
   392                       "shared"
   393                    ],
   394                    "oneOf": [
   395                       {
   396                          "not": {
   397                             "anyOf": [
   398                                {
   399                                   "required": [
   400                                      "exact"
   401                                   ]
   402                                },
   403                                {
   404                                   "required": [
   405                                      "regex"
   406                                   ]
   407                                }
   408                             ]
   409                          }
   410                       },
   411                       {
   412                          "required": [
   413                             "exact"
   414                          ]
   415                       },
   416                       {
   417                          "required": [
   418                             "regex"
   419                          ]
   420                       }
   421                    ]
   422                 },
   423                 {
   424                    "oneOf": [
   425                       {
   426                          "not": {
   427                             "anyOf": [
   428                                {
   429                                   "required": [
   430                                      "count"
   431                                   ]
   432                                },
   433                                {
   434                                   "required": [
   435                                      "amount"
   436                                   ]
   437                                }
   438                             ]
   439                          }
   440                       },
   441                       {
   442                          "required": [
   443                             "count"
   444                          ]
   445                       },
   446                       {
   447                          "required": [
   448                             "amount"
   449                          ]
   450                       }
   451                    ],
   452                    "required": [
   453                       "shared2"
   454                    ]
   455                 }
   456              ]
   457           },
   458           "WithMap": {
   459              "type": "object",
   460              "properties": {
   461                 "shared": {},
   462                 "extra": {
   463                    "type": "integer"
   464                 }
   465              },
   466              "oneOf": [
   467                 {
   468                    "allOf": [
   469                       {
   470                          "required": [
   471                             "shared"
   472                          ]
   473                       },
   474                       {
   475                          "not": {
   476                             "anyOf": [
   477                                {
   478                                   "required": [
   479                                      "shared",
   480                                      "extra"
   481                                   ]
   482                                }
   483                             ]
   484                          }
   485                       }
   486                    ]
   487                 },
   488                 {
   489                    "allOf": [
   490                       {
   491                          "required": [
   492                             "shared",
   493                             "extra"
   494                          ]
   495                       },
   496                       {
   497                          "not": {
   498                             "anyOf": [
   499                                {
   500                                   "required": [
   501                                      "shared"
   502                                   ]
   503                                }
   504                             ]
   505                          }
   506                       }
   507                    ]
   508                 },
   509                 {
   510                    "required": [
   511                       "shared",
   512                       "extra"
   513                    ]
   514                 }
   515              ]
   516           }
   517        }
   518     }
   519  }