diff --git a/src/main/resources/functions/component.xml b/src/main/resources/functions/component.xml
index a017337..79900d1 100644
--- a/src/main/resources/functions/component.xml
+++ b/src/main/resources/functions/component.xml
@@ -81,5 +81,33 @@
updateCampaign.xml
Updates a campaign.
+
+ createAdCreative.xml
+ Creates an ad creative.
+
+
+ createCustomAudience.xml
+ Creates a custom audience.
+
+
+ deleteAdCreative.xml
+ Deletes an ad creative.
+
+
+ deleteCustomAudience.xml
+ Delete a custom audience.
+
+
+ getAdCreatives.xml
+ Get ad creatives.
+
+
+ getCustomAudiences.xml
+ Get custom audiences.
+
+
+ updateCustomAudience.xml
+ Updates a custom audience.
+
diff --git a/src/main/resources/functions/createAdCreative.xml b/src/main/resources/functions/createAdCreative.xml
new file mode 100644
index 0000000..1d1e4cb
--- /dev/null
+++ b/src/main/resources/functions/createAdCreative.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/functions/createCustomAudience.xml b/src/main/resources/functions/createCustomAudience.xml
new file mode 100644
index 0000000..5873a90
--- /dev/null
+++ b/src/main/resources/functions/createCustomAudience.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "name": "${args.arg1}", #if>
+ <#if (args.arg2)?has_content>
+ "description": "${args.arg2}", #if>
+ <#if (args.arg3)?has_content>
+ "subtype": "${args.arg3}", #if>
+ <#if (args.arg4)?has_content>
+ "retention_days": "${args.arg4}", #if>
+ <#if (args.arg5)?has_content>
+ "rule": "${args.arg5}", #if>
+ <#if (args.arg6)?has_content>
+ "customer_file_source": "${args.arg6}" #if>
+ }]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/functions/deleteAdCreative.xml b/src/main/resources/functions/deleteAdCreative.xml
new file mode 100644
index 0000000..4cf2d3e
--- /dev/null
+++ b/src/main/resources/functions/deleteAdCreative.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/functions/deleteCustomAudience.xml b/src/main/resources/functions/deleteCustomAudience.xml
new file mode 100644
index 0000000..671325c
--- /dev/null
+++ b/src/main/resources/functions/deleteCustomAudience.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/functions/getAdCreatives.xml b/src/main/resources/functions/getAdCreatives.xml
new file mode 100644
index 0000000..0ed0704
--- /dev/null
+++ b/src/main/resources/functions/getAdCreatives.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/functions/getCustomAudiences.xml b/src/main/resources/functions/getCustomAudiences.xml
new file mode 100644
index 0000000..6a831df
--- /dev/null
+++ b/src/main/resources/functions/getCustomAudiences.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/functions/updateCustomAudience.xml b/src/main/resources/functions/updateCustomAudience.xml
new file mode 100644
index 0000000..424a3de
--- /dev/null
+++ b/src/main/resources/functions/updateCustomAudience.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "name": "${args.arg1}", #if>
+ <#if (args.arg2)?has_content>
+ "description": "${args.arg2}", #if>
+ <#if (args.arg3)?has_content>
+ "retention_days": "${args.arg3}", #if>
+ <#if (args.arg4)?has_content>
+ "rule": "${args.arg4}", #if>
+ <#if (args.arg5)?has_content>
+ "opt_out_link": "${args.arg5}" #if>
+ }]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/uischema/createAdCreative.json b/src/main/resources/uischema/createAdCreative.json
new file mode 100644
index 0000000..1bdb944
--- /dev/null
+++ b/src/main/resources/uischema/createAdCreative.json
@@ -0,0 +1,50 @@
+{
+ "connectorName": "facebookAds",
+ "operationName": "createAdCreative",
+ "title": "Create Ad Creative",
+ "help": "This is Create Ad Creatives operation.",
+ "elements": [
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "General",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "configRef",
+ "displayName": "Connection",
+ "inputType": "connection",
+ "allowedConnectionTypes": [
+ "facebookAds"
+ ],
+ "defaultType": "connection.facebookAds",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "Connection to be used"
+ }
+ },
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "Search",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "search",
+ "displayName": "Search",
+ "inputType": "searchBox",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "Search for an attribute using the display name"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+}
diff --git a/src/main/resources/uischema/createCustomAudience.json b/src/main/resources/uischema/createCustomAudience.json
new file mode 100644
index 0000000..cb6eaf5
--- /dev/null
+++ b/src/main/resources/uischema/createCustomAudience.json
@@ -0,0 +1,118 @@
+{
+ "connectorName": "facebookAds",
+ "operationName": "createCustomAudience",
+ "title": "Create Custom Audience",
+ "help": "This is Create Custom Audience operation.",
+ "elements": [
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "General",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "configRef",
+ "displayName": "Connection",
+ "inputType": "connection",
+ "allowedConnectionTypes": [
+ "facebookAds"
+ ],
+ "defaultType": "connection.facebookAds",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "Connection to be used"
+ }
+ },
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "Search",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "search",
+ "displayName": "Search",
+ "inputType": "searchBox",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "Search for an attribute using the display name"
+ }
+ }
+ ]
+ }
+ }
+ ,{
+ "type":"attributeGroup",
+ "value":{
+ "groupName": "Request Body",
+ "elements":[
+ {
+ "type":"attribute",
+ "value":{
+ "name": "name",
+ "displayName": "Name",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "Name of the custom audience. Type: string"
+ }
+ }, {
+ "type":"attribute",
+ "value":{
+ "name": "description",
+ "displayName": "Description",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "Description of the custom audience. Type: string"
+ }
+ }, {
+ "type":"attribute",
+ "value":{
+ "name": "subtype",
+ "displayName": "Subtype",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "The subtype of the custom audience. Type: string"
+ }
+ }, {
+ "type":"attribute",
+ "value":{
+ "name": "retentionDays",
+ "displayName": "Retention Days",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "The number of days to retain audience members. Type: integer"
+ }
+ }, {
+ "type":"attribute",
+ "value":{
+ "name": "rule",
+ "displayName": "Rule",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "A rule that defines this custom audience. Type: string"
+ }
+ }, {
+ "type":"attribute",
+ "value":{
+ "name": "customerFileSource",
+ "displayName": "Customer File Source",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "The origin of the customer data. Type: string"
+ }
+ } ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+}
diff --git a/src/main/resources/uischema/deleteAdCreative.json b/src/main/resources/uischema/deleteAdCreative.json
new file mode 100644
index 0000000..4d8bff0
--- /dev/null
+++ b/src/main/resources/uischema/deleteAdCreative.json
@@ -0,0 +1,68 @@
+{
+ "connectorName": "facebookAds",
+ "operationName": "deleteAdCreative",
+ "title": "Delete Ad Creative",
+ "help": "This is Delete Ad Creatives operation.",
+ "elements": [
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "General",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "configRef",
+ "displayName": "Connection",
+ "inputType": "connection",
+ "allowedConnectionTypes": [
+ "facebookAds"
+ ],
+ "defaultType": "connection.facebookAds",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "Connection to be used"
+ }
+ },
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "Search",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "search",
+ "displayName": "Search",
+ "inputType": "searchBox",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "Search for an attribute using the display name"
+ }
+ }
+ ]
+ }
+ }
+ ,{
+ "type":"attributeGroup",
+ "value":{
+ "groupName": "Parameters",
+ "elements":[
+ {
+ "type":"attribute",
+ "value":{
+ "name": "adCreativeId",
+ "displayName": "Ad Creative Id",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "The ID of the ad creative."
+ }
+ } ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+}
diff --git a/src/main/resources/uischema/deleteCustomAudience.json b/src/main/resources/uischema/deleteCustomAudience.json
new file mode 100644
index 0000000..0ebdcfa
--- /dev/null
+++ b/src/main/resources/uischema/deleteCustomAudience.json
@@ -0,0 +1,68 @@
+{
+ "connectorName": "facebookAds",
+ "operationName": "deleteCustomAudience",
+ "title": "Delete Custom Audience",
+ "help": "This is Delete Custom Audience operation.",
+ "elements": [
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "General",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "configRef",
+ "displayName": "Connection",
+ "inputType": "connection",
+ "allowedConnectionTypes": [
+ "facebookAds"
+ ],
+ "defaultType": "connection.facebookAds",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "Connection to be used"
+ }
+ },
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "Search",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "search",
+ "displayName": "Search",
+ "inputType": "searchBox",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "Search for an attribute using the display name"
+ }
+ }
+ ]
+ }
+ }
+ ,{
+ "type":"attributeGroup",
+ "value":{
+ "groupName": "Parameters",
+ "elements":[
+ {
+ "type":"attribute",
+ "value":{
+ "name": "customAudienceId",
+ "displayName": "Custom Audience Id",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "The ID of the custom audience."
+ }
+ } ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+}
diff --git a/src/main/resources/uischema/getAdCreatives.json b/src/main/resources/uischema/getAdCreatives.json
new file mode 100644
index 0000000..67da615
--- /dev/null
+++ b/src/main/resources/uischema/getAdCreatives.json
@@ -0,0 +1,50 @@
+{
+ "connectorName": "facebookAds",
+ "operationName": "getAdCreatives",
+ "title": "Get Ad Creatives",
+ "help": "This is Get Ad Creatives operation.",
+ "elements": [
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "General",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "configRef",
+ "displayName": "Connection",
+ "inputType": "connection",
+ "allowedConnectionTypes": [
+ "facebookAds"
+ ],
+ "defaultType": "connection.facebookAds",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "Connection to be used"
+ }
+ },
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "Search",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "search",
+ "displayName": "Search",
+ "inputType": "searchBox",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "Search for an attribute using the display name"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+}
diff --git a/src/main/resources/uischema/getCustomAudiences.json b/src/main/resources/uischema/getCustomAudiences.json
new file mode 100644
index 0000000..aeb2c8b
--- /dev/null
+++ b/src/main/resources/uischema/getCustomAudiences.json
@@ -0,0 +1,50 @@
+{
+ "connectorName": "facebookAds",
+ "operationName": "getCustomAudiences",
+ "title": "Get Custom Audiences",
+ "help": "This is Get Custom Audiences operation.",
+ "elements": [
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "General",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "configRef",
+ "displayName": "Connection",
+ "inputType": "connection",
+ "allowedConnectionTypes": [
+ "facebookAds"
+ ],
+ "defaultType": "connection.facebookAds",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "Connection to be used"
+ }
+ },
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "Search",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "search",
+ "displayName": "Search",
+ "inputType": "searchBox",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "Search for an attribute using the display name"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+}
diff --git a/src/main/resources/uischema/updateCustomAudience.json b/src/main/resources/uischema/updateCustomAudience.json
new file mode 100644
index 0000000..a575678
--- /dev/null
+++ b/src/main/resources/uischema/updateCustomAudience.json
@@ -0,0 +1,126 @@
+{
+ "connectorName": "facebookAds",
+ "operationName": "updateCustomAudience",
+ "title": "Update Custom Audience",
+ "help": "This is Update Custom Audience operation.",
+ "elements": [
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "General",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "configRef",
+ "displayName": "Connection",
+ "inputType": "connection",
+ "allowedConnectionTypes": [
+ "facebookAds"
+ ],
+ "defaultType": "connection.facebookAds",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "Connection to be used"
+ }
+ },
+ {
+ "type": "attributeGroup",
+ "value": {
+ "groupName": "Search",
+ "elements": [
+ {
+ "type": "attribute",
+ "value": {
+ "name": "search",
+ "displayName": "Search",
+ "inputType": "searchBox",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "Search for an attribute using the display name"
+ }
+ }
+ ]
+ }
+ }
+ ,{
+ "type":"attributeGroup",
+ "value":{
+ "groupName": "Parameters",
+ "elements":[
+ {
+ "type":"attribute",
+ "value":{
+ "name": "customAudienceId",
+ "displayName": "Custom Audience Id",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "true",
+ "helpTip": "The ID of the custom audience."
+ }
+ } ]
+ }
+ }
+ ,{
+ "type":"attributeGroup",
+ "value":{
+ "groupName": "Request Body",
+ "elements":[
+ {
+ "type":"attribute",
+ "value":{
+ "name": "name",
+ "displayName": "Name",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "Name of the custom audience. Type: string"
+ }
+ }, {
+ "type":"attribute",
+ "value":{
+ "name": "description",
+ "displayName": "Description",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "Description of the custom audience. Type: string"
+ }
+ }, {
+ "type":"attribute",
+ "value":{
+ "name": "retentionDays",
+ "displayName": "Retention Days",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "The number of days to retain audience members. Type: integer"
+ }
+ }, {
+ "type":"attribute",
+ "value":{
+ "name": "rule",
+ "displayName": "Rule",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "A rule that defines this custom audience. Type: string"
+ }
+ }, {
+ "type":"attribute",
+ "value":{
+ "name": "optOutLink",
+ "displayName": "Opt Out Link",
+ "inputType": "stringOrExpression",
+ "defaultValue": "",
+ "required": "false",
+ "helpTip": "URL where users can opt out. Type: string"
+ }
+ } ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+}