(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(echo)} 
      {
        (DQ 
          (
'Note: This assumes that swagger spec has been updated. Please run hack/update-swagger-spec.sh to ensure that.'
          )
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_ROOT)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [78 86]
              ) (/..)
            }
          spids: [77]
        )
      ]
      spids: [77]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/init.sh))})
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/swagger.sh))})
    (C {(kube) (Lit_Other ':') (Lit_Other ':') (golang) (Lit_Other ':') (Lit_Other ':') (setup_env)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:REPO_DIR)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name REPO_DIR>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: {(DQ (${ VSub_Name KUBE_ROOT))}
                  )
                spids: [117 125]
              )
            }
          spids: [116]
        )
      ]
      spids: [116]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DEFAULT_OUTPUT)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPO_DIR) (/docs/api-reference))}
          spids: [127]
        )
      ]
      spids: [127]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:OUTPUT)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Number 1>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: {(${ VSub_Name DEFAULT_OUTPUT)}
                  )
                spids: [136 142]
              )
            }
          spids: [135]
        )
      ]
      spids: [135]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SWAGGER_SPEC_PATH)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPO_DIR) (/api/swagger-spec))}
          spids: [145]
        )
      ]
      spids: [145]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ALL_GROUP_VERSIONS)
          op: Equal
          rhs: {(ArrayLiteralPart words:[{(${ VSub_Name KUBE_AVAILABLE_GROUP_VERSIONS)}])}
          spids: [154]
        )
      ]
      spids: [154]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:INTERESTING_GROUP_VERSIONS)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [161]
        )
      ]
      spids: [161]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:GV_DIRS) op:Equal rhs:{(ArrayLiteralPart)} spids:[165])]
      spids: [165]
    )
    (ForEach
      iter_name: gv
      iter_words: [
        {
          (DQ 
            (BracedVarSub
              token: <VSub_Name ALL_GROUP_VERSIONS>
              bracket_op: (WholeArray op_id:Lit_At)
              spids: [176 181]
            )
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (' ') (${ VSub_Name KUBE_NONSERVER_GROUP_VERSIONS) (' '))}
                              right: 
                                {(Lit_Other '*') (DQ (' ') (${ VSub_Name gv) (' ')) (Lit_Other '*')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [16777215 219]
                )
              ]
              spids: [16777215 225]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INTERESTING_GROUP_VERSIONS)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(${ VSub_Name gv)}])}
                  spids: [229]
                )
              ]
              spids: [229]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GV_DIRS)
                  op: PlusEqual
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (DQ (${ VSub_Name REPO_DIR) (/) 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C 
                                        {(kube) (Lit_Other ':') (Lit_Other ':') (util) (Lit_Other ':') 
                                          (Lit_Other ':') (group-version-to-pkg-path)
                                        } {(DQ (${ VSub_Name gv))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [244 258]
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [237]
                )
              ]
              spids: [237]
            )
          ]
          spids: [185 262]
        )
      spids: [174 183]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ':') (Lit_Other ':') (swagger) (Lit_Other ':') (Lit_Other ':') 
          (gen_api_ref_docs)
        }
        {(DQ (${ VSub_Name SWAGGER_SPEC_PATH))}
        {(DQ (${ VSub_Name OUTPUT))}
      ]
      more_env: [
        (env_pair
          name: GROUP_VERSIONS
          val: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Name INTERESTING_GROUP_VERSIONS>
                  bracket_op: (WholeArray op_id:Lit_At)
                  spids: [267 272]
                )
              )
            }
          spids: [265]
        )
        (env_pair
          name: GV_DIRS
          val: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Name GV_DIRS>
                  bracket_op: (WholeArray op_id:Lit_At)
                  spids: [277 282]
                )
              )
            }
          spids: [275]
        )
      ]
    )
  ]
)