civisanalytics / swagger-diff

Utility for comparing two Swagger specifications.
BSD 3-Clause "New" or "Revised" License
265 stars 32 forks source link

NoMethodError: undefined method 'each' for nil:NilClass when processing swagger.json #13

Closed davidvc closed 8 years ago

davidvc commented 8 years ago

Here is the full exception. I am attaching the offending json

NoMethodError:         NoMethodError: undefined method `each' for nil:NilClass
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:135:in `properties'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:102:in `refs'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:117:in `nested'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:125:in `properties_for_ref'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:137:in `block in properties'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:135:in `each'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:135:in `properties'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:102:in `refs'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:117:in `nested'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:125:in `properties_for_ref'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:137:in `block in properties'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:135:in `each'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:135:in `properties'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:102:in `refs'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:186:in `block in response_attributes_inner'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:177:in `each'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:177:in `response_attributes_inner'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:28:in `block in response_attributes'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:27:in `each'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/specification.rb:27:in `response_attributes'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/diff.rb:117:in `block in incompatible_response_attributes_enumerator'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/diff.rb:142:in `each'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/diff.rb:142:in `each'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/diff.rb:142:in `each'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/diff.rb:142:in `none?'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/diff.rb:142:in `responses_compatible?'
/Users/dvancouvering/Projects/Ventana/ventana/vendor/swagger-diff/lib/swagger/diff/diff.rb:10:in `compatible?'
/Users/dvancouvering/Projects/Ventana/ventana/test/compatibility/soa_compatibility_test.rb:33:in `block (2 levels) in <class:SoaCompatibilityTest>'
davidvc commented 8 years ago

I can't seem to be able to attach json so here it is in all its glory. Sadly it's very hard to tell from the error output exactly where in this big blog of JSON the problem occurred :(

{
  "definitions": {
    "BehavioralHealthCarveoutContentResponse": {
      "properties": {
        "content": {
          "$ref": "#/definitions/BehavioralHealthCarveoutContent"
        },
        "errors": {
          "items": {
            "$ref": "#/definitions/ErrorResult"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "code": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Location": {
      "properties": {
        "buildingName": {
          "type": "string"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        },
        "lat": {
          "format": "float",
          "type": "number"
        },
        "lon": {
          "format": "float",
          "type": "number"
        },
        "streetAddress": {
          "type": "string"
        },
        "streetAddress2": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Facility": {
      "properties": {
        "providerParticipationId": {
          "format": "int32",
          "type": "integer"
        },
        "location": {
          "$ref": "#/definitions/Location"
        },
        "providerId": {
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Summary": {
      "properties": {
        "active": {
          "default": false,
          "type": "boolean"
        },
        "values": {
          "items": {
            "$ref": "#/definitions/Value"
          },
          "type": "array"
        },
        "tooltipMessage": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AccessRules": {
      "properties": {
        "longText": {
          "type": "string"
        },
        "shortText": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "FullChronicCondition": {
      "properties": {
        "checkListDetailsList": {
          "$ref": "#/definitions/GetRxChecklistDetailsResponse"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        },
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "definition": {
          "type": "string"
        },
        "shortName": {
          "type": "string"
        },
        "contentId": {
          "format": "int32",
          "type": "integer"
        },
        "subtypes": {
          "items": {
            "$ref": "#/definitions/ChronicConditionSubtype"
          },
          "type": "array"
        },
        "relationships": {
          "items": {
            "$ref": "#/definitions/ChronicConditionRelationship"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Schedule": {
      "properties": {
        "comment": {
          "type": "string"
        },
        "entries": {
          "items": {
            "$ref": "#/definitions/ScheduleEntry"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ContentBlock": {
      "type": "object"
    },
    "GetSearchLabelResponse": {
      "properties": {
        "key": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Value": {
      "properties": {
        "familyKey": {
          "type": "string"
        },
        "disabled": {
          "default": false,
          "type": "boolean"
        },
        "count": {
          "format": "int32",
          "type": "integer"
        },
        "active": {
          "default": false,
          "type": "boolean"
        },
        "label": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Price": {
      "properties": {
        "totalCost": {
          "format": "int32",
          "type": "integer"
        },
        "outOfPocket": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "Bookmark": {
      "properties": {
        "updatedAt": {
          "format": "date-time",
          "type": "string"
        },
        "createdAt": {
          "format": "date-time",
          "type": "string"
        },
        "referrer": {
          "type": "string"
        },
        "procedureMappingIds": {
          "items": {
            "format": "int32",
            "type": "integer"
          },
          "type": "array"
        },
        "providerId": {
          "format": "int32",
          "type": "integer"
        },
        "accountId": {
          "format": "int32",
          "type": "integer"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "InterpretedSearchResponse": {
      "properties": {
        "rewardsConfirmation": {
          "$ref": "#/definitions/Confirmation"
        },
        "warnings": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "query": {
          "$ref": "#/definitions/Query"
        },
        "pricingCalculation": {
          "additionalProperties": {
            "type": "object"
          },
          "type": "object"
        },
        "procedureSelector": {
          "$ref": "#/definitions/ProcedureSelector"
        },
        "disclaimers": {
          "items": {
            "$ref": "#/definitions/Disclaimer"
          },
          "type": "array"
        },
        "promotedResults": {
          "items": {
            "$ref": "#/definitions/PromotedResult"
          },
          "type": "array"
        },
        "searchExpansionIntervals": {
          "items": {
            "format": "double",
            "type": "number"
          },
          "type": "array"
        },
        "results": {
          "type": "object"
        },
        "aggregates": {
          "$ref": "#/definitions/SearchAggregates"
        },
        "searchType": {
          "additionalProperties": {
            "type": "object"
          },
          "type": "object"
        },
        "responseType": {
          "type": "string"
        },
        "errors": {
          "items": {
            "$ref": "#/definitions/ErrorResult"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "orderByOptions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "totalResults": {
          "format": "int32",
          "type": "integer"
        },
        "totalCoeResults": {
          "format": "int32",
          "type": "integer"
        },
        "filters": {
          "items": {
            "$ref": "#/definitions/Summary"
          },
          "type": "array"
        },
        "orderBy": {
          "type": "string"
        },
        "page": {
          "format": "int32",
          "type": "integer"
        },
        "perPage": {
          "format": "int32",
          "type": "integer"
        },
        "distance": {
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "CareRecommendationItem": {
      "properties": {
        "id": {
          "format": "int32",
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Specialty": {
      "properties": {
        "name": {
          "type": "string"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "RbbDetails": {
      "properties": {
        "overgeAppliesToOopMax": {
          "default": false,
          "type": "boolean"
        },
        "notifications": {
          "$ref": "#/definitions/RbbNotificationListing"
        },
        "notificationVersion": {
          "type": "string"
        },
        "category": {
          "type": "string"
        },
        "programName": {
          "type": "string"
        },
        "pricePoint": {
          "format": "int32",
          "type": "integer"
        },
        "facilityPricePoint": {
          "format": "int32",
          "type": "integer"
        },
        "maxCoveredPriceLabel": {
          "type": "string"
        },
        "pricePointDetails": {
          "$ref": "#/definitions/PricePoint"
        },
        "rbbNotificationType": {
          "enum": [
            "SINGLE_PROCEDURE",
            "BUNDLE_FACILITY_COMPONENT",
            "BUNDLE_MULTIPLE_COMPONENTS",
            "BUNDLE"
          ],
          "type": "string"
        },
        "rbbProgramType": {
          "enum": [
            "FULL",
            "SOFT"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProcedurePricePoint": {
      "properties": {
        "pricePoint": {
          "format": "int32",
          "type": "integer"
        },
        "procedureMappingId": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "Disclaimer": {
      "properties": {
        "shortLength": {
          "format": "int32",
          "type": "integer"
        },
        "references": {
          "items": {
            "$ref": "#/definitions/TextReference"
          },
          "type": "array"
        },
        "logoKey": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ChronicConditionRelationship": {
      "type": "object"
    },
    "ChronicConditionCareCategory": {
      "properties": {
        "costHeader": {
          "type": "string"
        },
        "frequencyHeader": {
          "type": "string"
        },
        "iconName": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "BehavioralHealthCarveoutContent": {
      "properties": {
        "tooltipForStatusUnknown": {
          "type": "string"
        },
        "tooltipForSomeServices": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "carveoutType": {
          "type": "string"
        },
        "insurancePlanId": {
          "format": "int32",
          "type": "integer"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        },
        "key": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProviderQualityMetric": {
      "properties": {
        "nationalAverage": {
          "format": "float",
          "type": "number"
        },
        "value": {
          "format": "float",
          "type": "number"
        },
        "name": {
          "type": "string"
        },
        "key": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "SearchAggregates": {
      "properties": {
        "erMedianPrice": {
          "format": "int32",
          "type": "integer"
        },
        "estimate": {
          "$ref": "#/definitions/Estimate"
        },
        "clinicMedianPrice": {
          "format": "int32",
          "type": "integer"
        },
        "minPrice": {
          "format": "int32",
          "type": "integer"
        },
        "minPriceAfterHRA": {
          "format": "int32",
          "type": "integer"
        },
        "maxPrice": {
          "format": "int32",
          "type": "integer"
        },
        "maxPriceAfterHRA": {
          "format": "int32",
          "type": "integer"
        },
        "minRateAmount": {
          "format": "int32",
          "type": "integer"
        },
        "maxRateAmount": {
          "format": "int32",
          "type": "integer"
        },
        "numberOfRatedProviders": {
          "format": "int32",
          "type": "integer"
        },
        "doctorMedianPrice": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "Tier": {
      "properties": {
        "label": {
          "type": "string"
        },
        "key": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ResultBadge": {
      "properties": {
        "label": {
          "type": "string"
        },
        "positive": {
          "default": false,
          "type": "boolean"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "GeoCodeResponse": {
      "properties": {
        "lon": {
          "format": "double",
          "type": "number"
        },
        "lat": {
          "format": "double",
          "type": "number"
        },
        "errors": {
          "items": {
            "$ref": "#/definitions/ErrorResult"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "code": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ErrorResult": {
      "properties": {
        "arguments": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "errorCode": {
          "type": "string"
        },
        "resourceFamily": {
          "type": "string"
        },
        "statusLog": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "message": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProcedureSelectorWidgetResponse": {
      "properties": {
        "procedureFamilySummary": {
          "$ref": "#/definitions/ProcedureFamilySummary"
        },
        "procedureSelector": {
          "$ref": "#/definitions/ProcedureSelector"
        },
        "errors": {
          "items": {
            "$ref": "#/definitions/ErrorResult"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "code": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Query": {
      "properties": {
        "corrected": {
          "type": "string"
        },
        "original": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListBookmarksResponse": {
      "properties": {
        "bookmarks": {
          "items": {
            "$ref": "#/definitions/Bookmark"
          },
          "type": "array"
        },
        "code": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "errors": {
          "items": {
            "$ref": "#/definitions/ErrorResult"
          },
          "type": "array"
        },
        "page": {
          "format": "int32",
          "type": "integer"
        },
        "perPage": {
          "format": "int32",
          "type": "integer"
        },
        "results": {
          "items": {
            "$ref": "#/definitions/AbstractResult"
          },
          "type": "array"
        },
        "totalResults": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "BrowseCareResponse": {
      "properties": {
        "nodes": {
          "items": {
            "$ref": "#/definitions/BrowseCareTree"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "NetworkDesignation": {
      "properties": {
        "toolTip": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProcedureFamilySummary": {
      "properties": {
        "acuteCondition": {
          "default": false,
          "type": "boolean"
        },
        "terms": {
          "type": "string"
        },
        "excludedText": {
          "type": "string"
        },
        "includedText": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "ProviderDetailsResponse": {
      "properties": {
        "hasRewards": {
          "default": false,
          "type": "boolean"
        },
        "rewardsEligibility": {
          "$ref": "#/definitions/RewardsEligibilityInformation"
        },
        "providerResult": {
          "$ref": "#/definitions/MobileProviderResult"
        },
        "code": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "errors": {
          "items": {
            "$ref": "#/definitions/ErrorResult"
          },
          "type": "array"
        },
        "qualityMetrics": {
          "items": {
            "$ref": "#/definitions/ProviderQualityMetric"
          },
          "type": "array"
        },
        "costDetails": {
          "items": {
            "$ref": "#/definitions/CostDetails"
          },
          "type": "array"
        },
        "ratingsCont": {
          "format": "int32",
          "type": "integer"
        },
        "qualityMetricsMessage": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProcedureSelector": {
      "properties": {
        "type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProviderAwardResult": {
      "properties": {
        "dataDate": {
          "type": "string"
        },
        "dataProvidedBy": {
          "type": "string"
        },
        "endDate": {
          "format": "date-time",
          "type": "string"
        },
        "startDate": {
          "format": "date-time",
          "type": "string"
        },
        "awardLevel": {
          "type": "string"
        },
        "awardName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "MobileProvider": {
      "properties": {
        "badges": {
          "items": {
            "$ref": "#/definitions/ResultBadge"
          },
          "type": "array"
        },
        "education": {
          "items": {
            "$ref": "#/definitions/ProviderAttribute"
          },
          "type": "array"
        },
        "attributes": {
          "items": {
            "$ref": "#/definitions/ProviderAttribute"
          },
          "type": "array"
        },
        "specialties": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "type": "string"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "CostDetails": {
      "properties": {
        "rbpDetails": {
          "$ref": "#/definitions/RbbDetails"
        },
        "valid": {
          "default": false,
          "type": "boolean"
        },
        "rewardsValueExplanation": {
          "type": "string"
        },
        "rewardsValue": {
          "format": "float",
          "type": "number"
        },
        "rewardsPoints": {
          "format": "int32",
          "type": "integer"
        },
        "priceVarianceText": {
          "type": "string"
        },
        "includedTextResourceKey": {
          "format": "int32",
          "type": "integer"
        },
        "estimate": {
          "$ref": "#/definitions/Estimate"
        },
        "fairPrice": {
          "format": "int32",
          "type": "integer"
        },
        "price": {
          "$ref": "#/definitions/Price"
        },
        "rateSource": {
          "type": "string"
        },
        "employerName": {
          "type": "string"
        },
        "procedureName": {
          "type": "string"
        },
        "procedureId": {
          "format": "int32",
          "type": "integer"
        },
        "includedText": {
          "type": "string"
        },
        "excludedTextResourceKey": {
          "format": "int32",
          "type": "integer"
        },
        "excludedText": {
          "type": "string"
        },
        "messageResourceKey": {
          "type": "string"
        },
        "messageResourceArgs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "costBreakdown": {
          "items": {
            "$ref": "#/definitions/CostBreakdownComponent"
          },
          "type": "array"
        },
        "priceVarianceTextResourceKey": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "CompareResponse": {
      "properties": {
        "bookmarkedProviderIds": {
          "items": {
            "format": "int32",
            "type": "integer"
          },
          "type": "array"
        },
        "pinnedResult": {
          "$ref": "#/definitions/AbstractResult"
        },
        "pricingCalculation": {
          "additionalProperties": {
            "type": "object"
          },
          "type": "object"
        },
        "procedureSelector": {
          "$ref": "#/definitions/ProcedureSelector"
        },
        "disclaimers": {
          "items": {
            "$ref": "#/definitions/Disclaimer"
          },
          "type": "array"
        },
        "promotedResults": {
          "items": {
            "$ref": "#/definitions/PromotedResult"
          },
          "type": "array"
        },
        "searchExpansionIntervals": {
          "items": {
            "format": "double",
            "type": "number"
          },
          "type": "array"
        },
        "results": {
          "type": "object"
        },
        "aggregates": {
          "$ref": "#/definitions/SearchAggregates"
        },
        "searchType": {
          "additionalProperties": {
            "type": "object"
          },
          "type": "object"
        },
        "responseType": {
          "type": "string"
        },
        "errors": {
          "items": {
            "$ref": "#/definitions/ErrorResult"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "orderByOptions": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "totalResults": {
          "format": "int32",
          "type": "integer"
        },
        "totalCoeResults": {
          "format": "int32",
          "type": "integer"
        },
        "filters": {
          "items": {
            "$ref": "#/definitions/Summary"
          },
          "type": "array"
        },
        "orderBy": {
          "type": "string"
        },
        "page": {
          "format": "int32",
          "type": "integer"
        },
        "perPage": {
          "format": "int32",
          "type": "integer"
        },
        "distance": {
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "PricePoint": {
      "properties": {
        "components": {
          "items": {
            "$ref": "#/definitions/ProcedurePricePoint"
          },
          "type": "array"
        },
        "bundle": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "TextReference": {
      "properties": {
        "length": {
          "format": "int32",
          "type": "integer"
        },
        "start": {
          "format": "int32",
          "type": "integer"
        },
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProviderAttribute": {
      "properties": {
        "values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Confirmation": {
      "properties": {
        "data": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "GetRxChecklistDetailsResponse": {
      "properties": {
        "rxChecklistDetails": {
          "items": {
            "$ref": "#/definitions/RxChecklistDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "QualityMetricSource": {
      "properties": {
        "sourceUrl": {
          "type": "string"
        },
        "sourceName": {
          "type": "string"
        },
        "sourceKey": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Estimate": {
      "properties": {
        "expectedHRA": {
          "format": "int32",
          "type": "integer"
        },
        "expectedRateAmount": {
          "format": "int32",
          "type": "integer"
        },
        "expectedOop": {
          "format": "int32",
          "type": "integer"
        },
        "rbbExemptionProviderParticipationFlag": {
          "type": "string"
        },
        "notes": {
          "items": {
            "$ref": "#/definitions/EstimateNote"
          },
          "type": "array"
        },
        "rate": {
          "$ref": "#/definitions/RateEstimateLineItem"
        },
        "oop": {
          "$ref": "#/definitions/OutOfPocketEstimateLineItem"
        },
        "softRbbOop": {
          "$ref": "#/definitions/OutOfPocketEstimateLineItem"
        },
        "employer": {
          "$ref": "#/definitions/EstimateLineItem"
        },
        "hra": {
          "$ref": "#/definitions/EstimateLineItem"
        },
        "pricePoints": {
          "items": {
            "format": "int32",
            "type": "integer"
          },
          "type": "array"
        },
        "pricePoint": {
          "$ref": "#/definitions/PricePoint"
        },
        "details": {
          "items": {
            "$ref": "#/definitions/EstimateDetailItem"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "CareRecommendation": {
      "properties": {
        "estimate": {
          "$ref": "#/definitions/Estimate"
        },
        "careRecommendationItems": {
          "items": {
            "$ref": "#/definitions/CareRecommendationItem"
          },
          "type": "array"
        },
        "searchable": {
          "default": false,
          "type": "boolean"
        },
        "frequency": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "CareCategoryRecommendations": {
      "properties": {
        "careRecommendations": {
          "items": {
            "$ref": "#/definitions/CareRecommendation"
          },
          "type": "array"
        },
        "careCategory": {
          "$ref": "#/definitions/ChronicConditionCareCategory"
        },
        "subtypeId": {
          "format": "int32",
          "type": "integer"
        },
        "categoryId": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "RbbNotificationListing": {
      "properties": {
        "rolloverContent": {
          "$ref": "#/definitions/RbbNotificationContent"
        },
        "bannerContent": {
          "$ref": "#/definitions/RbbNotificationContent"
        }
      },
      "type": "object"
    },
    "RxChecklistDetails": {
      "properties": {
        "checklistBodyText": {
          "type": "string"
        },
        "checklistHeaderText": {
          "type": "string"
        },
        "rxChecklistMappingId": {
          "format": "int32",
          "type": "integer"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "StaticSearchListing": {
      "properties": {
        "phoneNumber": {
          "type": "string"
        },
        "insurancePlanKey": {
          "type": "string"
        },
        "employerId": {
          "format": "int32",
          "type": "integer"
        },
        "overallRating": {
          "format": "float",
          "type": "number"
        },
        "insuranceCompanyId": {
          "format": "int32",
          "type": "integer"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        },
        "procedureMappingId": {
          "format": "int32",
          "type": "integer"
        },
        "title": {
          "type": "string"
        },
        "cost": {
          "format": "float",
          "type": "number"
        },
        "description": {
          "type": "string"
        },
        "distance": {
          "format": "int32",
          "type": "integer"
        },
        "detailPageKey": {
          "type": "string"
        },
        "provisionCareType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "RewardsEligibilityInformation": {
      "properties": {
        "isFirstTimeRegistration": {
          "default": false,
          "type": "boolean"
        },
        "isPrimaryAccount": {
          "default": false,
          "type": "boolean"
        },
        "currentStatus": {
          "enum": [
            "NOT_ELIGIBLE",
            "NOT_REGISTERED",
            "REGISTERED"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "EstimateLineItem": {
      "properties": {
        "amount": {
          "$ref": "#/definitions/Amount"
        }
      },
      "type": "object"
    },
    "RbbNotificationContent": {
      "properties": {
        "graphicIcon": {
          "enum": [
            "EXCLAMATION_POINT_ALERT",
            "CHECKMARK"
          ],
          "type": "string"
        },
        "shouldDisplayLearnMoreLink": {
          "default": false,
          "type": "boolean"
        },
        "text": {
          "type": "string"
        },
        "header": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "QualityPerMetric": {
      "properties": {
        "otherInfo": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "dataProvidedBy": {
          "$ref": "#/definitions/QualityMetricSource"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        },
        "providerId": {
          "format": "int32",
          "type": "integer"
        },
        "metric": {
          "enum": [
            "CR_AAA_RATING",
            "CR_BACK_RATING",
            "CR_BRAIN_RATING",
            "CR_BREAST_RATING",
            "CR_CABG_RATING",
            "CR_CAROTID_ARTERY_RATING",
            "CR_COLORECTAL_RATING",
            "CR_CYST_RECTOCELE_RATING",
            "CR_DEFIB_RATING",
            "CR_HEAD_RATING",
            "CR_HERNIA_RATING",
            "CR_HIP_RATING",
            "CR_HLE_RATING",
            "CR_HYSTERECTOMY_RATING",
            "CR_KNEE_RATING",
            "CR_LAP_GALL_RATING",
            "CR_LL_VASCULAR_RATING",
            "CR_LUNG_RATING",
            "CR_OPEN_GALL_RATING",
            "CR_OTHER_AORTIC_RATING",
            "CR_OTHER_GASTRO_RATING",
            "CR_OTHER_HEART_RATING",
            "CR_OVERALL_RATING",
            "CR_PCI_RATING",
            "CR_PROSTATE_RATING",
            "CR_RENAL_RATING",
            "CR_SPINAL_RATING",
            "CR_VALVE_RATING",
            "DELIVERY_HIGH_RISK",
            "DELIVERY_NORMAL",
            "CHILD_ASTHMA",
            "MEDICAL_SAFETY",
            "IMAGING_CT_ABDOMEN",
            "IMAGING_CT_CHEST",
            "IMAGING_MAMMOGRAM",
            "IMAGING_MRI_LOWER_BACK",
            "CT",
            "MR",
            "PET",
            "SATISFACTION_COMMUNICATION_DOCTORS",
            "SATISFACTION_COMMUNICATION_NURSES",
            "SATISFACTION_DISCHARGE_INSTRUCTIONS",
            "SATISFACTION_HELP_ASAP",
            "SATISFACTION_MEDICINES_EXPLAINED",
            "SATISFACTION_PAIN_CONTROLLED",
            "SATISFACTION_RECOMMEND_HOSPITAL",
            "SATISFACTION_ROOM_CLEAN",
            "SATISFACTION_ROOM_QUIET",
            "HBIPS_2_OVERALL_RATE_PER_1000",
            "HBIPS_3_OVERALL_RATE_PER_1000",
            "HBIPS_6_OVERALL_PERCENT_OF_TOTAL",
            "HBIPS_7_OVERALL_PERCENT_OF_TOTAL",
            "ABDOMINAL_AORTIC_ANEURYSM_REPAIR",
            "ANGIOPLASTY",
            "ANKLE_SURGERY",
            "BLADDER_SURGERY",
            "BREAST_BIOPSY",
            "BREAST_RECONSTRUCTION_SURGERY",
            "BREAST_SURGERY",
            "BUNION_REMOVAL",
            "CAPSULE_ENDOSCOPY",
            "CARDIAC_ANGIOPLASTY_WITH_STENT",
            "CARDIAC_CATHETERIZATION",
            "CARDIAC_DEFRIBILLATOR_IMPLANTATION",
            "CARPAL_TUNNEL_RELEASE",
            "CATARACT_REMOVAL",
            "CATHETER_ABLATION",
            "COLECTOMY",
            "COLONOSCOPY",
            "CORNEAL_TRANSPLANT",
            "CYSTOSCOPY",
            "DILATION_AND_CURETTAGE_DC",
            "ELECTROENCEPHALOGRAM_EEG",
            "ELECTROMYOGRAPHY_EMG",
            "ENDOSCOPIC_ULTRASOUND",
            "ERCP",
            "EYELID_SURGERY",
            "FINGER_TENDON_REPAIR",
            "FOOT_SURGERY",
            "GALLBLADDER_REMOVAL",
            "GASTROSTOMY_TUBE_PLACEMENT",
            "HAMMERTOE_CORRECTION",
            "HAND_SURGERY",
            "HEART_BYPASS_SURGERY",
            "HEART_VALVE_SURGERY",
            "HERNIA_REPAIR",
            "HIP_REPLACEMENT_SURGERY",
            "HYSTERECTOMY",
            "HYSTEROSCOPY",
            "KIDNEY_SURGERY",
            "KNEE_REPLACEMENT_SURGERY",
            "LAPAROSCOPIC_COLECTOMY",
            "LAPAROSCOPIC_GALLBLADDER_REMOVAL",
            "LAPARSCOPIC_HYSTERECTOMY",
            "LARYNGOSCOPY",
            "LASER_EYE_SURGERY",
            "LUNG_SURGERY",
            "MOHS_SURGERY",
            "NAIL_SURGERY",
            "NASAL_ENDOSCOPY",
            "NERVE_CONDUCTION_TEST",
            "NEUROMUSCULAR_JUNCTION_TEST",
            "PACEMAKER_PLACEMENT",
            "PANCREAS_REMOVAL",
            "PROSTATE_BIOPSY",
            "PROSTATE_SURGERY",
            "RECTOCELE_REPAIR_SURGERY",
            "RENAL_BIOPSY",
            "SHOULDER_SURGERY",
            "SIGMOIDOSCOPY",
            "SKIN_BIOPSY",
            "SKIN_GRAFT",
            "SKIN_LESION_DESTRUCTION",
            "SLEEP_TEST",
            "SMALL_BOWEL_ENDOSCOPY",
            "SPINAL_DECOMPRESSION",
            "SPINAL_FIXATION",
            "SPINAL_FUSION_SURGERY",
            "THYROID_SURGERY",
            "TRIGGER_FINGER_RELEASE",
            "UPPER_ENDOSCOPY",
            "VAGINAL_HYSTERECTOMY",
            "VASCULAR_SURGERY_OF_THE_CHEST_ABDOMEN_OR_UPPER_LEG",
            "VASCULAR_SURGERY_OF_THE_LEG",
            "WEIGHT_LOSS_SURGERY",
            "WRIST_JOINT_REPAIR",
            "PATIENT_SATISFACTION"
          ],
          "type": "string"
        },
        "decimalValue": {
          "format": "float",
          "type": "number"
        },
        "decimalValueAverage": {
          "format": "float",
          "type": "number"
        },
        "rating": {
          "enum": [
            "ABOVE_AVERAGE",
            "AVERAGE",
            "BELOW_AVERAGE",
            "BETTER_THAN_MOST",
            "WORSE_THAN_MOST",
            "NOT_RATED",
            "NO_DATA_AVAILABLE"
          ],
          "type": "string"
        },
        "sampleSize": {
          "type": "string"
        },
        "dataDate": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ResultListing": {
      "properties": {
        "rbpDetails": {
          "$ref": "#/definitions/RbbDetails"
        },
        "coverageType": {
          "enum": [
            "MEDICAL",
            "DENTAL",
            "PHARMACY",
            "BEHAVIORAL",
            "EAP",
            "TELEHEALTH"
          ],
          "type": "string"
        },
        "canShowOnlyOopCost": {
          "default": false,
          "type": "boolean"
        },
        "isATP": {
          "default": false,
          "type": "boolean"
        },
        "facilityTier": {
          "$ref": "#/definitions/Tier"
        },
        "tier": {
          "$ref": "#/definitions/Tier"
        },
        "estimateSynopsis": {
          "type": "string"
        },
        "networkDesignations": {
          "items": {
            "$ref": "#/definitions/NetworkDesignation"
          },
          "type": "array"
        },
        "networkDesignation": {
          "$ref": "#/definitions/NetworkDesignation"
        },
        "appointmentContact": {
          "$ref": "#/definitions/AppointmentContact"
        },
        "accessRules": {
          "$ref": "#/definitions/AccessRules"
        },
        "schedule": {
          "$ref": "#/definitions/Schedule"
        },
        "abovePricePoint": {
          "default": false,
          "type": "boolean"
        },
        "rateAmount": {
          "format": "int32",
          "type": "integer"
        },
        "distance": {
          "format": "int32",
          "type": "integer"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        },
        "rewardsValueExplanation": {
          "type": "string"
        },
        "rewardsValue": {
          "format": "float",
          "type": "number"
        },
        "hasRewards": {
          "default": false,
          "type": "boolean"
        },
        "rewardsPoints": {
          "format": "int32",
          "type": "integer"
        },
        "priceType": {
          "type": "string"
        },
        "estimate": {
          "$ref": "#/definitions/Estimate"
        },
        "location": {
          "$ref": "#/definitions/Location"
        },
        "phone": {
          "type": "string"
        },
        "flags": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "facility": {
          "$ref": "#/definitions/Facility"
        },
        "practiceId": {
          "format": "int32",
          "type": "integer"
        },
        "practiceName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ScheduleEntry": {
      "properties": {
        "hours": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ChronicConditionSubtype": {
      "properties": {
        "careCategoryRecommendationsList": {
          "items": {
            "$ref": "#/definitions/CareCategoryRecommendations"
          },
          "type": "array"
        },
        "key": {
          "type": "string"
        },
        "order": {
          "format": "int32",
          "type": "integer"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        },
        "contentId": {
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "definition": {
          "type": "string"
        },
        "shortName": {
          "type": "string"
        },
        "cost": {
          "type": "string"
        },
        "costSource": {
          "type": "string"
        },
        "costType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "CostBreakdownComponent": {
      "properties": {
        "labelResourceArgs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "amount": {
          "format": "int32",
          "type": "integer"
        },
        "label": {
          "type": "string"
        },
        "id": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "EventLogResponse": {
      "properties": {
        "message": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "BrowseCareTree": {
      "properties": {
        "children": {
          "items": {
            "$ref": "#/definitions/BrowseCareTree"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AbstractResult": {
      "properties": {
        "resultType": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "PromotedResult": {
      "properties": {
        "priceAfterHRA": {
          "format": "int32",
          "type": "integer"
        },
        "phoneNumber": {
          "type": "string"
        },
        "staticPriceExplanation": {
          "type": "string"
        },
        "staticPrice": {
          "type": "string"
        },
        "detailPageType": {
          "type": "string"
        },
        "detailHTML": {
          "type": "string"
        },
        "listings": {
          "items": {
            "$ref": "#/definitions/ResultListing"
          },
          "type": "array"
        },
        "contentBlocks": {
          "items": {
            "$ref": "#/definitions/ContentBlock"
          },
          "type": "array"
        },
        "resultType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "promotedResultType": {
          "type": "string"
        },
        "networkDesignation": {
          "$ref": "#/definitions/NetworkDesignation"
        },
        "networkDesignations": {
          "items": {
            "$ref": "#/definitions/NetworkDesignation"
          },
          "type": "array"
        },
        "provider": {
          "$ref": "#/definitions/Provider"
        }
      },
      "type": "object"
    },
    "MobileProviderResult": {
      "properties": {
        "atp_MESSAGE": {
          "type": "string"
        },
        "providerId": {
          "format": "int32",
          "type": "integer"
        },
        "atpMessage": {
          "type": "string"
        },
        "atpKey": {
          "type": "string"
        },
        "distance": {
          "format": "double",
          "type": "number"
        },
        "price": {
          "format": "int32",
          "type": "integer"
        },
        "phone": {
          "type": "string"
        },
        "location": {
          "$ref": "#/definitions/Location"
        },
        "networkDesignations": {
          "items": {
            "$ref": "#/definitions/NetworkDesignation"
          },
          "type": "array"
        },
        "networkDesignation": {
          "$ref": "#/definitions/NetworkDesignation"
        },
        "provider": {
          "$ref": "#/definitions/MobileProvider"
        },
        "resultType": {
          "type": "string"
        },
        "rating": {
          "format": "double",
          "type": "number"
        },
        "estimate": {
          "$ref": "#/definitions/Estimate"
        },
        "rewardsPoints": {
          "format": "int32",
          "type": "integer"
        },
        "rewardsValue": {
          "format": "float",
          "type": "number"
        },
        "rewardsValueExplanation": {
          "type": "string"
        },
        "flags": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "isATP": {
          "default": false,
          "type": "boolean"
        },
        "canShowOnlyOopCost": {
          "default": false,
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "EstimateDetailItem": {
      "properties": {
        "hra": {
          "$ref": "#/definitions/EstimateLineItem"
        },
        "employer": {
          "$ref": "#/definitions/EstimateLineItem"
        },
        "oop": {
          "$ref": "#/definitions/OutOfPocketEstimateLineItem"
        },
        "insuranceAllowance": {
          "format": "int32",
          "type": "integer"
        },
        "copay": {
          "format": "int32",
          "type": "integer"
        },
        "coinsurancePercentage": {
          "type": "number"
        },
        "deductibleLimitMet": {
          "default": false,
          "type": "boolean"
        },
        "coinsuranceLimitMet": {
          "default": false,
          "type": "boolean"
        },
        "coinsuranceAmount": {
          "format": "int32",
          "type": "integer"
        },
        "amountOverPricePoint": {
          "format": "int32",
          "type": "integer"
        },
        "billedAmount": {
          "format": "int32",
          "type": "integer"
        },
        "insuranceTotal": {
          "format": "int32",
          "type": "integer"
        },
        "procedureMappingId": {
          "format": "int32",
          "type": "integer"
        },
        "providerParticipationId": {
          "format": "int32",
          "type": "integer"
        },
        "pricePoint": {
          "format": "int32",
          "type": "integer"
        },
        "skipDeductible": {
          "default": false,
          "type": "boolean"
        },
        "totalPaidFromDeductible": {
          "format": "int32",
          "type": "integer"
        },
        "rate": {
          "$ref": "#/definitions/RateEstimateLineItem"
        },
        "coverageLevel": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "OutOfPocketEstimateLineItem": {
      "properties": {
        "priceType": {
          "type": "string"
        },
        "abovePricePoint": {
          "default": false,
          "type": "boolean"
        },
        "amount": {
          "$ref": "#/definitions/Amount"
        }
      },
      "type": "object"
    },
    "EstimateNote": {
      "properties": {
        "noteValue": {
          "type": "string"
        },
        "noteKey": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Amount": {
      "properties": {
        "exact": {
          "default": false,
          "type": "boolean"
        },
        "max": {
          "format": "int32",
          "type": "integer"
        },
        "zero": {
          "default": false,
          "type": "boolean"
        },
        "expected": {
          "format": "int32",
          "type": "integer"
        },
        "min": {
          "format": "int32",
          "type": "integer"
        },
        "range": {
          "default": false,
          "type": "boolean"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ChronicConditionResponse": {
      "properties": {
        "condition": {
          "$ref": "#/definitions/FullChronicCondition"
        },
        "errors": {
          "items": {
            "$ref": "#/definitions/ErrorResult"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "code": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "RateEstimateLineItem": {
      "properties": {
        "amount": {
          "$ref": "#/definitions/Amount"
        }
      },
      "type": "object"
    },
    "AppointmentContact": {
      "properties": {
        "urlDetail": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "schedulingProviderLogo": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "StaticSearchListingsResponse": {
      "properties": {
        "errors": {
          "items": {
            "$ref": "#/definitions/ErrorResult"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "code": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Provider": {
      "properties": {
        "ratings": {
          "items": {
            "$ref": "#/definitions/QualityPerMetric"
          },
          "type": "array"
        },
        "type": {
          "type": "string"
        },
        "awards": {
          "items": {
            "$ref": "#/definitions/ProviderAwardResult"
          },
          "type": "array"
        },
        "flags": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "specialties": {
          "items": {
            "$ref": "#/definitions/Specialty"
          },
          "type": "array"
        },
        "naturalName": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "id": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "paths": {
    "/staticsearchlistings": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/StaticSearchListingsResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "insurance_plan_id"
          }
        ],
        "operationId": "getStaticSearchListings",
        "description": "",
        "summary": "returns all static search listings for a plan",
        "tags": [
          "staticsearchlistings"
        ]
      }
    },
    "/static_search_listings_for_procedure": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/StaticSearchListing"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "format": "int32",
            "type": "integer",
            "required": true,
            "description": "valid employer id for user",
            "in": "query",
            "name": "employerId"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": true,
            "description": "valid insurance company id for user",
            "in": "query",
            "name": "insuranceCompanyId"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": true,
            "description": "valid procedure mapping id for user",
            "in": "query",
            "name": "procedureMappingId"
          },
          {
            "type": "string",
            "required": true,
            "description": "valid detail page key for user",
            "in": "query",
            "name": "defaultDetailPageKey"
          }
        ],
        "produces": [
          "application/json"
        ],
        "operationId": "getStaticSearchListingsForProcedure",
        "description": "",
        "summary": "returns all static search listings for a employerId, insuranceCompanyId, procedureMappingId and defaultDetailPageKey",
        "tags": [
          "static_search_listings_for_procedure"
        ]
      }
    },
    "/searchLabel": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/GetSearchLabelResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "type": "string",
            "required": false,
            "in": "query",
            "name": "session_id"
          }
        ],
        "operationId": "getSearchLabel",
        "description": "",
        "summary": "returns label to be used for search box",
        "tags": [
          "searchLabel"
        ]
      }
    },
    "/search": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/InterpretedSearchResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "type": "string",
            "required": true,
            "description": "The query text to search for",
            "in": "query",
            "name": "q"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array",
            "required": false,
            "description": "If known, one or more procedure mapping ids representing the procedure mapping you want to search for",
            "in": "query",
            "name": "pmi"
          },
          {
            "format": "float",
            "default": 0,
            "type": "number",
            "required": true,
            "description": "Latitude of search location",
            "in": "query",
            "name": "lat"
          },
          {
            "format": "float",
            "default": 0,
            "type": "number",
            "required": true,
            "description": "Longitude of search location",
            "in": "query",
            "name": "lon"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "Page number of results to display",
            "in": "query",
            "name": "pag"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "Count of results to display per page",
            "in": "query",
            "name": "ppg"
          },
          {
            "type": "string",
            "required": false,
            "description": "Desired order of search results",
            "in": "query",
            "name": "ord"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "Filter in the following format: {attribute name}|{comma separated allowed values}, e.g. SPECIALTY|123,456",
            "in": "query",
            "name": "fil"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "A list of 'inclusions' to allow or disallow. An 'inclusion' is a group of results that may be injected into the search results and may be toggled. The presence of these results is orthogonal to any of the standard filters, so a separate control is required. An example would be COE searches which allow the user to toggle the presence of Centers of Excellence nationwide as opposed to those in the search radius",
            "in": "query",
            "name": "inc"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array",
            "required": false,
            "description": "A list of provider ids, only relevant to the provider id lookup resource. We should move this to a more specialized classso that it does not appear in the general search documentation",
            "in": "query",
            "name": "pro"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "If given, returns a result for the provider ID in the pinnedProviderResults array regardless of whether the provider is in the search geography or meets the current filtering criteria",
            "in": "query",
            "name": "ppro"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "If given, limits the search to the list of supplied search types",
            "in": "query",
            "name": "search_type"
          },
          {
            "type": "string",
            "required": false,
            "in": "query",
            "name": "current_search_type"
          },
          {
            "default": true,
            "type": "boolean",
            "required": false,
            "description": "Disambiguation responses will be allowed if and only if the value is true (which is the default)",
            "in": "query",
            "name": "disambiguation"
          },
          {
            "format": "double",
            "type": "number",
            "required": false,
            "description": "The radius of the search geography. Default will be chosen if not supplied",
            "in": "query",
            "name": "rad"
          },
          {
            "type": "string",
            "required": false,
            "description": "Deprecated parameter to indicate whether this request originates from the mobile app. Once prozor launches, this and any related code can be removed because the API response will not be different for the mobile app",
            "in": "query",
            "name": "fmt"
          },
          {
            "type": "string",
            "required": false,
            "description": "Deprecated parameter that allowed us to gradually turn on relaxed pricing for mobile apps",
            "in": "query",
            "name": "lvl"
          },
          {
            "type": "string",
            "required": true,
            "description": "The current session ID",
            "in": "query",
            "name": "session_id"
          },
          {
            "type": "string",
            "required": false,
            "description": "If you know you are searching for a drug, you can identify it by its NDC code here. This is not an appropriate location for this parameter and it should be moved to an Rx-specific request class",
            "in": "query",
            "name": "ndc"
          },
          {
            "format": "float",
            "type": "number",
            "required": false,
            "description": "A parameter that only affects getting an enhanced Rx search response. This is an inappropriate locadtion for this parameter and it should be moved to an Rx-specific request class",
            "in": "query",
            "name": "usableQty"
          },
          {
            "type": "string",
            "required": false,
            "description": "For analytics purposes only, allows us to track the source page a search was performed from. Todo: this should be extracted to a separate request to the event service",
            "in": "query",
            "name": "src_page"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "account_id"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "The patient id for which we want to show pricing. This can differ from the user's identity patient for embedded maximum planswhere we allow showing pricing for dependents",
            "in": "query",
            "name": "patientId"
          },
          {
            "default": true,
            "type": "boolean",
            "required": false,
            "in": "query",
            "name": "bh_capable"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "specialtyId"
          },
          {
            "default": false,
            "type": "boolean",
            "required": false,
            "description": "Flag to skip pathfinder",
            "in": "query",
            "name": "skip_elevate_pathfinder"
          }
        ],
        "operationId": "search",
        "description": "",
        "summary": "Performs a search for the supplied query text",
        "tags": [
          "search"
        ]
      }
    },
    "/refreshcache": {
      "post": {
        "responses": {
          "default": {
            "description": "successful operation"
          }
        },
        "parameters": [],
        "operationId": "refreshCache",
        "description": "",
        "summary": "Calls the refresh() method on all beans declared in the refreshables bean",
        "tags": [
          "refreshcache"
        ]
      }
    },
    "/providerdetails": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/ProviderDetailsResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "pid"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "id"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "pmid"
          },
          {
            "type": "string",
            "required": false,
            "in": "query",
            "name": "session_id"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "lid"
          },
          {
            "format": "double",
            "type": "number",
            "required": false,
            "in": "query",
            "name": "lat"
          },
          {
            "format": "double",
            "type": "number",
            "required": false,
            "in": "query",
            "name": "lon"
          }
        ],
        "operationId": "getProviderDetails",
        "description": "",
        "summary": "Returns provider details, legacy op that only supports mobile",
        "tags": [
          "providerdetails"
        ]
      }
    },
    "/procedureselectorwidget": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/ProcedureSelectorWidgetResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "pfid"
          }
        ],
        "operationId": "getProcedureSelectorWidget",
        "description": "",
        "summary": "Returns a widget that can be used to select between different procedure mappings in the argument procedure family",
        "tags": [
          "procedureselectorwidget"
        ]
      }
    },
    "/chroniccondition": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/ChronicConditionResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "type": "string",
            "required": true,
            "description": "The query text to search for",
            "in": "query",
            "name": "q"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array",
            "required": false,
            "description": "If known, one or more procedure mapping ids representing the procedure mapping you want to search for",
            "in": "query",
            "name": "pmi"
          },
          {
            "format": "float",
            "default": 0,
            "type": "number",
            "required": true,
            "description": "Latitude of search location",
            "in": "query",
            "name": "lat"
          },
          {
            "format": "float",
            "default": 0,
            "type": "number",
            "required": true,
            "description": "Longitude of search location",
            "in": "query",
            "name": "lon"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "Page number of results to display",
            "in": "query",
            "name": "pag"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "Count of results to display per page",
            "in": "query",
            "name": "ppg"
          },
          {
            "type": "string",
            "required": false,
            "description": "Desired order of search results",
            "in": "query",
            "name": "ord"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "Filter in the following format: {attribute name}|{comma separated allowed values}, e.g. SPECIALTY|123,456",
            "in": "query",
            "name": "fil"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "A list of 'inclusions' to allow or disallow. An 'inclusion' is a group of results that may be injected into the search results and may be toggled. The presence of these results is orthogonal to any of the standard filters, so a separate control is required. An example would be COE searches which allow the user to toggle the presence of Centers of Excellence nationwide as opposed to those in the search radius",
            "in": "query",
            "name": "inc"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array",
            "required": false,
            "description": "A list of provider ids, only relevant to the provider id lookup resource. We should move this to a more specialized classso that it does not appear in the general search documentation",
            "in": "query",
            "name": "pro"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "If given, returns a result for the provider ID in the pinnedProviderResults array regardless of whether the provider is in the search geography or meets the current filtering criteria",
            "in": "query",
            "name": "ppro"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "If given, limits the search to the list of supplied search types",
            "in": "query",
            "name": "search_type"
          },
          {
            "type": "string",
            "required": false,
            "in": "query",
            "name": "current_search_type"
          },
          {
            "default": true,
            "type": "boolean",
            "required": false,
            "description": "Disambiguation responses will be allowed if and only if the value is true (which is the default)",
            "in": "query",
            "name": "disambiguation"
          },
          {
            "format": "double",
            "type": "number",
            "required": false,
            "description": "The radius of the search geography. Default will be chosen if not supplied",
            "in": "query",
            "name": "rad"
          },
          {
            "type": "string",
            "required": false,
            "description": "Deprecated parameter to indicate whether this request originates from the mobile app. Once prozor launches, this and any related code can be removed because the API response will not be different for the mobile app",
            "in": "query",
            "name": "fmt"
          },
          {
            "type": "string",
            "required": false,
            "description": "Deprecated parameter that allowed us to gradually turn on relaxed pricing for mobile apps",
            "in": "query",
            "name": "lvl"
          },
          {
            "type": "string",
            "required": true,
            "description": "The current session ID",
            "in": "query",
            "name": "session_id"
          },
          {
            "type": "string",
            "required": false,
            "description": "If you know you are searching for a drug, you can identify it by its NDC code here. This is not an appropriate location for this parameter and it should be moved to an Rx-specific request class",
            "in": "query",
            "name": "ndc"
          },
          {
            "format": "float",
            "type": "number",
            "required": false,
            "description": "A parameter that only affects getting an enhanced Rx search response. This is an inappropriate locadtion for this parameter and it should be moved to an Rx-specific request class",
            "in": "query",
            "name": "usableQty"
          },
          {
            "type": "string",
            "required": false,
            "description": "For analytics purposes only, allows us to track the source page a search was performed from. Todo: this should be extracted to a separate request to the event service",
            "in": "query",
            "name": "src_page"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "account_id"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "The patient id for which we want to show pricing. This can differ from the user's identity patient for embedded maximum planswhere we allow showing pricing for dependents",
            "in": "query",
            "name": "patientId"
          },
          {
            "default": true,
            "type": "boolean",
            "required": false,
            "in": "query",
            "name": "bh_capable"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "specialtyId"
          },
          {
            "default": false,
            "type": "boolean",
            "required": false,
            "description": "Flag to skip pathfinder",
            "in": "query",
            "name": "skip_elevate_pathfinder"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "conditionId"
          }
        ],
        "operationId": "getChronicCondition",
        "description": "",
        "summary": "Returns full description of chronic condition including price ranges for all services",
        "tags": [
          "chroniccondition"
        ]
      }
    },
    "/compare": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/CompareResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "type": "string",
            "required": true,
            "description": "The query text to search for",
            "in": "query",
            "name": "q"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array",
            "required": false,
            "description": "If known, one or more procedure mapping ids representing the procedure mapping you want to search for",
            "in": "query",
            "name": "pmi"
          },
          {
            "format": "float",
            "default": 0,
            "type": "number",
            "required": true,
            "description": "Latitude of search location",
            "in": "query",
            "name": "lat"
          },
          {
            "format": "float",
            "default": 0,
            "type": "number",
            "required": true,
            "description": "Longitude of search location",
            "in": "query",
            "name": "lon"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "Page number of results to display",
            "in": "query",
            "name": "pag"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "Count of results to display per page",
            "in": "query",
            "name": "ppg"
          },
          {
            "type": "string",
            "required": false,
            "description": "Desired order of search results",
            "in": "query",
            "name": "ord"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "Filter in the following format: {attribute name}|{comma separated allowed values}, e.g. SPECIALTY|123,456",
            "in": "query",
            "name": "fil"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "A list of 'inclusions' to allow or disallow. An 'inclusion' is a group of results that may be injected into the search results and may be toggled. The presence of these results is orthogonal to any of the standard filters, so a separate control is required. An example would be COE searches which allow the user to toggle the presence of Centers of Excellence nationwide as opposed to those in the search radius",
            "in": "query",
            "name": "inc"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array",
            "required": false,
            "description": "A list of provider ids, only relevant to the provider id lookup resource. We should move this to a more specialized classso that it does not appear in the general search documentation",
            "in": "query",
            "name": "pro"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "If given, returns a result for the provider ID in the pinnedProviderResults array regardless of whether the provider is in the search geography or meets the current filtering criteria",
            "in": "query",
            "name": "ppro"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "If given, limits the search to the list of supplied search types",
            "in": "query",
            "name": "search_type"
          },
          {
            "type": "string",
            "required": false,
            "in": "query",
            "name": "current_search_type"
          },
          {
            "default": true,
            "type": "boolean",
            "required": false,
            "description": "Disambiguation responses will be allowed if and only if the value is true (which is the default)",
            "in": "query",
            "name": "disambiguation"
          },
          {
            "format": "double",
            "type": "number",
            "required": false,
            "description": "The radius of the search geography. Default will be chosen if not supplied",
            "in": "query",
            "name": "rad"
          },
          {
            "type": "string",
            "required": false,
            "description": "Deprecated parameter to indicate whether this request originates from the mobile app. Once prozor launches, this and any related code can be removed because the API response will not be different for the mobile app",
            "in": "query",
            "name": "fmt"
          },
          {
            "type": "string",
            "required": false,
            "description": "Deprecated parameter that allowed us to gradually turn on relaxed pricing for mobile apps",
            "in": "query",
            "name": "lvl"
          },
          {
            "type": "string",
            "required": true,
            "description": "The current session ID",
            "in": "query",
            "name": "session_id"
          },
          {
            "type": "string",
            "required": false,
            "description": "If you know you are searching for a drug, you can identify it by its NDC code here. This is not an appropriate location for this parameter and it should be moved to an Rx-specific request class",
            "in": "query",
            "name": "ndc"
          },
          {
            "format": "float",
            "type": "number",
            "required": false,
            "description": "A parameter that only affects getting an enhanced Rx search response. This is an inappropriate locadtion for this parameter and it should be moved to an Rx-specific request class",
            "in": "query",
            "name": "usableQty"
          },
          {
            "type": "string",
            "required": false,
            "description": "For analytics purposes only, allows us to track the source page a search was performed from. Todo: this should be extracted to a separate request to the event service",
            "in": "query",
            "name": "src_page"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "account_id"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "The patient id for which we want to show pricing. This can differ from the user's identity patient for embedded maximum planswhere we allow showing pricing for dependents",
            "in": "query",
            "name": "patientId"
          },
          {
            "default": true,
            "type": "boolean",
            "required": false,
            "in": "query",
            "name": "bh_capable"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "specialtyId"
          },
          {
            "default": false,
            "type": "boolean",
            "required": false,
            "description": "Flag to skip pathfinder",
            "in": "query",
            "name": "skip_elevate_pathfinder"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "id"
          }
        ],
        "operationId": "compare",
        "description": "",
        "summary": "Deprecated resource that supports an old mobile feature",
        "tags": [
          "compare"
        ]
      }
    },
    "/geocode": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/GeoCodeResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "type": "string",
            "required": false,
            "in": "query",
            "name": "address"
          }
        ],
        "operationId": "geocode",
        "description": "",
        "summary": "Convert an address to latitude/longitude",
        "tags": [
          "geocode"
        ]
      }
    },
    "/geosuggest": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "items": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "type": "array"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "type": "string",
            "required": false,
            "in": "query",
            "name": "q"
          }
        ],
        "operationId": "geosuggest",
        "description": "",
        "summary": "Returns suggestions for a location given text",
        "tags": [
          "geosuggest"
        ]
      }
    },
    "/get_behavioral_health_carveout_content": {
      "get": {
        "responses": {
          "200": {
            "headers": {},
            "schema": {
              "$ref": "#/definitions/BehavioralHealthCarveoutContentResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "insurancePlanId"
          }
        ],
        "operationId": "getBehavioralHealthCarveoutContent",
        "tags": [
          "get_behavioral_health_carveout_content"
        ]
      }
    },
    "/get_browse_care_hierarchy": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/BrowseCareResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "type": "string",
            "required": false,
            "in": "query",
            "name": "session_id"
          }
        ],
        "operationId": "getBrowseCareHierarchy",
        "description": "",
        "summary": "Get the hierarchy of services for the browse care feature",
        "tags": [
          "get_browse_care_hierarchy"
        ]
      }
    },
    "/listbookmarks": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/ListBookmarksResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "type": "string",
            "required": true,
            "description": "The query text to search for",
            "in": "query",
            "name": "q"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array",
            "required": false,
            "description": "If known, one or more procedure mapping ids representing the procedure mapping you want to search for",
            "in": "query",
            "name": "pmi"
          },
          {
            "format": "float",
            "default": 0,
            "type": "number",
            "required": true,
            "description": "Latitude of search location",
            "in": "query",
            "name": "lat"
          },
          {
            "format": "float",
            "default": 0,
            "type": "number",
            "required": true,
            "description": "Longitude of search location",
            "in": "query",
            "name": "lon"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "Page number of results to display",
            "in": "query",
            "name": "pag"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "Count of results to display per page",
            "in": "query",
            "name": "ppg"
          },
          {
            "type": "string",
            "required": false,
            "description": "Desired order of search results",
            "in": "query",
            "name": "ord"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "Filter in the following format: {attribute name}|{comma separated allowed values}, e.g. SPECIALTY|123,456",
            "in": "query",
            "name": "fil"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "A list of 'inclusions' to allow or disallow. An 'inclusion' is a group of results that may be injected into the search results and may be toggled. The presence of these results is orthogonal to any of the standard filters, so a separate control is required. An example would be COE searches which allow the user to toggle the presence of Centers of Excellence nationwide as opposed to those in the search radius",
            "in": "query",
            "name": "inc"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array",
            "required": false,
            "description": "A list of provider ids, only relevant to the provider id lookup resource. We should move this to a more specialized classso that it does not appear in the general search documentation",
            "in": "query",
            "name": "pro"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "If given, returns a result for the provider ID in the pinnedProviderResults array regardless of whether the provider is in the search geography or meets the current filtering criteria",
            "in": "query",
            "name": "ppro"
          },
          {
            "collectionFormat": "multi",
            "items": {
              "type": "string"
            },
            "type": "array",
            "required": false,
            "description": "If given, limits the search to the list of supplied search types",
            "in": "query",
            "name": "search_type"
          },
          {
            "type": "string",
            "required": false,
            "in": "query",
            "name": "current_search_type"
          },
          {
            "default": true,
            "type": "boolean",
            "required": false,
            "description": "Disambiguation responses will be allowed if and only if the value is true (which is the default)",
            "in": "query",
            "name": "disambiguation"
          },
          {
            "format": "double",
            "type": "number",
            "required": false,
            "description": "The radius of the search geography. Default will be chosen if not supplied",
            "in": "query",
            "name": "rad"
          },
          {
            "type": "string",
            "required": false,
            "description": "Deprecated parameter to indicate whether this request originates from the mobile app. Once prozor launches, this and any related code can be removed because the API response will not be different for the mobile app",
            "in": "query",
            "name": "fmt"
          },
          {
            "type": "string",
            "required": false,
            "description": "Deprecated parameter that allowed us to gradually turn on relaxed pricing for mobile apps",
            "in": "query",
            "name": "lvl"
          },
          {
            "type": "string",
            "required": true,
            "description": "The current session ID",
            "in": "query",
            "name": "session_id"
          },
          {
            "type": "string",
            "required": false,
            "description": "If you know you are searching for a drug, you can identify it by its NDC code here. This is not an appropriate location for this parameter and it should be moved to an Rx-specific request class",
            "in": "query",
            "name": "ndc"
          },
          {
            "format": "float",
            "type": "number",
            "required": false,
            "description": "A parameter that only affects getting an enhanced Rx search response. This is an inappropriate locadtion for this parameter and it should be moved to an Rx-specific request class",
            "in": "query",
            "name": "usableQty"
          },
          {
            "type": "string",
            "required": false,
            "description": "For analytics purposes only, allows us to track the source page a search was performed from. Todo: this should be extracted to a separate request to the event service",
            "in": "query",
            "name": "src_page"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "account_id"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "description": "The patient id for which we want to show pricing. This can differ from the user's identity patient for embedded maximum planswhere we allow showing pricing for dependents",
            "in": "query",
            "name": "patientId"
          },
          {
            "default": true,
            "type": "boolean",
            "required": false,
            "in": "query",
            "name": "bh_capable"
          },
          {
            "format": "int32",
            "type": "integer",
            "required": false,
            "in": "query",
            "name": "specialtyId"
          },
          {
            "default": false,
            "type": "boolean",
            "required": false,
            "description": "Flag to skip pathfinder",
            "in": "query",
            "name": "skip_elevate_pathfinder"
          }
        ],
        "operationId": "getBookmarks",
        "description": "",
        "summary": "Returns list of bookmarks for current user",
        "tags": [
          "listbookmarks"
        ]
      }
    },
    "/logevent": {
      "post": {
        "deprecated": true,
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/EventLogResponse"
            },
            "description": "successful operation"
          }
        },
        "parameters": [
          {
            "type": "string",
            "required": false,
            "in": "formData",
            "name": "session_id"
          },
          {
            "type": "string",
            "required": false,
            "in": "formData",
            "name": "name"
          },
          {
            "format": "int64",
            "type": "integer",
            "required": false,
            "in": "formData",
            "name": "time"
          },
          {
            "type": "string",
            "required": false,
            "in": "formData",
            "name": "scope"
          },
          {
            "type": "string",
            "required": false,
            "in": "formData",
            "name": "number"
          },
          {
            "type": "string",
            "required": false,
            "in": "formData",
            "name": "providerid"
          }
        ],
        "operationId": "logEvent",
        "description": "",
        "summary": "Deprecated method to log events through tthe search service",
        "tags": [
          "logevent"
        ]
      }
    }
  },
  "schemes": [
    "http"
  ],
  "tags": [
    {
      "name": "refreshcache"
    },
    {
      "name": "procedureselectorwidget"
    },
    {
      "name": "geocode"
    },
    {
      "name": "geosuggest"
    },
    {
      "name": "searchLabel"
    },
    {
      "name": "search"
    },
    {
      "name": "static_search_listings_for_procedure"
    },
    {
      "name": "logevent"
    },
    {
      "name": "get_browse_care_hierarchy"
    },
    {
      "name": "staticsearchlistings"
    },
    {
      "name": "chroniccondition"
    },
    {
      "name": "listbookmarks"
    },
    {
      "name": "providerdetails"
    },
    {
      "name": "get_behavioral_health_carveout_content"
    },
    {
      "name": "compare"
    }
  ],
  "basePath": "/searchservice",
  "host": "localhost:8220",
  "info": {
    "title": "",
    "version": "1.0.0"
  },
  "swagger": "2.0"
}
davidvc commented 8 years ago

I'd try to fix this but I am just having too difficult a time grokking your code, and it's time for dinner. I'll try and look at it some more tomorrow.

I am very hopeful for this tool, backward compatibility is key key key and this seems like a perfect way to check it, but it has been a bit discouraging :( Hopefully we can get this stabilized and working well.

I'm somewhat new to Ruby. If there are ways to add tests to ensure that whatever errors I find will be included in a test suite, that would be great.

jeffreyc commented 8 years ago

Thanks (again) for the report, and the example! At a glance, based on the stack trace, I would guess that you have a definition that does not have properties, though that's a rough guess. I'll try to look at your Swagger tomorrow and identify the exact problem.

I am very hopeful for this tool, backward compatibility is key key key and this seems like a perfect way to check it, but it has been a bit discouraging :( Hopefully we can get this stabilized and working well.

With your help, I'm sure we can. As I mentioned in your other issue, the Swagger spec is pretty large, and it looks like you're exercising corners of it that we haven't tested yet. But once a nuance is identified, it's usually pretty easy to fix.

I'm somewhat new to Ruby. If there are ways to add tests to ensure that whatever errors I find will be included in a test suite, that would be great.

Definitely. Every bug fix includes test coverage to ensure that the bug is actually fixed and to prevent us from unintentionally reintroducing it in the future. If you're curious, check out https://github.com/civisanalytics/swagger-diff/blob/master/spec/swagger/diff/specification_spec.rb#L181-L210 to see the spec I added to address the formData issue you reported.

davidvc commented 8 years ago

Great, thanks. I'm still a bit lost by the code but if there's a way I can help let me know.

On Wed, Nov 4, 2015 at 8:43 PM jeffreyc notifications@github.com wrote:

Thanks (again) for the report, and the example! At a glance, based on the stack trace, I would guess that you have a definition that does not have properties, though that's a rough guess. I'll try to look at your Swagger tomorrow and identify the exact problem.

I am very hopeful for this tool, backward compatibility is key key key and this seems like a perfect way to check it, but it has been a bit discouraging :( Hopefully we can get this stabilized and working well.

With your help, I'm sure we can. As I mentioned in your other issue, the Swagger spec is pretty large, and it looks like you're exercising corners of it that we haven't tested yet. But once a nuance is identified, it's usually pretty easy to fix.

I'm somewhat new to Ruby. If there are ways to add tests to ensure that whatever errors I find will be included in a test suite, that would be great.

Definitely. Every bug fix includes test coverage to ensure that the bug is actually fixed and to prevent us from unintentionally reintroducing it in the future. If you're curious, check out https://github.com/civisanalytics/swagger-diff/blob/master/spec/swagger/diff/specification_spec.rb#L181-L210 to see the spec I added to address the formData issue you reported.

— Reply to this email directly or view it on GitHub https://github.com/civisanalytics/swagger-diff/issues/13#issuecomment-153955105 .

jeffreyc commented 8 years ago

At a glance, based on the stack trace, I would guess that you have a definition that does not have properties, though that's a rough guess. I'll try to look at your Swagger tomorrow and identify the exact problem.

Yup, that was it:

    "ContentBlock": {
      "type": "object"
    },

I'll look into adding a fix for this.

Great, thanks. I'm still a bit lost by the code but if there's a way I can help let me know.

Keep the bug reports coming, especially with the examples. And should you decide to dive in, PRs are welcome, too.

davidvc commented 8 years ago

Great thanks! I was tempted to try and fix this but I just couldn't figure out how to approach the code safely. I'm too much of a n00b to both Ruby, RSpec and your code base...

On Thu, Nov 5, 2015 at 10:41 AM jeffreyc notifications@github.com wrote:

At a glance, based on the stack trace, I would guess that you have a definition that does not have properties, though that's a rough guess. I'll try to look at your Swagger tomorrow and identify the exact problem.

Yup, that was it:

"ContentBlock": {
  "type": "object"
},

I'll look into adding a fix for this.

Great, thanks. I'm still a bit lost by the code but if there's a way I can help let me know.

Keep the bug reports coming, especially with the examples. And should you decide to dive in, PRs are welcome, too.

— Reply to this email directly or view it on GitHub https://github.com/civisanalytics/swagger-diff/issues/13#issuecomment-154148691 .