> For the complete documentation index, see [llms.txt](https://docs.opsmx.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.opsmx.com/opsmx-1/opsmx-context-engine/additional-resources/upgrading-to-3.7/upgrade-from-3.12.x-to-4.0.3/changes-from-3.12-to-4.0.3-branch.md).

# Changes from 3.12 to 4.0.3 branch

Changes from 3.12 to 4.0.3 branch (standard-gitops-repo) \
Repo URL: <https://github.com/OpsMx/standard-gitops-repo>

### **default/profiles/echo-local.yml:**

* Removed the “**rest enabled**” section
* Added the below section:<br>

  <pre data-overflow="wrap"><code>message-broker:
    endpoint:
      name: rabbitmq     #Currently support rabbitmq only
    username: rabbitmq         #rabbitmq username to connect
    password: Networks123      #rabbitmq password to connect
    host: rabbitmq-service     #rabbitmq endpoint to connect
    port: 5672                 #rabbitmq port to connect
  spinnaker:
    name: preview-saas       #Should be same as account name given in spinnaker setup
    extensibility:
      plugins:
        Opsmx.EchoEventPlugin:
          enabled: true
          version: 1.0.1
          config: null
  </code></pre>

  <figure><img src="https://lh6.googleusercontent.com/gKYFRaQi_DEPgTYaXOQc7sFTUTeXIf12rET7J9Ih13UdILnasPYizy4Qw4OoLvCEvgAubN-JVKXrKif3YRRf4nRzM0FXr_CCxj0A-xcKxdrLZrfEjlV92InS7tM-swDgeBs1hYimTNe1pffqkFIdh6Y" alt=""><figcaption></figcaption></figure>

### default/profiles/fiat-local.yml:

Added the below section from line number 17 to 40.

{% code overflow="wrap" %}

```
#Please uncomment below section if spinnakerrbac is enabled and provide appropriate permissions
#auth.permissions.provider.pipeline: aggregate
#auth.permissions.source.pipeline.prefix:
#  enabled: true
#  prefixes:
#   - prefix: "dev*"
#     permissions:
#       READ:
#       - "devteam-group"
#       - "qateam"
#       WRITE:
#       - "devteam-group"
#       EXECUTE:
#       - "devteam-group"
#   - prefix: "qa*"
#     permissions:
#       READ:
#       - "qateam"
#       - "devteam-group"
#       WRITE:
#       - "qateam"
#       EXECUTE:
#      -  "qateam"
```

{% endcode %}

<figure><img src="https://lh6.googleusercontent.com/BlIbhBDND2_pZc5N1DxGNF3hgRQ8BjWXFmrI9ENKOGc5WbP1V3xHoYwt13zLRHtdwjBqJOpTjLPt7YxyL2no1u-Z5j3fNGeC6hoo6AFdeTU6Rqf8TAfYaP2yARtxlc3URThJzQvolncfhzIQUUtQKmE" alt=""><figcaption></figcaption></figure>

### default/profiles/fiat-overrides.yml:

Added a new file named “**fiat-overrides.yml**” inside the in the path “**default/profiles/fiat-overrides.yml**” with the below manifest:

```
services:
  clouddriver:
    baseUrl: http://stormdriver-ro:8090
    enabled: true

global.spinnaker.timezone: America/Los_Angeles
```

<figure><img src="https://lh4.googleusercontent.com/XhwVkkIOVsOx-IiwiS46gtx21JmTkF0dxdRl8HFUw4Y_OQVjjEo_nCrfE4S50GrhZ3kAiVBBNW15RIvKdaCBlK7DkbsktHfvJiKTcPoZ4zcXzIGGMp5_ToUcCHUV7TkqewWFdJNYA8Hr_ZfJLg3mpvE" alt=""><figcaption></figcaption></figure>

### default/profiles/gate-overrides.yml:

Added a new file named “**gate-overrides.yml**” inside the in the path “**default/profiles/gate-overrides.yml**” with the below manifest:

```
services:
  clouddriver:
    baseUrl: http://stormdriver-ro:8090
    enabled: true
  echo:
    baseUrl: http://spin-echo-worker:8089
    enabled: true

global.spinnaker.timezone: America/Los_Angeles
```

<figure><img src="https://lh4.googleusercontent.com/NAy0IMW6QvXZyshTkfYPXI70IWYrjjKGufKxKQm2q0CTcrt98vkTMTo_3mSk8p5YczK00nA5ZSe2QcBuzxecZtHM6pmE-hBKuF9lVZ9kxDjysQprOngAJ9UTKaNHS_ppIu4ajShFyZZHQ4-mlfNLzcE" alt=""><figcaption></figcaption></figure>

### default/profiles/orca-local.yml:

* In line 14, **label** is changed from pipelineSyncToGit to Pipeline sync to GitHub-OpsMx.

* In line 17, **description** is changed from Update git with pipelines in Spinnaker to Backup the applications and pipelines from Spinnaker to the GitHub.

* In line 19, **application** is changed from sampleapp to "${execution.application}".

* In line 25, **label** is changed from spinnaker applications to Spinnaker applications.

* In line 30, **label** is changed from pipeline names to Pipeline names.

  <pre data-overflow="wrap"><code>job:
    preconfigured:
      kubernetes:
        - label: Pipeline sync to GitHub-OpsMx
          cloudProvider: kubernetes
          credentials: default
          description: Backup the applications and pipelines from Spinnaker to the GitHub
          account: default
          application: "${execution.application}"
          type: pipelineSyncToGit
          waitForCompletion: true
          parameters:
            - defaultValue: "app1,app2,..."
              description: "Please enter spinnaker applications separated by comma"
              label: Spinnaker applications
              mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
              name: spinnaker_applications
            - defaultValue: "pipeline1,pipeline2..."
              description: "Please enter spinnaker pipelines separated by comma"
              label: Pipieline names
              mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
              name: spinnaker_pipelines
            - defaultValue: ""
  </code></pre>

  <figure><img src="https://lh3.googleusercontent.com/wWMwk1ARVSx-tvtl9xZinDEjTf-VwdVOwlXVfaRB9L3qhL1kXIncdiDtZEddcqJQcN2nQe4Aejq-12LgRYMEFxLzFh-Z-qikLbmLNY1ywQxy5Cva08FCFFKfP3OPR2yVoPK38M7nJphf-oItHdHoUb0" alt=""><figcaption></figcaption></figure>

* In line 117, **label** is changed from pipelineSyncToSpinnaker to Pipeline sync to Spinnaker-OpsMx.

* In line 120, **description** is changed from Sync Spinnaker pipelines from git to Syncup the applications and pipelines from GitHub to the Spinnaker.

* In line 122, **application** is changed from sampleapp to "${execution.application}".

* In line 128, **label** is changed from spinnaker applications to Spinnaker Applications.

* In line 133, **label** is changed from pipeline names to Pipeline Names.

  <pre data-overflow="wrap"><code>                      secretName: git-token
                    restartPolicy: Never
                    serviceAccountName: default
        - label: Pipeline sync to Spinnaker-OpsMx
          cloudProvider: kubernetes
          credentials: default
          description: Syncup the applications and pipelines from GitHub to the Spinnaker
          account: default
          application: "${execution.application}"
          type: pipelineSyncToSpinnaker
          waitForCompletion: true
          parameters:
            - defaultValue: "app1,app2,..."
              description: "Please enter spinnaker applications separated by comma"
              label: Spinnaker Applications
              mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
              name: spinnaker_applications
            - defaultValue: "pipeline1,pipeline2..."
              description: "Please enter spinnaker pipelines separated by comma"
              label: Pipieline Names
              mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
              name: spinnaker_pipelines
            - defaultValue: ""
  </code></pre>

  <figure><img src="https://lh6.googleusercontent.com/HlWo9FPqlnAT39ZIac_eiAPl3Gc7gnCfjJbMYtx35-TPfNBJRTduvTZHgpOQNxiZRcmf6IQVgbSvMaogHApFcfdhTVlewRjRpeyX0g7E8xvWqW0SqAgCuI_esLjJ7hfjAU4tgUi5SM53oUsmog6e5yA" alt=""><figcaption></figcaption></figure>

* Added the below section before the “**webhook**” section **starting from line 220** in v4.0.3.<br>

  <pre data-overflow="wrap"><code>label: "Update PR-OpsMx"
          cloudProvider: kubernetes
          credentials: default
          application: "${execution.application}"
          description: Update the PR with the comment
          account: default
          type: customPRStage
          waitForCompletion: true
          parameters:
            - defaultValue: "" 
              description: Please enter the webhook url.
              label: Webhook URL
              mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
              name: url
            - defaultValue: "" 
              description: Please enter method.
              label: Method
              mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
              name: method
            - defaultValue: "" 
              description: Please enter payload.
              label: Payload
              mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
              name: payload
          manifest:
            apiVersion: batch/v1
            kind: Job
            metadata:
              generateName: updateprjob-
              namespace: SPINNAKER_NAMESPACE
              labels:
                 stage: opsmx-custom
                 stagetype: updatepr
            spec:
              backoffLimit: 0
              template:
                spec:
                  containers:
                    - command:
                        - sh
                        - /tmp/initscript/run.sh
                      env:
                        - name: url
                          value:
                        - name: method
                          value:
                        - name: payload
                          value:
                        - name: accesstoken
                          valueFrom:
                           secretKeyRef:
                            key: accesstoken
                            name: updatepr-secrets
                      image: 'opsmxdev/apline-with-curl'
                      imagePullPolicy: Always
                      name: updatepr
                      volumeMounts:
                        - mountPath: /tmp/initscript/
                          name: initscript
                  restartPolicy: Never
                  volumes:
                    - configMap:
                        default: 420
                        name: updatepr-config
                      name: initscript
        - label: Custom notification-OpsMx
          cloudProvider: kubernetes
          credentials: default
          application: "${execution.application}"
          description: Email notification that supports SPEL expression as mailid
          account: default
          type: customnotification
          waitForCompletion: true
          parameters:
            - defaultValue: ""
              description: Please enter the Email address
              label: Email
              mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
              name: email
            - defaultValue: ""
              description: Please enter CC mail address with "," as saperated for more mails.
              label: CC Address
              mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
              name: ccmail
            - defaultValue: ""
              description: Please enter Subject
              label: Subject
              mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
              name: subject
            - defaultValue: ""
              description: Please enter body message.
              label: Body Message
              mapping: 'manifest.spec.template.spec.containers[0].env[3].value'
              name: body
          manifest:
            apiVersion: batch/v1
            kind: Job
            metadata:
              generateName: smtpjob-
              namespace: SPINNAKER_NAMESPACE
              labels:
                 stage: opsmx-custom
                 stagetype: customnotification
            spec:
              backoffLimit: 0
              template:
                spec:
                  containers:
                    - command:
                        - sh
                        - /tmp/initscript/run.sh
                      env:
                        - name: email
                          value:
                        - name: ccmail
                          value:
                        - name: subject
                          value:
                        - name: body
                          value:
                        - name: ssmtpemail
                          valueFrom:
                           secretKeyRef:
                            key: ssmtpemail
                            name: ssmtp-secrets
                        - name: emailpassword
                          valueFrom:
                           secretKeyRef:
                            key: emailpassword
                            name: ssmtp-secrets
                      image: 'opsmxdev/apline-with-curl'
                      imagePullPolicy: Always
                      name: email-notify
                      volumeMounts:
                        - mountPath: /tmp/initscript/
                          name: initscript
                  restartPolicy: Never
                  volumes:
                    - configMap:
                        default: 420
                        name: email-config
                      name: initscript
        - label: Ansible-OpsMx
          cloudProvider: kubernetes
          credentials: default
          application: "${execution.application}"
          description: Run playbooks to a single VM node
          account: default
          type: customAnsibleStage
          waitForCompletion: true
          parameters:
            - defaultValue: ""
              description: Please enter the  Git repo url with out https://
              label: Git repo
              mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
              name: gitrepo
            - defaultValue: ""
              description: Please enter ansiblefile location.
              label: Ansible file
              mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
              name: ansiblefileepo
            - defaultValue: ""
              description: Please enter override inventoryfile.
              label: Inventory file
              mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
              name: inventoryfile
          manifest:
            apiVersion: batch/v1
            kind: Job
            metadata:
              generateName: ansiblejob-
              namespace: SPINNAKER_NAMESPACE
              labels:
                 stage: opsmx-custom
                 stagetype: ansible
            spec:
              backoffLimit: 0
              template:
                spec:
                  containers:
                    - command:
                        - bash
                        - /tmp/initscript/run.sh
                      env:
                        - name: gitrepo
                          value:
                        - name: ansiblefile
                          value:
                        - name: inventoryfile
                          value:
                        - name: gitusername
                          valueFrom:
                           secretKeyRef:
                            key: gitusername
                            name: ansible-secrets
                        - name: gitpassword
                          valueFrom:
                           secretKeyRef:
                            key: gitpassword
                            name: ansible-secrets
                        - name: nodeuser
                          valueFrom:
                           secretKeyRef:
                            key: nodeuser
                            name: ansible-secrets
                        - name: userpassword
                          valueFrom:
                           secretKeyRef:
                            key: userpassword
                            name: ansible-secrets
                      image: 'opsmx11/ansible-job-image:v2'
                      imagePullPolicy: Always
                      name: ansible-test
                      volumeMounts:
                        - mountPath: /tmp/initscript/
                          name: initscript
                  restartPolicy: Never
                  volumes:
                    - configMap:
                        default: 420
                        name: ansible-config
                      name: initscript
        - label: Terraform plan-OpsMx
          cloudProvider: kubernetes
          application: "${execution.application}"
          description: Stage for Terraform plan operation
          account: default
          type: customTSPlanJobStage
          waitForCompletion: true
          parameters:
            - defaultValue: ""
              description: "Please enter the AWS Assure role configured account name."
              label: AWS account name
              mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
              name: awsrole
            - defaultValue: ""
              description: "Please enter the namespace of spinnaker in HA mode."
              label: Spinnaker Namespace
              mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
              name: namespace
            - defaultValue: ""
              description: "Please enter the artifact account name from artifactsaccounts.json, Account where you have tf script present.It is optional if not specified default branch is taken from the configmap"
              label: Tf script account
              mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
              name: scriptaccount
            - defaultValue: "" 
              description: "Please enter the Git Repo Account of TF script."
              label: Tf Plan script Repo
              mapping: 'manifest.spec.template.spec.containers[0].env[3].value'
              name: repo
            - defaultValue: ""
              description: Please enter Location of terraform script in the repo.
              label: Tf Location
              mapping: 'manifest.spec.template.spec.containers[0].env[4].value'
              name: location
            - defaultValue: ""
              description: Please enter overrideVariableFile path if you want to override variables.
              label: Override file
              mapping: 'manifest.spec.template.spec.containers[0].env[5].value'
              name: overridefile
            - defaultValue: ""
              description: Please enter terraform workspace name.
              label: Terraform Workspace
              mapping: 'manifest.spec.template.spec.containers[0].env[6].value'
              name: TF_WORKSPACE
          manifest:
            apiVersion: batch/v1
            kind: Job
            metadata:
              generateName: terraspinplanjob-
              namespace: SPINNAKER_NAMESPACE
              labels:
                 stage: opsmx-custom
                 stagetype: terraform
            spec:
              backoffLimit: 0
              template:
                spec:
                  containers:
                    - command:
                        - role.sh
                      env:
                        - name: awsrole
                          value:
                        - name: namespace
                          value:
                        - name: scriptaccount
                          value:
                        - name: repo
                          value:
                        - name: location
                          value:
                        - name: overridefile
                          value:
                        - name: TF_WORKSPACE
                          value:
                        - name: command
                          value: plan
                      image: 'quay.io/opsmxpublic/customterraformstage:terraform-1.1.7-isd-backendconfig'
                      imagePullPolicy: Always
                      name: terraspinplan
                      volumeMounts:
                        - mountPath: /home/terraspin/opsmx/app/config/
                          name: opsmx-terraspin-backend-config
                  restartPolicy: Never
                  volumes:
                    - secret:
                        secretName: terraspinbackendconfig
                      name: opsmx-terraspin-backend-config
        - label: Terraform apply-OpsMx
          cloudProvider: kubernetes
          application: "${execution.application}"
          description: Stage for Terraform apply operation
          account: default
          type: customTSApplyJobStage
          waitForCompletion: true
          parameters:
            - defaultValue: ""
              description: "Please enter the AWS Assure role configured account name."
              label: AWS account name
              mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
              name: awsrole
            - defaultValue: ""
              description: "Please enter the namespace of spinnaker in HA mode."
              label: Spinnaker Namespace
              mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
              name: namespace
            - defaultValue: ""
              description: "Please enter the artifact account name from artifactsaccounts.json, Account where you have tf script present."
              label: Tf script account
              mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
              name: scriptaccount
            - defaultValue: ""
              description: "Please enter the Git Repo Account of TF script."
              label: Tf Plan script Repo
              mapping: 'manifest.spec.template.spec.containers[0].env[3].value'
              name: repo
            - defaultValue: ""
              description: Please enter Location of terraform script in the repo.
              label: Tf Location
              mapping: 'manifest.spec.template.spec.containers[0].env[4].value'
              name: location
            - defaultValue: ""
              description: Please enter overrideVariableFile path if you want to override variables.
              label: Override file
              mapping: 'manifest.spec.template.spec.containers[0].env[5].value'
              name: overridefile
            - defaultValue: ""
              description: Please enter terraform workspace name.
              label: Terraform Workspace
              mapping: 'manifest.spec.template.spec.containers[0].env[6].value'
              name: TF_WORKSPACE
          manifest:
            apiVersion: batch/v1
            kind: Job
            metadata:
              generateName: terraspinapplyjob-
              namespace: SPINNAKER_NAMESPACE
              labels:
                 stage: opsmx-custom
                 stagetype: terraform
            spec:
              backoffLimit: 0
              template:
                spec:
                  containers:
                    - command:
                        - role.sh
                      env:
                        - name: awsrole
                          value:
                        - name: namespace
                          value:
                        - name: scriptaccount
                          value:
                        - name: repo
                          value:
                        - name: location
                          value:
                        - name: overridefile
                          value:
                        - name: TF_WORKSPACE
                          value:
                        - name: command
                          value: apply
                      image: 'quay.io/opsmxpublic/customterraformstage:terraform-1.1.7-isd-backendconfig'
                      imagePullPolicy: Always
                      name: terraspinapply
                      volumeMounts:
                        - mountPath: /home/terraspin/opsmx/app/config/
                          name: opsmx-terraspin-backend-config
                  restartPolicy: Never
                  volumes:
                    - secret:
                        secretName: terraspinbackendconfig
                      name: opsmx-terraspin-backend-config
        - label: Terraform destroy-OpsMx
          application: "${execution.application}"
          cloudProvider: kubernetes
          credentials: default
          description: Stage for Terraform destroy operation
          account: default
          type: customTSDestroyJobStage
          waitForCompletion: true
          parameters:
            - defaultValue: ""
              description: "Please enter the AWS Assure role configured account name."
              label: AWS account name
              mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
              name: awsrole
            - defaultValue: ""
              description: "Please enter the namespace of spinnaker in HA mode."
              label: Spinnaker Namespace
              mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
              name: namespace
            - defaultValue: ""
              description: "Please enter the artifact account name from artifactsaccounts.json, Account where you have tf script present."
              label: Tf script account
              mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
              name: scriptaccount
            - defaultValue: ""
              description: "Please enter the Git Repo Account of TF script."
              label: Tf Plan script Repo
              mapping: 'manifest.spec.template.spec.containers[0].env[3].value'
              name: repo
            - defaultValue: ""
              description: Please enter Location of terraform script in the repo.
              label: Tf Location
              mapping: 'manifest.spec.template.spec.containers[0].env[4].value'
              name: location
            - defaultValue: ""
              description: Please enter overrideVariableFile path if you want to override variables.
              label: Override file
              mapping: 'manifest.spec.template.spec.containers[0].env[5].value'
              name: overridefile
            - defaultValue: ""
              description: Please enter terraform workspace name.
              label: Terraform Workspace
              mapping: 'manifest.spec.template.spec.containers[0].env[6].value'
              name: TF_WORKSPACE
          manifest:
            apiVersion: batch/v1
            kind: Job
            metadata:
              generateName: terraspindestroyjob-
              namespace: SPINNAKER_NAMESPACE
              labels:
                 stage: opsmx-custom
                 stagetype: terraform
            spec:
              backoffLimit: 0
              template:
                spec:
                  containers:
                    - command:
                        - role.sh
                      env:
                        - name: awsrole
                          value:
                        - name: namespace
                          value:
                        - name: scriptaccount
                          value:
                        - name: repo
                          value:
                        - name: location
                          value:
                        - name: overridefile
                          value:
                        - name: TF_WORKSPACE
                          value:
                        - name: command
                          value: destroy
                      image: 'quay.io/opsmxpublic/customterraformstage:terraform-1.1.7-isd-backendconfig'
                      imagePullPolicy: Always
                      name: terraspindestroy
                      volumeMounts:
                        - mountPath: /home/terraspin/opsmx/app/config/
                          name: opsmx-terraspin-backend-config
                  restartPolicy: Never
                  volumes:
                    - secret:
                        secretName: terraspinbackendconfig
                      name: opsmx-terraspin-backend-config
  </code></pre>

* Under the “**webhook**” section: (**line 707 in v4.0.3** and **line 222 in 3.12**)\
  \
  The label is changed from "**ServiceNow-Create Change Request**" to "**Ansible AWX - Create Instance Group**".\
  \
  `label: "Ansible AWX - Create Instance Group"`<br>

  <figure><img src="https://lh4.googleusercontent.com/iuUf2Sf_YMFI7cxoq-EfnPU3KjmInfEywj-Vs_tSXy_w6iCCd1XsBM2g7VN-PTT1-0DG7SEG6Zs7l_IYsq8dRXH_SjyCXRzZdj6uovDgOshxTLnrnEe8TF6fsY2nES_dkuXNgbr60eG5iVxt8npMnt0" alt=""><figcaption></figcaption></figure>

* Added the below section under the “**webhook**” section after the label: "**Ansible AWX - Create Instance Group**" line: (**line 708 in v4.0.3** and **line 223 in 3.12**)<br>

  <pre data-overflow="wrap"><code>label: "Ansible AWX - Create Instance Group"
      type: AnsibleAWXCreateInstanceGroup
      enabled: true
      description: Stage to create an instance group in ansible awx
      method: POST
      url: http://&#x3C;URL>/api/v2/instance_groups/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "credential": "${parameterValues['credentialid']}",
          "name": "${parameterValues['name']}",
          "pod_spec_override": "${parameterValues['podspecoverride']}",
          "policy_instance_list": [${parameterValues['policyinstancelist']}],
          "is_container_group": ${parameterValues['iscontainergroup']},
          "policy_instance_minimum": ${parameterValues['policyinstanceminimum']},
          "policy_instance_percentage": ${parameterValues['policyinstancepercentage']}
        }
      parameters:
      - label: Name
        name: name
        description: Name of this instance group. (string, required)
        type: string
      - label: Credential Id
        name: credentialid
        description: Credential id. Leave it blank if not needed
        type: string
      - label: Policy Instance Percentage
        name: policyinstancepercentage
        description: Minimum percentage of all instances that will be automatically assigned to this group when new instances come online. (integer, default=0)
        type: string
      - label: Policy Instance Minimum
        name: policyinstanceminimum
        description: Static minimum number of Instances that will be automatically assign to this group when new instances come online. (integer, default=0)
        type: string
      - label: Policy Instance List
        name: policyinstancelist
        description: List of exact-match Instances that will be assigned to this group (json, default=``). Provide value in "" and multiple values by coma seperated
        type: string
      - label: Pod Spec Override
        name: podspecoverride
        description: (string, default="")
        type: string
      - label: Is Container Group
        name: iscontainergroup
        description: true or false
        type: string

    - label: "Ansible AWX - Update Credential of Instance Group"
      type: AnsibleAWXUpdatecredentialofInstanceGroup
      enabled: true
      description: Stage to update credential of an instance group in ansible awx
      method: PATCH
      url: http://&#x3C;URL>/api/v2/instance_groups/${parameterValues['name']}/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "credential": "${parameterValues['credentialid']}",
          "name": "${parameterValues['name']}"
          "is_container_group": true
        }
      parameters:
      - label: Name
        name: name
        description: Name of this instance group. (string, required)
        type: string
      - label: Credential Id
        name: credentialid
        description: Id of credential to which you want to change
        type: string

    - label: "Ansible AWX - Update Instance List of Instance Group"
      type: AnsibleAWXUpdateInstanceListofInstanceGroup
      enabled: true
      description: Stage to update instance list an instance group in ansible awx
      method: PATCH
      url: http://&#x3C;URL>/api/v2/instance_groups/${parameterValues['name']}/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "name": "${parameterValues['name']}",
          "policy_instance_list": [${parameterValues['policyinstancelist']}]
        }
      parameters:
      - label: Name
        name: name
        description: Name of this instance group. (string, required)
        type: string
      - label: Policy Instance List
        name: policyinstancelist
        description: List of exact-match Instances that will be assigned to this group (json, default=``). Provide value in "" and multiple values by coma seperated
        type: string

    - label: "Ansible AWX - Update Policy Instance Minimum of Instance Group"
      type: AnsibleAWXUpdatePolicyInstanceMinimumofInstanceGroup
      enabled: true
      description: Stage to update policy instance minimum an instance group in ansible awx
      method: PATCH
      url: http://&#x3C;URL>/api/v2/instance_groups/${parameterValues['name']}/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "name": "${parameterValues['name']}",
          "policy_instance_minimum": ${parameterValues['policyinstanceminimum']}
        }
      parameters:
      - label: Name
        name: name
        description: Name of this instance group. (string, required)
        type: string
      - label: Policy Instance Minimum
        name: policyinstanceminimum
        description: Static minimum number of Instances that will be automatically assign to this group when new instances come online. (integer, default=0)
        type: string

    - label: "Ansible AWX - Update Policy Instance Percentage of Instance Group"
      type: AnsibleAWXUpdatePolicyInstancePercentageofInstanceGroup
      enabled: true
      description: Stage to update policy instance percentage of an instance group in ansible awx
      method: PATCH
      url: http://&#x3C;URL>/api/v2/instance_groups/${parameterValues['name']}/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "name": "${parameterValues['name']}",
          "policy_instance_percentage": ${parameterValues['policyinstancepercentage']}
        }
      parameters:
      - label: Name
        name: name
        description: Name of this instance group. (string, required)
        type: string
      - label: Policy Instance Percentage
        name: policyinstancepercentage
        description: Minimum percentage of all instances that will be automatically assigned to this group when new instances come online. (integer, default=0)
        type: string

    - label: "Ansible AWX - Update Pod Spec Override of Instance Group"
      type: AnsibleAWXUpdatePodSpecOverrideofInstanceGroup
      enabled: true
      description: Stage to update pod spec override of an instance group in ansible awx
      method: PATCH
      url: http://&#x3C;URL>/api/v2/instance_groups/${parameterValues['name']}/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "name": "${parameterValues['name']}",
          "pod_spec_override": "${parameterValues['podspecoverride']}"
        }
      parameters:
      - label: Name
        name: name
        description: Name of this instance group. (string, required)
        type: string
      - label: Pod Spec Override
        name: podspecoverride
        description: (string, default="")
        type: string

    - label: "Ansible AWX - Name of Instance Group"
      type: AnsibleAWXUpdateNameofInstanceGroup
      enabled: true
      description: Stage to update name of an instance group in ansible awx
      method: PATCH
      url: http://&#x3C;URL>/api/v2/instance_groups/${parameterValues['currentname']}/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "name": "${parameterValues['changename']}"
        }
      parameters:
      - label: Current Name
        name: currentname
        description: Name of the instance group which exists
        type: string
      - label: Change Name 
        name: changename
        description: To what you need to change
        type: string

    - label: "Ansible AWX - Create Job Template"
      type: AnsibleAWXCreateJobTemplate
      enabled: true
      description: Stage to create job template in ansible awx
      method: POST
      url: http://&#x3C;URL>/api/v2/job_templates/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "allow_callbacks": "${parameterValues['allowcallbacks']}",
          "allow_simultaneous": "${parameterValues['allowsimultaneous']}",
          "ask_credential_on_launch": "${parameterValues['askcredentialonlaunch']}",
          "ask_diff_mode_on_launch": "${parameterValues['askdiffmodeonlaunch']}",
          "ask_inventory_on_launch": "${parameterValues['askinventoryonlaunch']}",
          "ask_job_type_on_launch": "${parameterValues['askjobtypeonlaunch']}",
          "ask_limit_on_launch": "${parameterValues['asklimitonlaunch']}",
          "ask_scm_branch_on_launch": "${parameterValues['askscmbranchonlaunch']}",
          "ask_skip_tags_on_launch": "${parameterValues['askskiptagsonlaunch']}",
          "ask_tags_on_launch": "${parameterValues['asktagsonlaunch']}",
          "ask_variables_on_launch": "${parameterValues['askvariablesonlaunch']}",
          "ask_verbosity_on_launch": "${parameterValues['askverbosityonlaunch']}",
          "become_enabled": "${parameterValues['becomeenabled']}",
          "description": "${parameterValues['description']}",
          "diff_mode": "${parameterValues['diffmode']}",
          "extra_vars": "${parameterValues['extravars']}",
          "forks": "${parameterValues['forks']}",
          "host_config_key": "${parameterValues['hostconfigkey']}",
          "job_slice_count": "${parameterValues['jobslicecount']}",
          "job_tags": "${parameterValues['jobtags']}",
          "job_type": "${parameterValues['jobtype']}",
          "limit": "${parameterValues['limit']}",
          "name": "${parameterValues['name']}",
          "playbook": "${parameterValues['playbook']}",
          "scm_branch": "${parameterValues['scmbranch']}",
          "skip_tags": "${parameterValues['skiptags']}",
          "timeout": "${parameterValues['timeout']}",
          "use_fact_cache": "${parameterValues['usefactcache']}",
          "verbosity": "${parameterValues['verbosity']}",
          "webhook_service": "${parameterValues['webhookservice']}",
          "project": "${parameterValues['project']}",
          "webhook_credential": "${parameterValues['webhook_credential']}",
          "inventory": "${parameterValues['inventory']}",
          "execution_environment": "${parameterValues['executionenvironment']}"
        }
      parameters:
      - label: Allow Callbacks
        name: allowcallbacks
        description: true or false
        type: string
      - label: Allow Simultaneous
        name: allowsimultaneous
        description: true or false
        type: string
      - label: Ask Credential on Launch
        name: askcredentialonlaunch
        description: true or false
        type: string
        defaultValue: false
      - label: Ask Diff Mode on Launch
        name: askdiffmodeonlaunch
        description: true or false
        type: string
        defaultValue: false
      - label: Ask Inventory On Launch
        name: askinventoryonlaunch
        description: true or false
        type: string
        defaultValue: false
      - label: Ask Job Type on Launch
        name: askjobtypeonlaunch
        description: true or false
        type: string
        defaultValue: false
      - label: Ask Limit on Launch
        name: asklimitonlaunch
        description: true or false
        type: string
        defaultValue: false
      - label: Ask Scm Branch on Launch
        name: askscmbranchonlaunch
        description: true or false
        type: string
        defaultValue: false
      - label: Ask Skip Tags On Launch
        name: askskiptagsonlaunch
        description: true or false
        type: string
        defaultValue: false
      - label: Ask Tags on Launch
        name: asktagsonlaunch
        description: true or false
        type: string
        defaultValue: false
      - label: Ask Variables on Launch
        name: askvariablesonlaunch
        description: true or false
        type: string
        defaultValue: false
      - label: Ask Verbosity on Launch
        name: askverbosityonlaunch
        description: true or false
        type: string
        defaultValue: false
      - label: Become Enabled
        name: becomeenabled
        description: true or false
        type: string
        defaultValue: false
      - label: Description
        name: description
        description: Description about job template
        type: string
      - label: Diff Mode
        name: diffmode
        description: true or false. If enabled, textual changes made to any templated files on the host are shown in the standard output.
        type: string
        defaultValue: false
      - label: Extra Vars
        name: extravars
        description: (json, default=``)
        type: string
      - label: Forks
        name: forks
        description: (integer, default=0)
        type: string
        defaultValue: 0
      - label: Host Config Key
        name: hostconfigkey
        description: (string, default="")
        type: string
      - label: Job Slice Count
        name: jobslicecount
        description: The number of jobs to slice into at runtime. Will cause the Job Template to launch a workflow if value is greater than 1. (integer, default=1)
        type: string
        defaultValue: 1
      - label: Job Tags
        name: jobtags
        description: (string, default="")
        type: string
      - label: Job Type
        name: jobtype
        description: Run(default) or Check
        type: string
        defaultValue: Run
      - label: Limit
        name: limit
        description: (string, default="")
        type: string
      - label: Name
        name: name
        description: name
        type: string
      - label: playbook
        name: playbook
        description: (string, default="") Eg:- hello_world.yml
        type: string
      - label: Scm Branch
        name: scmbranch
        description: Branch to use in job run. Project default used if blank. Only allowed if project allow_override field is set to true. (string, default="")
        type: string
      - label: Skip Tags
        name: skiptags
        description: (string, default="")
        type: string
      - label: Timeout
        name: timeout
        description: The amount of time (in seconds) to run before the task is canceled. (integer, default=0)
        type: string
        defaultValue: 0
      - label: Use Fact Cache
        name: usefactcache
        description:  If enabled, Tower will act as an Ansible Fact Cache Plugin; persisting facts at the end of a playbook run to the database and caching facts for use by Ansible. (boolean, default=False)
        type: string
        defaultValue: false
      - label: Verbosity
        name: verbosity
        description: 0(Normal)(default) - 1(Verbose) - 2(More Verbose) - 3(Debug) - 4(Connection Debug) - 5(WinRM Debug)
        type: string
        defaultValue: 0
      - label: webhook_service
        name: webhook_service
        description: Service that webhook requests will be accepted from (choice) Eg:- github gitlab
        type: string
      - label: Project
        name: project
        description: (id, default=``)
        type: string
      - label: Webhook Credential
        name: webhookcredential
        description: Personal Access Token for posting back the status to the service API (id, default=null)
        type: string
        defaultValue: null
      - label: Inventory
        name: inventory
        description: (id, default=``)
        type: string
      - label: Execution Environment
        name: executionenvironment
        description: (id, default=null)
        type: string
        defaultValue: null

    - label: "Ansible AWX - Create Project"
      type: AnsibleAWXCreateProject
      enabled: true
      description: Stage to create a project in ansible awx
      method: POST
      url: http://&#x3C;URL>/api/v2/projects/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "name": "${parameterValues['name']}",
          "description": "${parameterValues['description']}",
          "local_path": "${parameterValues['localpath']}",
          "scm_type": "${parameterValues['scmtype']}",
          "scm_url": "${parameterValues['scmurl']}",
          "scm_branch": "${parameterValues['scmbranch']}",
          "scm_refspec": "${parameterValues['scmrefspec']}",
          "scm_clean": "${parameterValues['scmclean']}",
          "scm_delete_on_update": "${parameterValues['scmdeleteonupdate']}",
          "credential": "${parameterValues['credential']}",
          "timeout": "${parameterValues['timeout']}",
          "organization": "${parameterValues['organization']}",
          "scm_update_on_launch": "${parameterValues['scmupdateonlaunch']}",
          "scm_update_cache_timeout": "${parameterValues['scmupdatecachetimeout']}",
          "allow_override": "${parameterValues['allow_override']}",
          "custom_virtualenv": "${parameterValues['customvirtualenv']}"
        }
      parameters:
      - label: Name
        name: name
        description: Name of the project
        type: string
      - label: Description 
        name: description
        description: Description for the project
        type: string
      - label: Local Path
        name: localpath
        description: Local path (relative to PROJECTS_ROOT) containing playbooks and related files for this project. (string, default="")
        type: string
      - label: Scm Type
        name: scmtype
        description: Specifies the source control system used to store the project. (choice). "" (Manual)(default) - git (Git) - hg (Mercurial) - svn (Subversion) - insights (Red Hat Insights) - archive (Remote Archive)
        type: string
      - label: Scm Url
        name: scmurl
        description: The location where the project is stored. (string, default="") Eg:- https://github.com/ansible/test-playbooks.git
        type: string
      - label: Scm Branch
        name: scmbranch
        description: Specific branch, tag or commit to checkout. (string, default="")
        type: string
      - label: Scm Refspec
        name: scmrefspec
        description: For git projects, an additional refspec to fetch. (string, default="")
        type: string
      - label: Scm Clean
        name: scmclean
        description: true or false. Discard any local changes before syncing the project. (boolean, default=False)
        type: string
        defaultValue: false
      - label: Scm Delete on Update
        name: scmdeleteonupdate
        description: true or false. Delete the project before syncing. (boolean, default=False)
        type: string
        defaultValue: false
      - label: Credential
        name: credential
        description: (id, default=``)
        type: string
      - label: Timeout
        name: timeout
        description: The amount of time (in seconds) to run before the task is canceled. (integer, default=0)
        type: string
        defaultValue: 0
      - label: Organization
        name: organization
        description: The organization used to determine access to this template. (id, default=``)
        type: string
      - label: Scm Update on Launch
        name: scmupdateonlaunch
        description: Update the project when a job is launched that uses the project. (boolean, default=False)
        type: string
        defaultValue: false
      - label: Scm Update Cache Timeout
        name: scmupdatecachetimeout
        description: The number of seconds after the last project update ran that a new project update will be launched as a job dependency. (integer, default=0)
        type: string
        defaultValue: 0
      - label: Allow Override
        name: allowoverride
        description: Allow changing the SCM branch or revision in a job template that uses this project. (boolean, default=False)
        type: string
        defaultValue: false
      - label: Custom Virtualenv
        name: customvirtualenv
        description: Local absolute file path containing a custom Python virtualenv to use (string, default="")
        type: string

    - label: "Ansible AWX - Get List of Job Templates"
      type: AnsibleAWXUGetListofJobTemplates
      enabled: true
      description: Stage to list the job templates available
      method: GET
      url: http://&#x3C;URL>/api/v2/job_templates/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: ""
      parameters: ""

    - label: "Ansible AWX - Invoke a Job Template"
      type: AnsibleAWXInvokeJobTemplate
      enabled: true
      description: Stage to invoke job template in ansible awx.
      method: POST
      url: http://&#x3C;URL>/api/v2/job_templates/${parameterValues['jobtemplateid']}/launch/
      customHeaders:
        Authorization: Basic USER:PASSWORD-BASE64
        Content-Type: application/json
      payload: ""
      parameters:
      - label: Job Template Id
        name: jobtemplateid
        description: Job template id
        type: string
    - label: "ServiceNow: Create a change request-OpsMx"
  </code></pre>

* **In line 1234 in v4.0.3** and line **225 in 3.12**: The **description** is changed from Custom stage for servicenow normal request creation to ServiceNow normal request creation.\
  \
  `description: ServiceNow normal request creation`<br>

  <figure><img src="https://lh6.googleusercontent.com/1sanNlHESbjaC2KE-66N_qsZ_BV3GE1Pvf7tG2DQOoDZmJkn3EZf8j50clJ-E5v6dRiyIeibRTSlTLR4qTZ6rpMcipUYGL_b8eYPO-fJ7u6h_mNNZYR0PdrGYeTbU0XUx0y3E18qkyx4H6dDioT19x0" alt=""><figcaption></figcaption></figure>

* In **line 1289 in v4.0.3** and **lines 200 and 201 in 3.12**: the **label** is changed from "ServiceNow-Change State of Change Request" to "ServiceNow: Change request Status-OpsMx".

* In **line 1292 in v4.0.3** and **lines 284 in 3.12**: the **description** is changed from Custom stage to change the state of the normal request to ServiceNow change the state of the normal request.<br>

  ```
  name: type
        description: Emergency, Normal etc 
        type: string
    - label: "ServiceNow: Change request Status-OpsMx"
      type: ChangeStateofChangeRequest
      enabled: true
      description: ServiceNow change the state of the normal request
      method: PATCH
      url: SERVICENOW_URL/api/sn_chg_rest/v1/change/${parameterValues['sysid']}
      customHeaders:
  ```

  <br>

  <figure><img src="https://lh4.googleusercontent.com/p1QWhmDBWy3UfbPRqib-6Go1hbw87woTS3V-EUm9dIRCtwQJOBBXmau7Y5SYemg7xnICUs6Mw0sTtN2pz5623lN6RfHUxzhjdbQoGjVWNBHdOrt_74k1WuLSDjRO4yPgTZnhoUAr2O2AYzoKvTMMkeQ" alt=""><figcaption></figcaption></figure>

* In **line 1316 in v4.0.3** and **lines 308 in 3.12**: the **label** is changed from "ServiceNow-Add Work Note to Change Request" to "ServiceNow: Add a work note to the change request-OpsMx".

* In **line 1319 in v4.0.3** and **lines 312 in 3.12**: the **description** is changed from Custom stage to add work note to normal request to ServiceNow add work note to normal request.<br>

  <pre data-overflow="wrap"><code>name: sysid
        description: Sys id of the request. Can get from url of the request Eg-7067852307303010268affa08c1ed0a6
        type: string
    - label: "ServiceNow: Add a work note to the change request-OpsMx"
      type: AddWorkNotetoChangeRequst
      enabled: true
      description: ServiceNow add work note to normal request
      method: PATCH
      url: SERVICENOW_URL/api/sn_chg_rest/change/${parameterValues['sysid']}
      customHeaders:
  </code></pre>

  <figure><img src="https://lh5.googleusercontent.com/aipGMs2jS9-V48iv6YGx6KKKy3VypU8AAHfXDAtBvAmZbMfPsIH2Mun0qhxBCZouKxmCl111XDpt7JBkUZqceJEOYZl7YYhN15SwwDDzxqaHWCaehZGeaX_c3ZmovyBn37Lfy4Vx95MtjLiZcsqZSO4" alt=""><figcaption></figcaption></figure>

* Under the “**parameters**” section:

  * **line 1338 in v4.0.3** and **line 331 in 3.12**: the **label** is changed from "Service Now: Wait for state" to "ServiceNow: Wait for state-OpsMx".
  * In **line 1341 in v4.0.3** and **line 335 in 3.12**: the description is changed from Custom stage that waits for a specific state on a Service Now Issue to Waits for a specific state on a ServiceNow issue.<br>

    <pre data-overflow="wrap"><code>parameters:
        - label: Work Notes
          name: worknotes
          description: Add work notes to the request
          type: string
        - label: sys_id
          name: sysid
          description: Sys id of the request. Can get from url of the request Eg-7067852307303010268affa08c1ed0a6
          type: string
      - label: "ServiceNow: Wait for state-OpsMx"
        type: waitServiceNowState
        enabled: true
        description: Waits for a specific state on a ServiceNow issue
        method: GET
        url: SERVICENOW_URL/api/sn_chg_rest/change/${parameterValues['sysid']}
        customHeaders:
          Authorization: Basic SERVICENOW_BASE64_USR_PASSWD
          Content-Type: application/json
        failPipeline: true
        progressJsonPath: "result.state.display_value"
        payload: ""
        retryStatusCodes:
          - 200
        statusJsonPath: "result.state.display_value"
        statusUrlResolution: "getMethod"
        successStatuses: ${parameterValues['success']}
        retryStatuses: ${parameterValue['retry']}
        terminalStatuses: ${parameterValues['terminate']}
        canceledStatuses: ${parameterValues['cancel']}
        waitBeforeMonitor: "1"
        waitForCompletion: true
        parameters:
        - label: Sys id
          name: sysid
          description: "sys id of the request"
          type: string
          defaultValue: ""
        - label: Service Now Success States
          name: success
          description: "Service Now issue States that progress the pipeline, e.g,: In Verificaiton etc."
          type: string
          defaultValue: ""
        - label: Service Now Retry States
          name: retry
          description: "Service Now issue states that Retry the stage e.g,: New etc. Can give multiple states coma seperated"
    </code></pre>

* From **line 1329 in v4.0.3** and **line 322 in 3.12** to **1373 in v4.0.3** and **line 367 in 3.12**: the following spaces are removed:<br>

  <figure><img src="https://lh5.googleusercontent.com/90EG_2Dabs3F6Vt1xzHbWeWniavekJIggu7HCHAr236OOXlGGls7t_MUI7wxSAOrQInvDpEX10gkuvWqlH3AId2F_np0ZsDiuTHKcl1xx6o2PRifJslrkL70Xfr8qDu1ATyKiFMPXn3Hr7rkOhpMSfE" alt=""><figcaption></figcaption></figure>

* In line 1374 in v4.0.3 and line 368 in 3.12: the following section is added:<br>

  <pre data-overflow="wrap"><code>type: string
        defaultValue: ""
      - label: Service Now Termination States
        name: terminate
        description: "Service Now issue states that terminates the pipeline, e.g,: Done etc."
        type: string
  </code></pre>

  <br>

  <figure><img src="https://lh4.googleusercontent.com/suJrRcSuDYJ7wYhtdvEhp8XfDK2OgY8nVCmx4RTg6ErIcLcvtM0wGQNOmW-W0y7_07OKvExbJfA6ydqrKH6bZIPYg7HDlqQVvbiBR6IZdAjvAmVb7UKN1whNxxGwpmlw_pHNASr9FHmoyhvXX-_uv50" alt=""><figcaption></figcaption></figure>

* **line 1381 in v4.0.3** and **line 370 in 3.12**: the below section is removed:                                   &#x20;

  ```
  label: Service Now Termination States                                                          
        name: terminate           
        description: "Service Now issue states that terminates the pipeline, e.g,: Done etc."    
        type: string                                                                        
        defaultValue: ""
  ```

* In **line 1386 in v4.0.3** and **line 380 in 3.12**: the **label** is changed from "JIRA: Wait for state" to "JIRA: Wait for state-OpsMx".<br>

  <pre data-overflow="wrap"><code>label: Service Now Canceled States
        name: cancel
        description: "Service Now issue states that cancel the pipeline e.g,: Closed, etc."
        type: string
        defaultValue: Closed
    - label: "JIRA: Wait for state-OpsMx"
  </code></pre>

  <figure><img src="https://lh5.googleusercontent.com/EaTUvI7doHhifhs0dVr-KPZ-mVLZ8SGVFvWf92T7uRh-Wtrwt8SUZXbOUG8zrk0C74YEspK9bbpkPNeiMTmC1pKAGns0NMiq4Dm_ADsNYhlr-xpOgzv7ru-4MRkWbtSZIBXML3Ix4U5xekcRhn3dMDU" alt=""><figcaption></figcaption></figure>

* In **line 1389 in v4.0.3** and **line 383 in 3.12**: the **description** is changed from Custom stage that waits for a specific state on a Jira Issue to Stage that waits for a specific state on a Jira issue.<br>

  <pre data-overflow="wrap"><code>type: waitJiraState
      enabled: true
      description: Stage that waits for a specific state on a Jira issue
      method: GET
      url: JIRA_URL/rest/api/latest/issue/${parameterValues['issue']}
      customHeaders:
  </code></pre>

  <figure><img src="https://lh4.googleusercontent.com/1KwtKmVYCypPQm_CJ5lHZj2JVIUVICFki6Zh7YC-6tnVdI8WBKNHpTTNeSm36TRUeXrU61fuZNV7kakoFqDQdNQjUbjPfi3tkel3f4qr9af_G9t_rV2MMXrpFcDX8f3JX1gnFG0fbdRIGKy8-xwbASI" alt=""><figcaption></figcaption></figure>

* In **line 1435 in v4.0.3** and **429 in 3.12**: the **label** is changed from "JIRA: Create Issue" to "JIRA: Create an issue-OpsMx".

* In **line 1438 in v4.0.3** and **432 in 3.12**: the **description** is changed from Custom stage that add an Issue in Jira to Stage that add an issue in Jira.<br>

  <pre data-overflow="wrap"><code> description: "JIRA issue states that cancel the pipeline e.g,: Done, etc."
        type: string
        defaultValue: Done
    - label: "JIRA: Create an issue-OpsMx"
      type: addJiraIss
      enabled: true
      description: Stage that add an issue in Jira
      method: POST
      url: JIRA_URL/rest/api/2/issue/
      customHeaders:
  </code></pre>

  <figure><img src="https://lh3.googleusercontent.com/dhRTQ-INU2gaXrRfHhQvRa7MtTFNEwzy4T4nkXf4qwQlp_Jj_6vXUXIRbkrjP8bbbI0Uya_smsuQ6pMD2pQ5byNCRg5HJixk8FTvEmH1cgeesTxdnSjqF7sX8sBp-XPCmNyj_QGnJRWMH5agQR7ec5o" alt=""><figcaption></figcaption></figure>

* In line **1491 in v4.0.3** and **485 in 3.12**: the **label** is changed from "JIRA: Comment on Issue" to "JIRA: Comment on issue-OpsMx".

* In **line 1494 in v4.0.3** and **488 in 3.12**: the **description** is changed from Custom stage that posts a comment in a Jira Issue to Stage that posts a comment in a Jira issue.<br>

  <pre data-overflow="wrap"><code>name: description
        description: description
        type: string
    - label: "JIRA: Comment on issue-OpsMx"
      type: comJiraIss
      enabled: true
      description: Stage that posts a comment in a Jira issue
      method: POST
      url: JIRA_URL/rest/api/latest/issue/${parameterValues['issue']}/comment
      customHeaders:
  </code></pre>

  <figure><img src="https://lh5.googleusercontent.com/IZgxYowPC7fpNsa9RV84Puq7xCRc_DFpeUe4d-Y801-63AhVjK5YB8re6qFA7ImD4AjL1T1wHpkT8RonyZaKR7cQ8sMlmYNfrt86Bpin-OvkTOVYPOh9leIEYlFjGK7A5PRj47TUNWkCp3BNNjgiVhQ" alt=""><figcaption></figcaption></figure>

* In **line 1514 in v4.0.3** and **508 in 3.12**: the **label** is changed from label: "JIRA: Update Issue" to "JIRA: Update issue-OpsMx".

* In **line 1517 in v4.0.3** and **511 in 3.12**: the **description** is changed from Custom stage that updates an Issue in Jira to Stage that updates an issue in Jira.<br>

  <pre data-overflow="wrap"><code>name: message
        description: message
        type: string
    - label: "JIRA: Update issue-OpsMx"
      type: updJiraIss
      enabled: true
      description: Stage that updates an issue in Jira
      method: PUT
      url: JIRA_URL/rest/api/latest/issue/${parameterValues['issue']}
      customHeaders:
  </code></pre>

  <figure><img src="https://lh5.googleusercontent.com/2rDCxdbkHpyYT2RhV0v4fD9fJVlAVrULvMIlgNw5mtwViv_WbZPAuqod0uYdXQqaiHWbVem8YiFchdimBDv8mN-lSFAs57TyWdbMLgJsUwXkNkVcqVQrAQGMf3lmnp9KC4k5SSWlMzdvVSWVNub5YfE" alt=""><figcaption></figcaption></figure>

* In **line 1551 in v4.0.3** and **545 in 3.12**: the label is changed from label: "JIRA: Transition Issue" to "JIRA: Transition issue-OpsMx".

* In **line 1554 in v4.0.3** and **548 in 3.12**: the description is changed from Custom stage that transitions an Issue in Jira to Stage that transitions an issue in Jira.<br>

  <pre data-overflow="wrap"><code> label: Description
        name: description
        description: description
    - label: "JIRA: Transition issue-OpsMx"
      type: transJiraIss
      enabled: true
      description: Stage that transitions an issue in Jira
      method: POST
      url: JIRA_URL/rest/api/latest/issue/${parameterValues['issue']}/transitions
      customHeaders:
  </code></pre>

  <figure><img src="https://lh4.googleusercontent.com/Svq5kK0ziYc-A6Ttz-FD0mmlsnDdcF_t5Tde3SiOGZLQ1EUSdGEt2XWqlsqdfpS7ULz7U3eqzJw9cXW7X_zt2rPBpIXor0tWcI6Ivbopnq2v_qvzx6pWPGVY6FYLrWexm_yu_kvJ2u4RYBn3q1NAJk8" alt=""><figcaption></figcaption></figure>

* Added the below section after the **line 569 in 3.12**:<br>

  <pre data-overflow="wrap"><code>label: "ServiceDesk: Create request-OpsMx"
      type: CreateServiceDeskrequest (issue)
      enabled: true
      description: Stage that create an request in ServiceDesk
      method: POST
      url: https://&#x3C;URL>/rest/servicedeskapi/request
      customHeaders:
        Authorization: Basic USER/PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "serviceDeskId": "${parameterValues['projectid']}",
          "requestTypeId": "${parameterValues['requesttypeid']}",
          "requestFieldValues": {
          "summary": "${parameterValues['summary']}",
          "description": "${parameterValues['description']}"
          },
          "requestParticipants": [
            "${parameterValues['requestParticipants']}"
          ]
        }
      parameters:
      - label: Project ID 
        name: projectid
        description: Which Servicedesk project do you want to create an item in?
        type: string
      - label: Request Type Id
        name: requesttypeid
        description: Request type like id "25" for IT HELP 
        type: string
      - label: Summary
        name: summary
        description: summary of the request
        type: string
      - label: Request Participants
        name: requestParticipants
        description: requestParticipants of the request
        type: string
      - label: Description
        name: description
        description: Description of the request
        type: string   
    - label: "ServiceDesk: Comment on issue-OpsMx"
      type: Coment ServiceDesk Issue
      enabled: true
      description: Stage that post a comment in a ServiceDesk issue
      method: POST
      url: https://&#x3C;URL>/rest/servicedeskapi/request/${parameterValues['issue']}/comment
      customHeaders:
        Authorization: Basic USER/PASSWORD-BASE64
        Content-Type: application/json
      payload: |-
        {
          "body": "${parameterValues['message']}",
          "public": true
        }
      parameters:
      - label: Issue ID
        name: issue
        description: Issue
        type: string
      - label: Message
        name: message
        description: message
        type: string
    - label: "ServiceDesk: Wait for state-OpsMx"
      type: waitservicedeskstate
      enabled: true
      description: Stage that waits for a specific state on a Servicedesk issue
      method: GET
      url: https://&#x3C;URL>/rest/servicedeskapi/request/${parameterValues['issue']}/status
      customHeaders:
        Authorization: Basic USER/PASSWORD-BASE64
        Content-Type: application/json
      failPipeline: true
      progressJsonPath: "values[0].status"
      payload: ""
      retryStatusCodes:
        - 200
      statusJsonPath: "values[0].status"
      statusUrlResolution: "getMethod"
      successStatuses: ${parameterValues['success']}
      retryStatuses: ${parameterValue['retry']}
      canceledStatuses: ${parameterValues['cancel']}
      waitBeforeMonitor: "1"
      waitForCompletion: true
      parameters:
      - label: ServiceDesk Issue ID
        name: issue
        description: "The ServiceDesk issue, the default relies on ServiceDesk issue ID extraction"
        type: string
        defaultValue: 
      - label: ServiceDesk Retry States
        name: retry
        description: "ServiceDesk issue states that Retry the stage e.g,: To Do, In Progress, etc."
        type: string
        defaultValue: To Do, In Progress
      - label: ServiceDesk Success States
        name: success
        description: "ServiceDeskissue States that progress the pipeline, e.g,: In Verificaiton etc."
        type: string
        defaultValue: In Verification
      - label: ServiceDesk Canceled States
        name: cancel
        description: "ServiceDesk issue states that cancel the pipeline e.g,: Done, etc."
        type: string
        defaultValue: Done
    - label: "ServiceDesk: Transition issue-OpsMx"
      type: transservicedesk issue status
      enabled: true
      description: Stage that transitions an Servicedesk request status 
      method: POST
      url: https://&#x3C;URL>/rest/servicedeskapi/request/${parameterValues['issue']}/transition
      customHeaders:
        Authorization: Basic USER/PASSWORD-BASE64
        Content-Type: application/json
        X-ExperimentalApi: opt
      payload: |-
       {
          "id": "${parameterValues['targetStageID']}",
          "additionalComment": {
              "body": "${parameterValues['body']}"
          }
       }
      parameters:
      - label: Issue ID
        name: issue
        description: Issue
        type: string
      - label: Target Stage ID
        name: targetStageID
        description: Target ID from the workflow of project
        type: string
      - label: Body
        name: body
        description: Current status as a comment to change the transition
        type: string
  </code></pre>

### default/profiles/orca-overrides.yml:

* Added the below lines from **line 1 to 9:**<br>

  <pre data-overflow="wrap"><code>services:
    clouddriver:
      baseUrl: http://stormdriver-rw:8090
      enabled: true
    echo:
      baseUrl: http://spin-echo-worker:8089
      enabled: true

  global.spinnaker.timezone: America/Los_Angeles
  </code></pre>

  <figure><img src="https://lh4.googleusercontent.com/hK-KeR0WJKAqMfEEWjlQtmz5EhlrVgBGZf31uChPBFFr55fcFKlOCH6qSS4RFD02Ri8bhbE4jxqq6jyGKOjW32zOHLeR3Himj5cAmHgL6TjVu8PlnwbK8w-KXLQKW_ytfAPPd4u-SYID_DmkCJOzcho" alt=""><figcaption></figcaption></figure>

### default/profiles/spinnakerconfig.yml:

Changed **defaultLabel**: master to defaultLabel: BRANCH in line 13 & key: Q7udUkHPuA3VnNlOtksSgQ is changed to key: KEY under line 16.

<figure><img src="https://lh3.googleusercontent.com/Q19obpkxvrtNETbX17DnvLTVieS3q3k8vFwmZ-9aFZ58Z-f3kuyQKP6nuTTiOQ1pqhNwUNzEwffVA3biPrj4wzbJJqdmUIssAATz1qwkBELRk_0knmypY3RY6MfIfeRNHUkXJVVnN4fi1mQOA-CoTl0" alt=""><figcaption></figcaption></figure>

### default/profiles/stormdriver-spinnaker.yml:

Added the below section under 4.0.3 branch from line **1 to 95:**

```
# Copy this file to spinnaker.yml if configuring for stormdriver
# Note that HA Clouddriver and Echo is not supported at this time with Stormdriver
services:
  clouddriver:
    host: 0.0.0.0
    port: 7002
    baseUrl: http://stormdriver:7002
    enabled: true
  echo:
    host: 0.0.0.0
    port: 8089
    baseUrl: http://spin-echo:8089
    enabled: true
  clouddriverCaching:
    host: 0.0.0.0
    port: 7002
    baseUrl: http://spin-clouddriver-caching:7002
    enabled: false
  clouddriverRo:
    host: 0.0.0.0
    port: 7002
    baseUrl: http://spin-clouddriver-ro:7002
    enabled: false
  clouddriverRoDeck:
    host: 0.0.0.0
    port: 7002
    baseUrl: http://spin-clouddriver-ro-deck:7002
    enabled: false
  clouddriverRw:
    host: 0.0.0.0
    port: 7002
    baseUrl: http://spin-clouddriver-rw:7002
    enabled: false
  deck:
    host: 0.0.0.03
    port: 9000
    baseUrl: http://oes.ryzon7-isd40.opsmx.org/deck
    enabled: true
  echoScheduler:
    host: 0.0.0.0
    port: 8089
    baseUrl: http://spin-echo-scheduler:8089
    enabled: false
  echoWorker:
    host: 0.0.0.0
    port: 8089
    baseUrl: http://spin-echo-worker:8089
    enabled: false
  fiat:
    host: 0.0.0.0
    port: 7003
    baseUrl: http://spin-fiat:7003
    enabled: false
  front50:
    host: 0.0.0.0
    port: 8080
    baseUrl: http://spin-front50:8080
    enabled: true
  gate:
    host: 0.0.0.0
    port: 8084
    baseUrl: http://oes.ryzon7-isd40.opsmx.org/gate
    enabled: true
  igor:
    host: 0.0.0.0
    port: 8088
    baseUrl: http://spin-igor:8088
    enabled: true
  kayenta:
    host: 0.0.0.0
    port: 8090
    baseUrl: http://spin-kayenta:8090
    enabled: false
  orca:
    host: 0.0.0.0
    port: 8083
    baseUrl: http://spin-orca:8083
    enabled: true
  redis:
    host: 0.0.0.0
    port: 6379
    baseUrl: redis://:password@RELEASE_NAME-redis-master:6379
    enabled: true
  rosco:
    host: 0.0.0.0
    port: 8087
    baseUrl: http://spin-rosco:8087
    enabled: true
  monitoringDaemon:
    host: 0.0.0.0
    port: 8008
    baseUrl: http://spin-monitoring-daemon:8008
    enabled: false

global.spinnaker.timezone: America/Los_Angeles
```

### default/service-settings/gate.yml:

Added “**enabled:false**”\
Ignore artifactId modification and it is handled in bom file

&#x20;artifactId is updated from quay.io/opsmxpublic/ubi8-oes-spin-gate:v3.12.0 to quay.io/opsmxpublic/ubi8-gate:1.28.4\_6.55.3-ubi8

```
enabled: false
artifactId: quay.io/opsmxpublic/ubi8-gate:1.28.4_6.55.3-ubi8
healthEndpoint: /health
kubernetes:
  useExecHealthCheck: false
  podAnnotations:
    moniker.spinnaker.io/application: spin

env:
  JAVA_OPTS: "-XX:MaxRAMPercentage=100.0"
```

<figure><img src="https://lh3.googleusercontent.com/MAhOhbytNFdoY7AYsB3joUdRVHKQQToAvLnajF6gqtLwC-3vdXPJxKrRShye0K2784tZ7TlzZtIQzrGgdQ9S4IYb8kA6TqWYdmLZhYdpqaqNg-9Ura6k-sWRDlwdf_cTRo-aCXYWHseypzBhmcxyi0c" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.opsmx.com/opsmx-1/opsmx-context-engine/additional-resources/upgrading-to-3.7/upgrade-from-3.12.x-to-4.0.3/changes-from-3.12-to-4.0.3-branch.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
