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