...

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

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

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

View as plain text