changes:
  paths:
    excludeFromHierarchy: true
    actions:
      remove:
      - names: [api path]
        adverbs: [without deprecation, before sunset]
        startWithName: true
    nextLevel:
      operations:
        excludeFromHierarchy: true
        actions:
          remove:
          - names: [endpoint]
            adverbs: [without deprecation, before sunset]
            startWithName: true
          - names: [endpoint]
          add:
          - names: [endpoint]
          deprecate:
          - names: [endpoint]
          reactivate:
          - names: [endpoint]
        nextLevel:
          endpoint:
            excludeFromHierarchy: true
            actions:
              change:
              - names: [operation id]
                startWithName: true
              add/remove:
              - names: [operation id, tag]
                predicativeAdjective: "%s"
              - names: [required request body, optional request body]
                predicativeAdjective: "%s"
                attributiveAdjective: "%s"
              - names: [request parameter]
              - names: [endpoint scheme security]
                predicativeAdjective: "%s"
              decrease:
              - names: [stability]
                startWithName: true
              fail to parse:
              - names: [sunset date]   
            nextLevel:
              endpoint security scheme:
                actions:
                  add/remove:
                  - names: [security scope]
                    predicativeAdjective: "%s"
              responses:
                excludeFromHierarchy: true
                actions:
                  add/remove:
                  - names: [success response status, non-success response status]
                    predicativeAdjective: "%s"
                nextLevel:
                  response:
                    nextLevel:
                      media-type:
                        nextLevel:
                          schema:
                            $ref: 'schema'
              request parameter:
                nextLevel:
                  schema:
                    $ref: 'schema'
              request body:
                nextLevel:
                  media type:
                    nextLevel:
                      schema:
                        $ref: 'schema'
components:
  schema:
    excludeFromHierarchy: true
    actions:
      set/increase/decrease:
      - names: [max, maxLength, min, minLength, minItems, maxItems]
        predicativeAdjective: value
        startWithName: true
      change/generalize:
      - names: [type/format, pattern]
        startWithName: true
      change:
      - names: [discriminator property name, required property, optional property]
        startWithName: true
      add/remove:
      - names: [pattern]
        predicativeAdjective: "%s"
      - names: [default value]
      - names: [discriminator, mapping keys]
        predicativeAdjective: "%s"
    nextLevel:
      anyOf list:
        actions:
          add/remove:
          - names: [schema]
            predicativeAdjective: "%s"
      oneOf list:
        actions:
          add/remove:
          - names: [schema]
            predicativeAdjective: "%s"
      allOf list:
        actions:
          add/remove:
          - names: [schema]
            predicativeAdjective: "%s"
      properties:
        excludeFromHierarchy: true
        nextLevel:
          property:
            $ref: 'schemaLeaf'
  schemaLeaf:
    actions:
      set/increase/decrease:
      - names: [max, maxLength, min, minLength, minItems, maxItems]
        predicativeAdjective: value
        startWithName: true
      change/generalize:
      - names: [type/format, pattern]
        startWithName: true
      change:
      - names: [discriminator property name, required property, optional property]
        startWithName: true
      add/remove:
      - names: [pattern]
        predicativeAdjective: "%s"
      - names: [default value]
      - names: [discriminator, mapping keys]
        predicativeAdjective: "%s"
    nextLevel:
      anyOf list:
        actions:
          add/remove:
          - names: [schema]
            predicativeAdjective: "%s"
      oneOf list:
        actions:
          add/remove:
          - names: [schema]
            predicativeAdjective: "%s"
      allOf list:
        actions:
          add/remove:
          - names: [schema]
            predicativeAdjective: "%s"
