(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-federation-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: [81 89]
              ) (/..)
            }
          spids: [80]
        )
      ]
      spids: [80]
    )
    (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: [120 128]
              )
            }
          spids: [119]
        )
      ]
      spids: [119]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DEFAULT_OUTPUT)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPO_DIR) (/federation/docs/api-reference))}
          spids: [130]
        )
      ]
      spids: [130]
    )
    (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: [139 145]
              )
            }
          spids: [138]
        )
      ]
      spids: [138]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SWAGGER_SPEC_PATH)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPO_DIR) (/federation/apis/swagger-spec))}
          spids: [148]
        )
      ]
      spids: [148]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GROUP_VERSIONS)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [{(DQ (federation/v1beta1))} {(DQ (v1))} {(DQ (extensions/v1beta1))}]
              )
            }
          spids: [157]
        )
      ]
      spids: [157]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:GV_DIRS) op:Equal rhs:{(ArrayLiteralPart)} spids:[172])]
      spids: [172]
    )
    (ForEach
      iter_name: gv
      iter_words: [
        {
          (DQ 
            (BracedVarSub
              token: <VSub_Name GROUP_VERSIONS>
              bracket_op: (WholeArray op_id:Lit_At)
              spids: [183 188]
            )
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name gv)}
                              right: {(DQ (federation/v1beta1))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (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: [222 236]
                                      )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [215]
                        )
                      ]
                      spids: [215]
                    )
                  ]
                  spids: [16777215 212]
                )
              ]
              else_action: [
                (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: [251 265]
                                  )
                                )
                              }
                            ]
                          )
                        }
                      spids: [244]
                    )
                  ]
                  spids: [244]
                )
              ]
              spids: [241 270]
            )
          ]
          spids: [192 272]
        )
      spids: [181 190]
    )
    (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 GROUP_VERSIONS>
                  bracket_op: (WholeArray op_id:Lit_At)
                  spids: [277 282]
                )
              )
            }
          spids: [275]
        )
        (env_pair
          name: GV_DIRS
          val: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Name GV_DIRS>
                  bracket_op: (WholeArray op_id:Lit_At)
                  spids: [287 292]
                )
              )
            }
          spids: [285]
        )
      ]
    )
  ]
)