...

Text file src/cuelang.org/go/encoding/openapi/testdata/oneof-resolve.json

Documentation: cuelang.org/go/encoding/openapi/testdata

     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}

View as plain text