github.com/thetreep/go-swagger@v0.0.0-20240223100711-35af64f14f01/fixtures/enhancements/2444/fixture-2244.yaml (about) 1 swagger: "2.0" 2 info: 3 title: "minProperties and maxProperties validations" 4 version: "0.0.1" 5 paths: 6 "/": 7 post: 8 tags: 9 - hotspot 10 summary: Create a Hotspot 11 operationId: "CreateHotspot" 12 consumes: 13 - application/json 14 produces: 15 - application/json 16 parameters: 17 - in: body 18 name: Hotspot 19 required: false 20 schema: 21 $ref: '#/definitions/hasMinProperties' 22 responses: 23 201: 24 description: Hotspot created. 25 schema: 26 $ref: '#/definitions/hasMaxProperties' 27 400: 28 description: Bad request. 29 schema: 30 $ref: '#/definitions/hasMinMaxProperties' 31 422: 32 description: Unprocessable entity 33 schema: 34 $ref: '#/definitions/mapWithMinMaxProperties' 35 500: 36 description: Unexpected error. 37 schema: 38 $ref: '#/definitions/mapOfIntegersWithMinMaxProperties' 39 502: 40 description: Unexpected error. 41 schema: 42 $ref: '#/definitions/arrayItemsWithMinMaxProperties' 43 44 "/embedded": 45 get: 46 tags: 47 - embedded 48 responses: 49 201: 50 description: minmax 51 schema: 52 type: object 53 additionalProperties: true 54 minProperties: 5 55 maxProperties: 10 56 57 definitions: 58 hasMinProperties: 59 properties: 60 a: 61 type: string 62 minLength: 10 63 additionalProperties: true 64 minProperties: 2 65 66 hasMaxProperties: 67 properties: 68 b: 69 type: string 70 additionalProperties: true 71 maxProperties: 2 72 73 hasMinMaxProperties: 74 properties: 75 c: 76 type: string 77 additionalProperties: true 78 minProperties: 3 79 maxProperties: 5 80 81 mapWithMinMaxProperties: 82 type: object 83 additionalProperties: true 84 minProperties: 3 85 maxProperties: 5 86 87 untypedWithMinMaxProperties: 88 additionalProperties: true 89 minProperties: 3 90 maxProperties: 5 91 92 mapOfIntegersWithMinMaxProperties: 93 type: object 94 minProperties: 3 95 maxProperties: 5 96 additionalProperties: 97 type: integer 98 99 nestedMap: 100 type: object 101 minProperties: 3 102 maxProperties: 5 103 additionalProperties: # <- TODO: doesn't work 104 type: object 105 additionalProperties: true 106 minProperties: 4 107 maxProperties: 6 108 109 deeperNestedMap: 110 type: object 111 minProperties: 3 112 maxProperties: 5 113 additionalProperties: # <- TODO: doesn't work 114 type: object 115 additionalProperties: 116 type: object 117 additionalProperties: true 118 minProperties: 5 119 maxProperties: 7 120 minProperties: 4 121 maxProperties: 6 122 123 arrayItemsWithMinMaxProperties: 124 type: array 125 items: 126 minProperties: 3 127 maxProperties: 5 128 129 mapOfObjectsWithMinMaxProperties: 130 type: object 131 minProperties: 3 132 maxProperties: 5 133 additionalProperties: 134 $ref: '#/definitions/hasMaxProperties' 135 136 mapOfArraysWithMinMaxProperties: 137 type: object 138 minProperties: 3 139 maxProperties: 5 140 additionalProperties: 141 type: array 142 items: 143 $ref: '#/definitions/hasMaxProperties' 144 145 objectWithMinMaxProperties: 146 type: object 147 required: [b] 148 properties: 149 id: 150 type: string 151 format: uuid 152 b: 153 type: string 154 minLength: 5 155 minProperties: 3 156 maxProperties: 5 157 additionalProperties: 158 $ref: '#/definitions/hasMaxProperties' 159 160 allOfWithMinMaxProperties: 161 allOf: 162 - type: object 163 minProperties: 3 164 maxProperties: 5 165 properties: 166 uid: 167 type: string 168 format: uuid 169 additionalProperties: 170 type: integer 171 format: uint32 172 maximum: 100 173 174 - type: object 175 properties: 176 c: 177 type: string 178 format: date 179 # The following definitions don't work properly (generate interface{}) 180 #allOfWithValidationOnly: 181 # allOf: 182 # - type: object 183 # additionalProperties: true 184 # - minProperties: 1 185 #allOfObjectWithValidationOnly: 186 # allOf: 187 # - type: object 188 # properties: 189 # a: 190 # type: string 191 # additionalProperties: true 192 # - minProperties: 1