parameters:
  jenkins:
    client:
      approved_scripts:
        - field java.lang.String value
        - field java.util.ArrayList size
        - method com.cloudbees.jenkins.plugins.sshcredentials.SSHUserPrivateKey getPrivateKey
        - method com.cloudbees.plugins.credentials.common.IdCredentials getId
        - method com.cloudbees.plugins.credentials.common.PasswordCredentials getPassword
        - method com.cloudbees.plugins.credentials.common.UsernameCredentials getUsername
        - method groovy.json.JsonBuilder toPrettyString
        - method groovy.json.JsonSlurperClassic parseText java.lang.String
        - method groovy.lang.GString getBytes
        - method groovy.lang.GroovyObject getProperty java.lang.String
        - method groovy.util.Node attributes
        - method groovy.util.XmlParser parse java.io.File
        - method groovy.util.XmlParser parseText java.lang.String
        - method hudson.PluginManager getPlugins
        - method hudson.PluginWrapper getShortName
        - method hudson.model.Item getName
        - method hudson.model.ItemGroup getItem java.lang.String
        - method hudson.model.ItemGroup getItems
        - method hudson.model.Job getBuildByNumber int
        - method hudson.model.Job getBuilds
        - method hudson.model.Job getLastBuild
        - method hudson.model.Run getEnvironment
        - method hudson.model.Run getId
        - method hudson.model.Run getNumber
        - method hudson.model.Run getResult
        - method hudson.model.Run getTimeInMillis
        - method hudson.model.Run isBuilding
        - method java.io.File getAbsolutePath
        - method java.io.File getName
        - method java.io.File getParent
        - method java.io.Writer write java.lang.String
        - method java.lang.AutoCloseable close
        - method java.lang.Class isInstance java.lang.Object
        - method java.lang.Iterable iterator
        - method java.lang.Throwable printStackTrace
        - method java.net.HttpURLConnection getResponseCode
        - method java.net.HttpURLConnection setRequestMethod java.lang.String
        - method java.net.URI getHost
        - method java.net.URI getPort
        - method java.net.URL openConnection
        - method java.net.URLConnection getHeaderField java.lang.String
        - method java.net.URLConnection getInputStream
        - method java.net.URLConnection getOutputStream
        - method java.net.URLConnection setDoOutput boolean
        - method java.net.URLConnection setRequestProperty java.lang.String java.lang.String
        - method java.util.Collection remove java.lang.Object
        - method java.util.Collection stream
        - method java.util.LinkedHashMap$LinkedHashIterator hasNext
        - method java.util.List subList int int
        - method java.util.Map remove java.lang.Object
        - method java.util.Map size
        - method java.util.regex.MatchResult group int
        - method java.util.regex.MatchResult groupCount
        - method java.util.regex.Matcher find
        - method java.util.regex.Matcher matches
        - method java.util.regex.Pattern matcher java.lang.CharSequence
        - method java.util.stream.Stream collect java.util.stream.Collector
        - method java.util.Calendar add int int
        - method java.util.Calendar getTime
        - method java.util.Date before java.util.Date
        - method jenkins.model.Jenkins getItemByFullName java.lang.String
        - method jenkins.model.Jenkins getPluginManager
        - method org.jenkinsci.plugins.workflow.job.WorkflowRun doStop
        - method org.jenkinsci.plugins.workflow.job.WorkflowRun finish hudson.model.Result java.lang.Throwable
        - method org.jenkinsci.plugins.workflow.support.actions.EnvironmentAction getEnvironment
        - method org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper build
        - new groovy.json.JsonBuilder
        - new groovy.json.JsonBuilder java.lang.Object
        - new groovy.json.JsonSlurperClassic
        - new groovy.util.XmlParser
        - new java.io.File java.lang.String
        - new java.io.IOException java.lang.String
        - new java.io.OutputStreamWriter java.io.OutputStream
        - new java.lang.Exception java.lang.String
        - new java.lang.InterruptedException
        - new java.lang.RuntimeException java.lang.String
        - new java.lang.StringBuilder
        - new java.lang.StringBuilder int
        - new java.net.URI java.lang.String
        - new java.util.ArrayList
        - new java.util.Date
        - new java.util.HashMap
        - staticField groovy.io.FileType FILES
        - staticMethod com.cloudbees.plugins.credentials.CredentialsProvider lookupCredentials java.lang.Class hudson.model.ItemGroup
        - staticMethod java.lang.Double parseDouble java.lang.String
        - staticMethod java.lang.Integer valueOf int
        - staticMethod java.lang.Integer valueOf java.lang.String
        - staticMethod java.lang.Math min int int
        - staticMethod java.lang.String format java.lang.String java.lang.Object[]
        - staticMethod java.lang.String valueOf int
        - staticMethod java.lang.System exit int
        - staticMethod java.lang.System getProperty java.lang.String
        - staticMethod java.lang.System getenv java.lang.String
        - staticMethod java.util.regex.Pattern compile java.lang.String
        - staticMethod java.util.regex.Pattern quote java.lang.String
        - staticMethod java.util.stream.Collectors joining java.lang.CharSequence
        - staticMethod jenkins.model.Jenkins getInstance
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods collect java.util.Map groovy.lang.Closure
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods eachFile java.io.File groovy.io.FileType groovy.lang.Closure
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods find java.util.Collection groovy.lang.Closure
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods findAll java.util.List groovy.lang.Closure
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods get java.util.Map java.lang.Object java.lang.Object
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.lang.Iterable int
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.lang.String int
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.util.List groovy.lang.Range
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getBytes java.io.File
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getText java.io.InputStream
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods hasProperty java.lang.Object java.lang.String
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods iterator java.lang.Object
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods iterator java.lang.Object[]
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods leftShift java.lang.StringBuffer java.lang.Object
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods plus java.util.List java.lang.Iterable
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods plus java.util.List java.lang.Object
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods plus java.util.List java.util.Collection
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods println java.lang.Object java.lang.Object
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods putAt java.lang.Object java.lang.String java.lang.Object
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods sort java.util.Collection
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods split java.lang.String
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods takeRight java.util.List int
        - staticMethod org.codehaus.groovy.runtime.EncodingGroovyMethods encodeBase64 byte[]
        - staticMethod org.codehaus.groovy.runtime.ScriptBytecodeAdapter bitwiseNegate java.lang.Object
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods toBoolean java.lang.Boolean
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.lang.Object java.lang.String
        - method java.io.File listFiles
        - method java.lang.String concat java.lang.String
        - method org.jenkinsci.plugins.workflow.steps.FlowInterruptedException getCauses
        - method org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper getRawBuild
        - method hudson.model.Actionable getAction java.lang.Class
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods toSorted java.lang.Iterable
        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods intersect java.util.List java.lang.Iterable
