I ran the schema through the online editor and there are issues. I based my
definition on
https://github.com/OAI/OpenAPI-Specification/blob/master/examples/v2.0/yaml/petstore-expanded.yaml,
can anyone provide insights into what the below error means? I have a bunch
of those. For example network_record is defined under #definitions
Thanks
Amar
Schema error at paths./networks/{network_id}.get.responses[200]is not
exactly one from <#/definitions/response>,<#/definitions/jsonReference>
---
swagger: "2.0"
info:
title: Magma
description: Magma REST APIs
version: 1.1.2
basePath: /magma
consumes:
- application/json
produces:
- application/json
schemes:
- http
- https
tags:
- name: Networks
description: Everything about networks
- name: Gateways
description: Provision and manage gateways
- name: Subscribers
description: Operations about subscribers
paths:
/networks:
get:
summary: List all networks
tags:
- Networks
responses:
200:
description: List of network ids
schema:
type: array
items:
$ref: '#/definitions/network_id'
default:
$ref: "#/responses/UnexpectedError"
post:
summary: Add a new network
tags:
- Networks
parameters:
- in: body
name: network_record
description: Network object that needs to be added
required: true
schema:
$ref: '#/definitions/network_record'
responses:
201:
description: Success
default:
$ref: "#/responses/UnexpectedError"
/networks/{network_id}:
get:
summary: Retrieve Network Configs
tags:
- Networks
parameters:
- in: path
name: network_id
description: Network ID
required: true
type: string
responses:
"200":
description: Network Configs
name: network_record
schema:
$ref: '#/definitions/network_record'
default:
$ref: "#/responses/UnexpectedError"
put:
summary: Set Network Configs
tags:
- Networks
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
- in: body
name: network_record
description: Network Configs
required: true
schema:
$ref: '#/definitions/network_record'
responses:
200:
description: Success
default:
$ref: "#/responses/UnexpectedError"
delete:
summary: Delete a network
tags:
- Networks
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
responses:
204:
description: Success
default:
$ref: "#/responses/UnexpectedError"
/networks/{network_id}/gateways:
get:
summary: List gateways in the network
tags:
- Gateways
parameters:
- in: path
name: network Id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
responses:
200:
description: List of gateway ids
schema:
type: array
items:
$ref: '#/definitions/gateway_id'
default:
$ref: "#/responses/UnexpectedError"
post:
summary: Add a new gateway to the network
tags:
- Gateways
parameters:
- in: path
name: network Id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
- in: body
name: Gateway Record
description: Gateway Record Of the Gateway to Add
required: true
schema:
$ref: '#/definitions/access_gateway_record'
responses:
201:
description: New Logical ID of the Registered Gateway
name: Logical Gateway ID
schema:
$ref: '#/definitions/gateway_id'
default:
$ref: "#/responses/UnexpectedError"
/networks/{network_id}/gateways/{gateway_id}:
get:
summary: Get Registered Gateway's Record
tags:
- Gateways
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
- in: path
name: gateway_id
description: Gateway ID
required: true
schema:
$ref: '#/definitions/gateway_id'
responses:
200:
description: Gateway Record on Success
name: Gateway Record
schema:
$ref: '#/definitions/access_gateway_record'
default:
$ref: "#/responses/UnexpectedError"
put:
summary: Modify Gateway Record
tags:
- Gateways
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
- in: path
name: gateway_id
description: Gateway ID
required: true
schema:
$ref: '#/definitions/gateway_id'
- in: body
name: MutableGatewayRecord
description: Gateway Configs
required: true
schema:
$ref: '#/definitions/mutable_gateway_record'
responses:
200:
description: Success
default:
$ref: "#/responses/UnexpectedError"
/networks/{network_id}/gateways/{gateway_id}/configs:
get:
summary: Retrieve Gateway Configs
tags:
- Gateways
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
- in: path
name: gateway_id
description: Gateway ID
required: true
schema:
$ref: '#/definitions/gateway_id'
responses:
200:
description: Retreive Gateway Configs
name: gateway_configs
schema:
$ref: '#/definitions/gateway_configs'
default:
$ref: "#/responses/UnexpectedError"
put:
summary: Modify Gateway Configs
tags:
- Gateways
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
- in: path
name: gateway_id
description: Gateway ID
required: true
schema:
$ref: '#/definitions/gateway_id'
- in: body
name: GatewayConfigs
description: Gateway Configs
required: true
schema:
$ref: '#/definitions/gateway_configs'
responses:
200:
description: Success
default:
$ref: "#/responses/UnexpectedError"
/networks/{network_id}/subscribers:
get:
summary: List subscribers in the network
tags:
- Subscribers
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
responses:
200:
description: List of subscriber ids
schema:
type: array
items:
$ref: '#/definitions/subscriber_id'
default:
$ref: "#/responses/UnexpectedError"
post:
summary: Add a new subscriber to the network
tags:
- Subscribers
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
- in: body
name: subscriber
description: Subscriber object that needs to be added
required: true
schema:
$ref: '#/definitions/subscriber'
responses:
201:
description: Success
default:
$ref: "#/responses/UnexpectedError"
/networks/{network_id}/subscribers/{subscriber_id}:
get:
summary: Retrieve the subscriber info
tags:
- Subscribers
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
- in: path
name: subscriber_id
description: Subscriber ID
required: true
schema:
$ref: '#/definitions/subscriber_id'
responses:
200:
description: Subscriber Info
schema:
type: object
items:
$ref: '#/definitions/subscriber'
default:
$ref: "#/responses/UnexpectedError"
put:
summary: Modify subscriber info
tags:
- Subscribers
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
- in: path
name: subscriber_id
description: Subscriber ID
required: true
schema:
$ref: '#/definitions/subscriber_id'
- in: body
name: subscriber
description: Subscriber Info
required: true
schema:
$ref: '#/definitions/subscriber'
responses:
200:
description: Success
default:
$ref: "#/responses/UnexpectedError"
delete:
summary: Remove a subscriber from the network
tags:
- Subscribers
parameters:
- in: path
name: network_id
description: Network ID
required: true
schema:
$ref: '#/definitions/network_id'
- in: path
name: subscriber_id
description: Subscriber ID
required: true
schema:
$ref: '#/definitions/subscriber_id'
responses:
204:
description: Success
default:
$ref: "#/responses/UnexpectedError"
responses:
UnexpectedError:
description: Unexpected Error
schema:
$ref: '#/definitions/error'
definitions:
log_level:
type: integer
format: int32
enum:
- 0
- 1
- 2
- 3
- 4
minimum: 0
maximum: 4
example: 1
network_id:
type: string
minLength: 1
example: "NFHDZAQU8Pyw2N91nbNdGjk5e"
enodebd_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
pci:
type: integer
format: int32
example: 260
earfcndl:
type: integer
format: int32
example: 44590
bandwidth_mhz:
type: integer
format: int32
example: 20
plmnid_list:
type: string
example: "20895"
subframe_assignment:
type: integer
format: int32
example: 2
special_subframe_pattern:
type: integer
format: int32
example: 7
mme_ip:
type: string
x-go-custom-tag: magma_alt_name:"MmeIp"
example: "10.0.2.1"
allow_enodeb_transmit:
type: boolean
example: true
network_enodebd_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
earfcndl:
type: integer
format: int32
example: 44590
bandwidth_mhz:
type: integer
format: int32
example: 20
plmnid_list:
type: string
example: "20895"
subframe_assignment:
type: integer
format: int32
example: 2
special_subframe_pattern:
type: integer
format: int32
example: 7
mme_ip:
type: string
x-go-custom-tag: magma_alt_name:"MmeIp"
example: "10.0.2.1"
mobilityd_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
ip_block:
type: string
minLength: 5
maxLength: 49
x-go-custom-tag: magma_alt_name:"IpBlock"
example: "192.168.16.0/24"
ip_recycle_interval:
type: integer
format: uint32
x-go-custom-tag: magma_alt_name:"IpRecycleInterval"
example: 15
mme_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
mcc:
type: integer
format: int32
example: 208
mnc:
type: integer
format: int32
example: 95
tac:
type: integer
format: int32
example: 1
mme_gid:
type: integer
format: int32
example: 1
mme_code:
type: integer
format: int32
example: 1
network_mme_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
mcc:
type: integer
format: int32
example: 208
mnc:
type: integer
format: int32
example: 95
tac:
type: integer
format: int32
example: 1
mme_gid:
type: integer
format: int32
example: 1
control_proxy_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
cloud_address:
type: string
example: "192.168.80.10"
cloud_port:
type: integer
format: int32
example: 8080
controllerd_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
apps:
type: array
items:
type: string
magmad_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
checkin_interval:
type: integer
format: int32
example: 60
checkin_timeout:
type: integer
format: int32
example: 10
autoupgrade_enabled:
type: boolean
example: true
autoupgrade_poll_interval:
type: integer
format: int32
example: 300
autoupgrade_channel:
type: string
example: "stable"
autoupgrade_available_version:
type: string
example: "100.0.0"
metricsd_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
spgw_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
subscriber_db_config:
type: object
minLength: 1
properties:
log_level:
$ref: '#/definitions/log_level'
lte_auth_op:
type: string
format: byte
example: "EREREREREREREREREREREQ=="
lte_auth_amf:
type: string
format: byte
example: "gAA="
network_record:
type: object
required:
- name
properties:
name:
type: string
minLength: 1
example: "SampleNetwork"
x-nullable: false
enodebd:
$ref: '#/definitions/network_enodebd_config'
mobilityd:
$ref: '#/definitions/mobilityd_config'
mme:
$ref: '#/definitions/network_mme_config'
subscriberdb:
$ref: '#/definitions/subscriber_db_config'
gateway_id:
type: string
minLength: 1
example:
"NFHDZAQU8Pyw2N91nbNdGjk5e.22ffea10-7fc4-4427-975a-b9e4ce8f6f4d"
hw_gateway_id:
type: object
required:
- id
properties:
id:
type: string
minLength: 1
x-nullable: false
x-go-custom-tag: magma_alt_name:"Id"
example: "22ffea10-7fc4-4427-975a-b9e4ce8f6f4d"
mutable_gateway_record:
type: object
properties:
name:
type: string
minLength: 1
example: "SoDoSoPa Tower"
access_gateway_record:
type: object
required:
- hw_id
properties:
hw_id:
$ref: '#/definitions/hw_gateway_id'
x-go-custom-tag: magma_alt_name:"HwId"
name:
type: string
minLength: 1
example: "South Park's CtPa Town Tower"
gateway_configs:
type: object
properties:
control_proxy:
$ref: '#/definitions/control_proxy_config'
enodebd:
$ref: '#/definitions/enodebd_config'
controllerd:
$ref: '#/definitions/controllerd_config'
magmad:
$ref: '#/definitions/magmad_config'
metricsd:
$ref: '#/definitions/metricsd_config'
mobilityd:
$ref: '#/definitions/mobilityd_config'
mme:
$ref: '#/definitions/mme_config'
spgw:
$ref: '#/definitions/spgw_config'
subscriberdb:
$ref: '#/definitions/subscriber_db_config'
error:
type: object
required:
- message
properties:
message:
type: string
example: Error string
subscriber_id:
type: string
pattern: '^(IMSI\d{10,15})$'
example: IMSI208950000000010
subscriber_id_set:
type: array
items:
$ref: '#/definitions/subscriber_id'
lte_subscription:
type: object
properties:
state:
type: string
enum:
- INACTIVE
- ACTIVE
default: INACTIVE
x-nullable: false
auth_algo:
type: string
enum:
- MILENAGE
default: MILENAGE
x-nullable: false
auth_key:
type: string
format: byte
minLength: 32
maxLength: 32
example: "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8="
auth_opc:
type: string
format: byte
minLength: 32
maxLength: 32
example: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
subscriber:
type: object
properties:
id:
$ref: '#/definitions/subscriber_id'
x-nullable: false
x-go-custom-tag: magma_alt_name:"Id"
lte:
$ref: '#/definitions/lte_subscription'
On Wed, May 3, 2017 at 4:58 PM, amar padmanabhan <[email protected]> wrote:
> Cool thanks! Yeah I just posted a snippet of the spec. Let me double
> check, I used the online editor initially.
> - Amar
>
> On Wed, May 3, 2017 at 4:22 PM, Ron Ratovsky <[email protected]> wrote:
>
>> They should be supported by the codegen, yes.
>>
>>
>>
>> However, your spec is not a valid one. I’m not exactly sure what you’re
>> trying to do there because it’s partial, but I recommend you use our online
>> editor to make sure it’s valid is you write it.
>>
>>
>>
>>
>>
>> *From: *<[email protected]> on behalf of amar
>> padmanabhan <[email protected]>
>> *Reply-To: *"[email protected]" <
>> [email protected]>
>> *Date: *Wednesday, 3 May 2017 at 15:25
>> *To: *Swagger <[email protected]>
>> *Subject: *Using RefParameter in param
>>
>>
>>
>> Hi all,
>>
>> I am trying to reuse a definition and added it to the parameters, this
>> causes an issue in the codegen side. Wondering if what I am doing is legal
>> which is to share a definition on the ReusableParam side.
>>
>> Also are ReusableParams supported for CodeGen? Looking at
>> public CodegenParameter fromParameter(Parameter param, Set<String>
>> imports) {
>>
>> it looks like if param instanceof RefParameter is not handled?
>>
>> Thanks
>>
>> Amar
>>
>> /networks/{tenant_network_id}:
>>
>> get:
>>
>> summary: Retrieve Network Configs
>>
>> tags:
>>
>> - Networks
>>
>> parameters:
>>
>> - in: path
>>
>> name: tenant_network_id
>>
>> description: Network ID
>>
>> required: true
>>
>> $ref: '#/definitions/network_id'
>>
>> responses:
>>
>> 200:
>>
>> description: Network Configs
>>
>> name: network_record
>>
>> schema:
>>
>> $ref: '#/definitions/network_record'
>>
>> default:
>>
>> $ref: "#/responses/UnexpectedError"
>>
>>
>>
>>
>>
>> Fails with error:
>>
>> [main] ERROR io.swagger.codegen.Codegen - Could not process operation:
>>
>> Tag: Networks
>>
>> Operation: null
>>
>> Resource: get /networks/{tenant_network_id}
>>
>> Definitions: {log_level=io.swagger.models.ModelImpl@92faeecf,
>> network_id=io.swagger.models.ModelImpl@6b0f60b1,
>> enodebd_config=io.swagger.models.ModelImpl@c36cbf14,
>> network_enodebd_config=io.swagger.models.ModelImpl@e06bf483,
>> mobilityd_config=io.swagger.models.ModelImpl@55d5985,
>> mme_config=io.swagger.models.ModelImpl@87eca79c,
>> network_mme_config=io.swagger.models.ModelImpl@3e1f21d4,
>> control_proxy_config=io.swagger.models.ModelImpl@6c4336ec,
>> controllerd_config=io.swagger.models.ModelImpl@6f0f03de,
>> magmad_config=io.swagger.models.ModelImpl@cc912af0,
>> metricsd_config=io.swagger.models.ModelImpl@7c0d6eb4,
>> spgw_config=io.swagger.models.ModelImpl@7c0d6eb4,
>> subscriber_db_config=io.swagger.models.ModelImpl@f598f277,
>> network_record=io.swagger.models.ModelImpl@7f3c2b8,
>> gateway_id=io.swagger.models.ModelImpl@4d043a45,
>> hw_gateway_id=io.swagger.models.ModelImpl@4ba76cd,
>> mutable_gateway_record=io.swagger.models.ModelImpl@977a9e84,
>> access_gateway_record=io.swagger.models.ModelImpl@1e8b44d8,
>> gateway_configs=io.swagger.models.ModelImpl@e4d24ce1,
>> error=io.swagger.models.ModelImpl@7b1be154,
>> subscriber_id=io.swagger.models.ModelImpl@99b488e7,
>> subscriber_id_set=io.swagger.models.ArrayModel@fddb2387,
>> lte_subscription=io.swagger.models.ModelImpl@113de764,
>> subscriber=io.swagger.models.ModelImpl@b9a94056}
>>
>> Exception: io.swagger.models.parameters.RefParameter cannot be cast to
>> io.swagger.models.parameters.BodyParameter
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Swagger" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Swagger" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.