diff --git a/app/javascript/components/automate-method-form/ansibleTowerJobTemplateSchema.js b/app/javascript/components/automate-method-form/ansibleTowerJobTemplateSchema.js
new file mode 100644
index 000000000000..c11030897af3
--- /dev/null
+++ b/app/javascript/components/automate-method-form/ansibleTowerJobTemplateSchema.js
@@ -0,0 +1,68 @@
+import { componentTypes } from '@@ddf';
+
+const baseSchema = (options, selectedOption) => {
+ const commonFields = [
+ {
+ component: componentTypes.TEXTAREA,
+ name: 'specify-details',
+ label: __('Specify details'),
+ condition: {
+ and: [{ when: 'hostValue', is: 'specify' }],
+ },
+ },
+ {
+ component: componentTypes.TEXT_FIELD,
+ id: 'maxttl',
+ name: 'maxttl',
+ label: __('Max TTL(mins)'),
+ },
+ {
+ component: componentTypes.SELECT,
+ id: 'loggingOutput',
+ name: 'loggingOutput',
+ label: __('Logging Output'),
+ },
+ ];
+
+ return {
+ fields: [
+ {
+ component: componentTypes.SELECT,
+ id: 'provider',
+ name: 'provider',
+ label: __('Provider'),
+ options: options,
+ },
+ {
+ component: componentTypes.SELECT,
+ id: 'workflowTemplate',
+ name: 'workflowTemplate',
+ label: __('Workflow Template'),
+ options: options,
+ },
+ ...(selectedOption && selectedOption.id === 'Ansible Tower Workflow Template'
+ ? []
+ : [
+ {
+ component: componentTypes.RADIO,
+ id: 'hostValue',
+ name: 'hostValue',
+ label: __('Hosts'),
+ options: [
+ { value: 'localhost', label: 'Localhost' },
+ { value: 'specify', label: 'Specify host values' },
+ ],
+ },
+ ]),
+ ...commonFields,
+ ],
+ };
+};
+
+const ansibleTowerJobTemplateSchema = (options, selectedOption) => {
+ let schema = baseSchema(options, selectedOption);
+
+ return schema;
+};
+
+export default ansibleTowerJobTemplateSchema;
diff --git a/app/javascript/components/automate-method-form/commonSchema.js b/app/javascript/components/automate-method-form/commonSchema.js
new file mode 100644
index 000000000000..172fe0fc06d5
--- /dev/null
+++ b/app/javascript/components/automate-method-form/commonSchema.js
@@ -0,0 +1,38 @@
+import { componentTypes } from '@@ddf';
+
+const commonSchema = () => ({
+ fields: [
+ {
+ component: componentTypes.TEXT_FIELD,
+ id: 'type',
+ name: 'type',
+ label: __('Type'),
+ disabled: true,
+ initialValue: 'Ansible Tower Job Template',
+ },
+ {
+ component: componentTypes.TEXT_FIELD,
+ id: 'fully-qualified-name',
+ name: 'fully-qualified-name',
+ label: __('Fully Qualified Name'),
+ disabled: true,
+ initialValue: '',
+ },
+ {
+ component: componentTypes.TEXT_FIELD,
+ id: 'name',
+ name: 'name',
+ label: __('Name'),
+ initialValue: '',
+ },
+ {
+ component: componentTypes.TEXT_FIELD,
+ id: 'displayName',
+ name: 'displayname',
+ label: __('Display Name'),
+ initialValue: '',
+ },
+ ],
+});
+
+export default commonSchema;
diff --git a/app/javascript/components/automate-method-form/index.jsx b/app/javascript/components/automate-method-form/index.jsx
new file mode 100644
index 000000000000..2deed1e7ccb3
--- /dev/null
+++ b/app/javascript/components/automate-method-form/index.jsx
@@ -0,0 +1,50 @@
+import React, { useState } from 'react';
+import { Dropdown } from 'carbon-components-react';
+import MiqFormRenderer from '@@ddf';
+import commonSchema from './commonSchema';
+import ansibleTowerJobTemplateSchema from './ansibleTowerJobTemplateSchema';
+
+const AutomateMethodForm = (props) => {
+ const [selectedOption, setSelectedOption] = useState(null);
+
+ const handleSelect = (selectedItem) => {
+ setSelectedOption(selectedItem);
+ };
+
+ const options = props.availableLocations.map(([id, label]) => ({ id, label }));
+
+ const ansibleSchema =
+ (selectedOption && selectedOption.id === 'Ansible Tower Job Template') ||
+ (selectedOption && selectedOption.id === 'Ansible Tower Workflow Template') ||
+ (selectedOption && selectedOption.id === 'Playbook')
+ ? [
+ ...commonSchema(options).fields,
+ ...ansibleTowerJobTemplateSchema(options, selectedOption).fields,
+ ]
+ : commonSchema().fields;
+ console.log(selectedOption)
+ return (
+ <>
+ {selectedOption &&
+ (selectedOption.id === 'Ansible Tower Job Template' ||
+ selectedOption.id === 'Ansible Tower Workflow Template' ||
+ selectedOption.id === 'Ansible Tower Workflow Playbook' ) ? (
+