I got a working schema using the editor, posted at the end for completeness.
What I'm trying to solve for is reusing a definition between an in path
param and an in: body param network_id in my below example. I currently am
unable to do it so I have a follow-up question:
put:
      summary: Modify Gateway Record
      tags:
        - Gateways
      parameters:
        - $ref: "#/parameters/network_id"
        - $ref: "#/parameters/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'


For in path parameters, the below syntax doesn't work like for the in body
params? Also is there a way to redirect the type in an in_path param to
point at something in #definitions, either of these ways will allow me to
reuse the typedefs.

- in: path
  name: network_id
  description: Network Id
  schema:
    $ref: '#/definitions/network_record'

Instead I had to define the parameter under #parameters like below and use
a
parameters:
  network_id:
    in: path
    name: network_id
    description: Network ID
    required: true
    type: string





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:
        '201':
          description: Network Configs
          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
          type: string
        - 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:
        - $ref: "#/parameters/network_id"
      responses:
        '204':
          description: Success
        default:
          $ref: '#/responses/UnexpectedError'
  '/networks/{network_id}/gateways':
    get:
      summary: List gateways in the network
      tags:
        - Gateways
      parameters:
        - $ref: "#/parameters/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:
        - $ref: "#/parameters/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
          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:
        - $ref: "#/parameters/network_id"
        - $ref: "#/parameters/gateway_id"
      responses:
        '200':
          description: Gateway Record on Success
          schema:
            $ref: '#/definitions/access_gateway_record'
        default:
          $ref: '#/responses/UnexpectedError'
    put:
      summary: Modify Gateway Record
      tags:
        - Gateways
      parameters:
        - $ref: "#/parameters/network_id"
        - $ref: "#/parameters/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:
        - $ref: "#/parameters/network_id"
        - $ref: "#/parameters/gateway_id"
      responses:
        '200':
          description: Retreive Gateway Configs
          schema:
            $ref: '#/definitions/gateway_configs'
        default:
          $ref: '#/responses/UnexpectedError'
    put:
      summary: Modify Gateway Configs
      tags:
        - Gateways
      parameters:
        - $ref: "#/parameters/network_id"
        - $ref: "#/parameters/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:
        - $ref: "#/parameters/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:
        - $ref: "#/parameters/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:
        - $ref: "#/parameters/network_id"
        - $ref: "#/parameters/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:
        - $ref: "#/parameters/network_id"
        - $ref: "#/parameters/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:
        - $ref: "#/parameters/network_id"
        - $ref: '#/parameters/subscriber_id'
      responses:
        '204':
          description: Success
        default:
          $ref: '#/responses/UnexpectedError'
responses:
  UnexpectedError:
    description: Unexpected Error
    schema:
      $ref: '#/definitions/error'
parameters:
  network_id:
    in: path
    name: network_id
    description: Network ID
    required: true
    type: string
  subscriber_id:
    in: path
    name: subscriber_id
    description: Subscriber ID
    required: true
    type: string
  gateway_id:
    in: path
    name: gateway_id
    description: Gateway ID
    required: true
    type: string
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
  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 6:32 PM, amar padmanabhan <[email protected]> wrote:

> 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.

Reply via email to