BassemE/mulesoft-documentation-embeddings huggingface dataset:
Configure the Platform Cache | MuleSoft Documentation
# Configure the Platform Cache
Improve the performance of pages and components in your Salesforce Experience Cloud site by using the platform cache.
The platform cache has two parts: a session cache that holds data specific to one user and their session, and an organization cache that holds data accessed by multiple users in the organization.
Cached objects include: 

Applications
    
Details of the client applications of the users 

API Versions
    
Basic details of API versions from Exchange 

API Documentation
    
API version information and documentation pages 

API Instances
    
Available instances of each published API version 

Categories
    
Categories defined in Exchange for organizing APIs 

API Categories
    
Category values that have been applied to APIs in Exchange 

API Tier Limits
    
Service Level Access (SLA) tier limits, such as the number of requests an API can make 

API Query
    
Responses of the "Try It" operation in the API Console
Set which parts are enabled and the amount of time the cache keeps each type of data:
  1. Log in to your Salesforce organization.
  2. In **Setup** , click **Custom Metadata Types**.
  3. Next to the label **ACM Platform Cache Metadata** , click **Manage Records**.
  4. Next to the label **ACM Configuration** , click **Edit**.
  5. Use the **Session Cache Enabled** and **Organization Cache Enabled** checkboxes to enable or disable the corresponding cache.
  6. Set the number of seconds that cached data remains in the cache for applications, API versions, documentation content, instances, categories and category values, tier limits, and queries.
  7. If you want to see the minimum and maximum number of seconds for each entity, hover over the question mark (?) next to each field name.
  8. If you want to disable caching of an entity, set that field to zero seconds.
  9. Click **Save**.


Cache size defaults to zero. To finish configuring the caches, set the cache size:
  1. Log in to your Salesforce organization.
  2. In **Setup** , click **Platform Cache**.
  3. Click the `ACMCache` partition.
  4. Click **Edit**.
  5. Set the size of each cache (in megabytes) in the **Organization** field.
The sum of the sizes of the session cache and the organization cache cannot be more than your organization’s cache capacity, as determined by your license.
  6. Click **Save**.


The new configuration is effective immediately.
To see how much of each cache is in use, you can click **Recalculate**.
## See Also
  * Salesforce Platform Cache documentation
  * Platform Cache Basics module on Trailhead
Check Process | MuleSoft Documentation
# Check Process
This action step enables you to check if a process is running or not and either kill it or launch another program.
## Properties
  * **Config Action**
    * **Action**
Action to perform when the check gives a positive result.
    * **Program to start**
The executable file that launches when the _Start Program_ action is chosen.
  * **Process Settings**
    * **Check for**
Establishes whether to check if the process does or does not exist.
    * **Process name/PID**
Name or process ID of the process to check for as listed in the Task Manager.


## Variables
  * **Start Process ID**
The Process ID of the _Process_ started (only available when _Action_ is set to _Start program_) ** Syntax: `PID:[PID]`
  * **Check State**
Returns whether the check was successful or not ** Syntax: `[Start program OK:/Start Program Error:/] Process '[Process Name]' [exists/does not exist/existed] [and program '[Path To Program/PID:[PID of Process to start]' [successfully started/was not started]]/[[and was killed]/]`


## Wizard
First enter the process to check for in the _Process Name_ field. Either enter the process name or its ID manually in the field, then select the process from the drop-down menu there or navigate to an executable file and select it.
Next, select from the _Check for_ drop-down menu whether to check if the process does or does not exist.
Choose an action from the _Action_ drop-down menu to perform if the check is successful:
  * **Do nothing** Performs the check and nothing else.
  * **Start program** Starts the program defined in the _Program to start_ property.
  * **Kill process** Kills the process you checked for. Not applicable if the check was for non-existence.


Check if applications started by the RPA Bot are still running at the end of a workflow. If so, perform a _Kill process_ action to reset the PC into a clean state for the next run.
objectFields | MuleSoft Documentation
# objectFields
## objectFields(t: Type): Array<Field>
Returns the array of fields from the given Object type. This function fails if the type is not an Object type.
_Introduced in DataWeave version 2.3.0._
### Parameters
Name | Description  
---|---  
The function type.  
### Example
This example shows how `objectFields` behaves with different inputs.
#### Source
```
import * from dw::core::Types
ns ns0 http://acme.com
type ADictionary = {_ : String}
type ASchema = {ns0#name @(ns0#foo: String): {}}
type AUser = {name @(foo?: String,l: Number)?: String, lastName*: Number}
---
{
  a: objectFields(ADictionary),
  b: objectFields(ASchema),
  c: objectFields(Object),
  d: objectFields(AUser)
}
```

#### Output
```
{
 "a": [
  {
   "key": {
    "name": {
     "localName": "_",
     "namespace": null
    },
    "attributes": [
    ]
   },
   "required": true,
   "repeated": false,
   "value": "String"
  }
 ],
 "b": [
  {
   "key": {
    "name": {
     "localName": "name",
     "namespace": "http://acme.com"
    },
    "attributes": [
     {
      "name": {
       "localName": "foo",
       "namespace": "http://acme.com"
      },
      "value": "String",
      "required": true
     }
    ]
   },
   "required": true,
   "repeated": false,
   "value": "Object"
  }
 ],
 "c": [
 ],
 "d": [
  {
   "key": {
    "name": {
     "localName": "name",
     "namespace": null
    },
    "attributes": [
     {
      "name": {
       "localName": "foo",
       "namespace": null
      },
      "value": "String",
      "required": false
     },
     {
      "name": {
       "localName": "l",
       "namespace": null
      },
      "value": "Number",
      "required": true
     }
    ]
   },
   "required": false,
   "repeated": false,
   "value": "String"
  },
  {
   "key": {
    "name": {
     "localName": "lastName",
     "namespace": null
    },
    "attributes": [
    ]
   },
   "required": true,
   "repeated": true,
   "value": "Number"
  }
 ]
}
```
Process Automation Overview | MuleSoft Documentation
# Process Automation Overview
The **Process Automation** module is the heart of RPA Manager. After a citizen technologist evaluates processes and approves them for automation in the **Process Evaluation** module, you, as a project manager, create a project here for each suitable process by starting the automation from the **My RPA** module. A project defines the framework conditions for the execution of a process and is managed by a team.
Processes go through several phases in sequence.
  1. In the design phase, a citizen designer creates a model of the process using BPMN.
  2. During the build phase, in RPA Builder, a RPA developer fills the model with concrete instructions for the bot.
  3. In the test phase, a quality assurance team checks if the automated process delivers the required results.
  4. Then you transfer the process to the production phase, where it is carried out fully automatically.


The process team can revise the process continuously.
## Getting Started
  1. List all applications required for the automation of a process in the **Process Applications** view of the **Process Automation** module.
  2. Start the automation of a process in the **My Backlog** view of the **My RPA** module.
  3. Create a project containing the settings and data of the process to be automated in the **Process Management** view of the **Process Automation** module.
  4. In the design phase, record a process with RPA Recorder or model the process using BPMN.
  5. In the build phase, use RPA Builder to edit or create a machine-readable program from the model.
  6. In the test phase, run an automated process in a test environment.
  7. In the production phase, deploy the automated process to a bot. Choose one or both of the following options:
     * Create a run configuration to execute the automated process by scheduling it in RPA Manager.
     * Create and publish an invocable configuration to Anypoint Exchange or Salesforce and use it with MuleSoft Composer or Salesforce Flow.


## Definitions
### BPMN
_Business Process Model and Notation (BPMN)_ is a standard specification for diagrams to depict business processes. Such diagrams can be created directly by the process owner and easily translated into a machine-executable program.
## See Also
  * Starting Automation of Approved Processes
Salesforce Composite Connector 2.16 | MuleSoft Documentation
# Salesforce Composite Connector 2.16
Anypoint Connector for Salesforce Composite enables you to work with the Salesforce Batch and SObject Tree APIs. The connector exposes convenient methods for preparing subordinate requests, executing them in one batch, and parsing the results.
Salesforce Composite Connector also enables you to create SObject trees by using the **Create sobject tree** operation, which is separate from the batch operations.
This connector provides DataSense for execution and to:
  * Prepare subordinate requests and then parse the responses
  * Create SObject trees


For compatibility information and fixed issues, see Salesforce Composite Connector Release Notes.
## Before You Begin
To use this connector, you must be familiar with:
  * The Salesforce Composite API
  * Anypoint Connectors
  * Mule runtime engine (Mule)
  * Elements and global elements in a Mule flow
  * Creating a Mule app using Anypoint Studio (Studio)


Before creating an app, you must have:
  * Credentials to access the Salesforce Composite target resource
  * Anypoint Studio version 7.0 or later


## Authentication Types
Salesforce Composite Connector connections use the following authentication types:
  * OAuth v2.0
  * OAuth JWT
  * OAuth SAML
  * OAuth Username and Password
  * Token Connection


For information about configuring these authentication types, see Using Anypoint Studio to Configure Salesforce Composite Connector.
## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  * MuleSoft Help Center
Performing the OAuth Dance with an OAuth-Enabled Connector or Module | MuleSoft Documentation
# Performing the OAuth Dance with an OAuth-Enabled Connector or Module
The final step for using the module is to trigger the OAuth dance. Configuring an OAuth-Enabled Connector or Module includes a parameter called `authorizePath` through which the end user configures the path of an automatically created HTTP endpoint that is needed to hit a browser and start the OAuth dance.
Tip: Remember that the Authorization Code grant type that the SDK supports requires human interaction through a web browser.
## Multi-Tenancy
Multi-Tenancy for OAuth means being able to perform the OAuth dance multiple times and to associate each obtained token with a different resource owner ID.
The end user needs to specify the `resourceOwnerId` to assign to the token when the dance is initiated. For example, if `authorizePath` is set to `/authorize`, and you want to perform a dance for the user `sdk_demo`, you should hit the following HTTP path: `/authorize?resourceOwnerId=sdk_demo`.
After the dance is complete, you execute an operation using the access token obtained for that user. You do that by using an expression on the `resourceOwnerId` parameter of your module’s configuration. Here is a complete example:
```
<sfdc:config name="salesforce">
  <sfdc:oauth-connection display="PAGE" immediate="FALSE" prompt="CONSENT">
    <sfdc:oauth-authorization-code consumerKey="${sfdc.consumerkey}" consumerSecret="${sfdc.consumersecret}"
                    authorizationUrl="http://..." accessTokenUrl="http://..."/
                    localAuthorizationUrl="http://localhost:8080/.." scope="this that and those"
                    resourceOwnerId="#[vars.ownerId]" /> **(1)**
    <sfdc:oauth-callback-config listenerConfig="myHttpListener"
                  callbackPath="/callback"
                  authorizePath="/authorize" /> **(2)**
</sfdc:config>
```

The `resourceOwnerId` parameter is set to an expression. Each time an OAuth-protected operation is executed, that expression will be evaluated, and the token associated with that value will be used.  
---  
The example sets the authorization endpoint `authorizePath`.  
### Invalidating Access Tokens
Multi-tenancy implies the ability to invalidate the access token of a particular `resourceOwnerId`. Invalidating the token causes the associated token information to be deleted.
To invalidate an access token, the SDK automatically adds an operation called `unauthorize` to every OAuth-enabled connector or module. Returning to the example above, you might invalidate the obtained token with any of the following statements:
```
<sfdc:unauthorize resourceOwnerId="sdk_demo" config-ref="salesforce"/>
<!-- or -->
<sfdc:unauthorize resourceOwnerId="#[vars.resourceOwnerId]" config-ref="salesforce" />
```

## Next Step
Handling Expired Access Tokens
Security | MuleSoft Documentation
# Security
When you automate a process, bots handle sensitive data.
To ensure data security, RPA supports the following features:
  * Encryption of all data
  * Tailored RPA permissions
  *
Delete API Group Instances | MuleSoft Documentation
# Delete API Group Instances
You might want to delete an API Group instance if it is no longer required based on your business needs. If you want to delete the API Group itself, you must first delete all the associated API Group instances, one by one.
## Task Prerequisites
Before you begin, ensure that you have the API Group Administrator permissions to be able to delete an API Groups instance.
To delete an API Group:
  1. Navigate to **Anypoint Platform** > **API Manager**.
  2. Click **API Groups**.
  3. Select the version of the API Group that you want to delete.
  4. Click **…​** > **Delete**.


## See Also
  *   *   * Publish API Groups to Exchange
  * Deprecate API Groups
Amazon S3 Connector 7.1 XML and Maven Support | MuleSoft Documentation
# Amazon S3 Connector 7.1 XML and Maven Support
Although you can manually code a Mule app in XML, it is more efficient to use Anypoint Studio:
  * If you manually code a Mule runtime engine (Mule) app in XML, either from the Anypoint Studio XML editor or from a text editor, you can access the connector from your app by adding reference statements to both your XML Mule flow and the Apache Maven `pom.xml` file.
  * If you add the connector in Studio, Studio automatically populates the XML code with the connector’s namespace and schema location and it also adds a dependency to the `pom.xml` file.


## Add a Namespace for the Connector
Paste the following code inside the `<mule>` tag of the header of your configuration XML:
```
http://www.mulesoft.org/schema/mule/s3
http://www.mulesoft.org/schema/mule/s3/current/mule-s3.xsd
```

This example shows how the namespace statements are placed in the mule XML block:
```
<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
    xmlns:s3="http://www.mulesoft.org/schema/mule/s3"
    xmlns:http="http://www.mulesoft.org/schema/mule/http"
    xmlns="http://www.mulesoft.org/schema/mule/core"
    xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-current.xsd
    http://www.mulesoft.org/schema/mule/core
    http://www.mulesoft.org/schema/mule/core/current/mule.xsd
    http://www.mulesoft.org/schema/mule/http
    http://www.mulesoft.org/schema/mule/
    http/current/mule-http.xsd
    http://www.mulesoft.org/schema/mule/s3
    http://www.mulesoft.org/schema/mule/s3/current/mule-s3.xsd
    http://www.mulesoft.org/schema/mule/ee/core
    http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
```

## Add a POM File Dependency
The Apache Maven `pom.xml` file generated by Anypoint Studio contains dependencies for a Mule app. If you code a Mule app manually, include this XML snippet in your `pom.xml` file to enable access to this connector:
```
<dependency>
 <groupId>com.mulesoft.connectors</groupId>
 <artifactId>mule-amazon-s3-connector</artifactId>
 <version>x.x.x</version>
 <classifier>mule-plugin</classifier>
</dependency>
```

Replace `x.x.x` with the version that corresponds to the connector you are using.
To obtain the most up-to-date `pom.xml` file information:
  1. Go to Anypoint Exchange.
  2. In Exchange, click **Login** and supply your Anypoint Platform username and password.
  3. In Exchange, search for `amazon s3`.
  4. Select the connector.
  5. Click **Dependency Snippets** near the upper right of the screen.


## Next Step
After creating your namespace and `pom.xml` file, you can try the Example.
## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
Searching for APIs | MuleSoft Documentation
# Searching for APIs
From the **Home** and **APIs** pages, search the catalog by an API name to find a specific API. Enter at least four characters in the **Search All APIs** box then select an option from the results.
Filter the API by category and type to further refine your search results. The filter options display depending on which API categories and types are available in the portal.
To filter by categories or tags, select one or more options from **All categories** or **All API types** and click **Apply**.
From the **Home** page, you can also filter the carousel by clicking on any of the API type cards.
## See Also
  * Viewing API Details
Delete a Project | MuleSoft Documentation
# Delete a Project
You can delete an API-specification project or an API-fragment project. If you have already published a project, deleting it in API Designer does not delete it from Anypoint Exchange.
The deletion of a project is final. Deleting a project does _not_ move it to a **Trash** folder from which you can restore the project if you change your mind.  
---  
## Procedure
To delete a project, use one of these methods:
  * If the project is not open, select the project in Design Center’s **Projects** page, and then click the Delete icon in the top-right corner of the page.
  * If the project is open, click the gear icon in API Designer’s top-right corner and then select **Delete**.
My RPA Overview | MuleSoft Documentation
# My RPA Overview
In your personal module **My RPA** , you see an overview of your processes and your currently pending tasks. You can view process details, start automations and complete tasks.
As a member of a center of excellence, in the **Team Backlog** view, you can assume responsibility for a previously evaluated process. As a project manager, you can start the automation of processes in the **My Backlog** view.
The **My Processes** view lists all processes for which you are part of the process team.
In the **My Process Board** view, you see your administrative process tasks.
To view user tasks, which are to be processed by you or your center of excellence in ongoing productive processes, call up the **Team Tasks** view. User tasks, which you wish to process, are moved to your personal list **My User Tasks**.
Write Bot Message | MuleSoft Documentation
# Write Bot Message
The Write Bot Message action step enables you to enrich the result message the RPA Bot generates after each failed run. In case of execution failure, this message shows in the **Run Results** section of the **Process Management** view in RPA Manager.
Bot messages shouldn’t exceed 2000 characters. Mapping an activity parameter containing more than 2000 characters causes the message to show truncated in RPA Manager bot message logs. To view the complete bot log, download the log files in RPA Manager.
## Properties
  * **Bot message**
The text to write in the message.
  * **Overwrite message**
Select this option to overwrite the previous messages shown in **Run Results**.


## Inbound Variables
  * **Bot message**
The text to write in the message.


## Outbound Variables
This action step has no outbound Variables.
## See Also
  * RPA Manager: View the Bot Log Messages
  * RPA Manager: Download the Log Files of a Bot
Anypoint VPN downtime risk | MuleSoft Documentation
# Anypoint VPN downtime risk
Every VPN provisioned in Mulesoft has an associated risk that depends on the state of the VPN tunnels.
For high downtime risk VPNs, deploy a high-availability VPN solution to avoid any downtime associated with AWS-delivered auto-updates. See VPN Maintenance for more details.
## Downtime Risk types
VPN downtime risk depends on the number of UP tunnels.
There are three types of downtime risks:
  * UNAVAILABLE


If both tunnels of the VPN are down, the VPN downtime risk is **UNAVAILABLE** , since no data is going through the VPN.
If the VPN has one tunnel UP and the other one DOWN, then the VPN has **HIGH** downtime risk.
If the VPN has both tunnels UP, then the VPN has **LOW** downtime risk.
## Check the VPN Risk in Anypoint Platform
You can check the downtime risk associated with your VPNs in Anypoint Platform.
To check your VPN downtime risk:
  1. Sign in to Anypoint Platform.
  2. Go to Runtime Manager.
  3. Open the **VPNs** tab.
  4. Check the **Downtime Risk** column for your VPN.


## See Also
  * Anypoint VPN High Availability
  *   * Using Redundant Site-to-Site VPN Connections to Provide Failover
isRegexType | MuleSoft Documentation
# isRegexType
## isRegexType(t: Type): Boolean
Returns `true` if the input is the Regex type.
_Introduced in DataWeave version 2.3.0._
### Parameters
Name | Description  
---|---  
The type to check.  
### Example
This example shows how `isRegexType` behaves with different inputs.
#### Source
```
%dw 2.0
import * from dw::core::Types
type ARegex = Regex
output application/json
---
{
  a: isRegexType(ARegex),
  b: isRegexType(Regex),
  c: isRegexType(Boolean),
}
```

#### Output
```
{
 "a": true,
 "b": true,
 "c": false
}
```
Cryptography Module Examples | MuleSoft Documentation
# Cryptography Module Examples
Cryptography Module examples help you use JCE (PBE and KBE), PGP, and XML operations.
  * Configuring JCE Cryptography Configure the JCE (PBE and KBE) encryption operations.
  * Configuring PGP Cryptography Configure the PGP encryption operations.
  * Configuring XML Cryptography Configure the XML encryption operations.
  * Cryptography Module Additional Configuration Configure the **Use random IVs** field to use random initialization vectors (IVs).


## See Also
  * Cryptography Module Reference 2.0
  * Salesforce Help Center
RPA Recorder Overview | MuleSoft Documentation
# RPA Recorder Overview
Use RPA Recorder to record business processes.
RPA Recorder enables you to:
  * Record actions like mouse clicks, keyboard inputs on your system or on a web browser, and used applications
  * Add comments and variable information during the recording
  * Take screenshots automatically per mouse click, or manually at any time


You can start RPA Recorder directly from RPA Manager in the design phase, as a standalone tool without server connection, or from RPA Builder.
  * If started from RPA Manager, RPA Recorder automatically uploads the recorded BPMN process model with the documentation into the server and creates a local PDF with the same information after the recording is finished.
  * If used without server connection, RPA Recorder creates the BPMN and stores it locally.
  * If started from RPA Builder, the workflow or its part is generated automatically. RPA Builder creates a local PDF with the same information after the recording is finished.


With all start methods, RPA Recorder also creates an XES file for further processing in process mining tools.
## See Also
  * Hardware and Software Requirements
Output Self-closing XML Tags | MuleSoft Documentation
# Output Self-closing XML Tags
For XML, DataWeave by default outputs every value within an opening and closing tag, even if the tag contains no value (for example, `<element2></element2>`).
To output empty tags as a self-closing XML element (for example, `<element2/>`), you can set the `inlineCloseOn="empty"` output directive in the DataWeave header.
DataWeave Script:
```
%dw 2.0
output application/xml inlineCloseOn="empty"
---
payload
```

Input JSON Payload:
```
{
 "customer":{
  "userName": "John Doe",
  "password":{},
  "status":"active",
  "lastLogin":{}
 }
}
```

Output XML:
```
<?xml version='1.0' encoding='UTF-8'?>
<customer>
 <userName>John Doe</userName>
 <password/>
 <status>active</status>
 <lastLogin/>
</customer>
```

## Related Examples
  * Insert an Attribute into an XML Tag
  * Remove Specified XML Attributes
  * Include XML Namespaces


## See Also
  * DataWeave Selectors
  *
NetSuite Connector 11.6 | MuleSoft Documentation
# NetSuite Connector 11.6
Anypoint Connector for NetSuite (NetSuite Connector) synchronizes data and automates business processes between NetSuite and third-party applications, either on-premises or in the cloud. NetSuite provides cloud-based business management software that helps companies manage core business processes, ERP financials, CRM, e-commerce, inventory, and more.
NetSuite Connector provides the following features:
  * SOAP-based integration
NetSuite Connector 11.0 and later does not support REST-based operations.
  * Generation of NetSuite business objects
  * Different authentication levels
  * Error-handling support


For compatibility information and fixed issues, see the NetSuite Connector Release Notes.
## Before You Begin
To use this connector, you must be familiar with:
  * The NetSuite API
  * Anypoint connectors
  * Mule runtime engine (Mule)
  * Elements and global elements in a Mule flow
  * Creating a Mule app using Anypoint Studio (Studio)


Before creating an app, you must have:
  * Credentials to access NetSuite Web Services
  * Anypoint Studio version 7.3.3 or later


## Common Use Cases for the Connector
  * Quote-to-Cash
Improve cash flow, remove manual order entries, and minimize order errors by leveraging realtime integrations to connect and synchronize data about your customer’s intent to buy from your CRM application, such as Salesforce, into its realization of revenue in NetSuite ERP.
  * Invoice-to-Reconciliation
Automate your Accounts Receivable (A/R) process by automatically applying bank payments against invoices in NetSuite for real-time A/R processing. Streamline accounts payable by automating payment file transfers between NetSuite and your banks.
  * Hire-to-Retire
Build a single view of your employees with realtime synchronization of employee information between Netsuite and your Human Capital Management (HCM) services, such as Workday, Oracle HCM, PeopleSoft, and so on. Automatically trigger employee onboarding processes such as ordering computer equipment, uniforms, system access setup, and so on, while reversing the process upon retirement.


## Authentication types
NetSuite connections use token-based authentication, which uses either a consumer key and token ID or secret pairs to authenticate.
For information about configuring this authentication type, see Using Anypoint Studio to Configure NetSuite Connector.
## Using Exchange Templates and Examples
Anypoint Exchange provides the following templates that you can use as starting points for your apps:
  * Retrieve a List of Customers from NetSuite
  * Salesforce and NetSuite Opportunity Aggrgation


## Next Step
After you complete the prerequisites, you are ready to create your own app and configure the connector using Anypoint Studio.
## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  * MuleSoft Help Center
Identify Operations to Implement | MuleSoft Documentation
# Identify Operations to Implement
To know what happens with an implemented operation, make the API fail using SoapUI. Follow the steps in the following example to create a request in SoapUI using the `OrderTshirt` operation for a customer named `John`. Because the API cannot handle this operation, a SOAP fault occurs.
  1. In SoapUI, create a new SOAP project and put the URL for your deployed Mule APIkit project in the initial WSDL file. In this example, the URL is `http://localhost:8081/TshirtService/TshirtServicePort?wsdl`.
  2. In SoapUI, request a large t-shirt for John by entering some values into the request envelope:
    1. Select **Projects** > **TshirtServicePort?wsdl** > **TshirtServiceSoapBinding** > **OrderTshirt** > **Request 1**.
    2. Enter **L** between the `<size>` tags.
    3. Enter **John** between the `<name>` tags.
  3. Submit the request.
The result is the SOAP fault:
```
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
   <soap:Fault xmlns:soap="http://schemas.xmlsoap.org/soap/envelope">
     <faultcode>soap:Server</faultcode>
     <faultstring>Operation [OrderTshirt:\soapkit-config] not implemented</faultstring>
   </soap:Fault>
  </soap:Body>
</soap:Envelope>
```



## See Also
  * Prevent the SOAP Fault
OAuth2 Provider Module 1.2 | MuleSoft Documentation
# OAuth2 Provider Module 1.2
The OAuth2 Provider module enables a Mule runtime engine (Mule) app to be configured as an Authentication Manager in an OAuth2 dance. With this role, the application can authenticate to previously registered clients, grant tokens, validate tokens, or register and delete clients, all during the execution of a flow.
The following documentation assumes a basic knowledge of the OAuth2 authorization protocol. For further reference, see the RFC-6749.
If the app behaves as the client in the OAuth2 dance, use the OAuth Module instead.
## Before You Begin
To use this module, you must be familiar with:
  * Anypoint Connectors
  * Mule runtime engine (Mule)
  * Elements and global elements in a Mule flow
  * Creating a Mule app using Anypoint Studio (Studio)


## Using Exchange Templates and Examples
Anypoint Exchange provides templates that you can use as starting points for your apps and examples that illustrate a complete solution.
## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  * MuleSoft Help Center
Google Sheets - XML and Maven Support | MuleSoft Documentation
# Google Sheets - XML and Maven Support
Although you can manually code a Mule app in XML, it is more efficient to use Anypoint Studio.
If you manually code a Mule runtime engine (Mule) app in XML either from the Anypoint Studio XML editor or from a text editor, you can access the connector from your app by adding reference statements to both your XML Mule flow and the Apache Maven `pom.xml` file.
When you add the connector in Studio, Studio automatically populates the XML code with the connector’s namespace and schema location and it also adds a dependency to the `pom.xml` file.
## Add a Namespace for the Connector
Paste the following code inside the `mule` tag of the header of your configuration XML:
```
http://www.mulesoft.org/schema/mule/google-sheets
http://www.mulesoft.org/schema/mule/google-sheets/current/mule-google-sheets.xsd
```

This example shows how the namespace statements are placed in the XML:
```
<mule xmlns:google-sheets="http://www.mulesoft.org/schema/mule/google-sheets"
	xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns:file="http://www.mulesoft.org/schema/mule/file"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/file
	http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
	http://www.mulesoft.org/schema/mule/http
	http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
	http://www.mulesoft.org/schema/mule/ee/core
	http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
	http://www.mulesoft.org/schema/mule/google-sheets
	http://www.mulesoft.org/schema/mule/google-sheets/current/mule-google-sheets.xsd">
```

## Add a POM File Dependency
The Apache Maven `pom.xml` file generated by Anypoint Studio contains dependencies for a Mule app. When you code a Mule app manually, include this XML snippet in your `pom.xml` file to enable access to this connector:
```
<dependency>
 <groupId>com.mulesoft.connectors</groupId>
 <artifactId>mule4-google-sheets-connector</artifactId>
 <version>x.x.x</version>
 <classifier>mule-plugin</classifier>
</dependency>
```

Replace `x.x.x` with the version that corresponds to the connector you are using.
To obtain the most up-to-date `pom.xml` file information:
  1. Go to Anypoint Exchange.
  2. In Exchange, click **Login** and supply your Anypoint Platform username and password.
  3. In Exchange, search for `google sheets`.
  4. Select the connector.
  5. Click **Dependency Snippets** near the upper right of the screen.


## Next Step
After completing your namespace and `pom.xml` file, you can try the Examples.
## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
OAuth | MuleSoft Documentation
# OAuth
OAuth 2.0 is the industry-standard protocol for authorization. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and livingroom devices. For more information about the OAuth 2.0 protocol, see https://oauth.net/2/.
The SDK provides support for building modules that are OAuth enabled, which means that they establish connections that are authorized through the OAuth protocol. This enables you to hide most of the complexities of the OAuth protocol from the end user and to spare them the requirement of learning OAuth.
OAuth support provided by the SDK is limited to:
  * OAuth version 2.
  * Authorization Code grant type
  * Client Credentials grant type (available since version 1.3)
File Connector Examples | MuleSoft Documentation
# File Connector Examples
To fully benefit from using Anypoint Connector for File (File Connector), see the following examples of configuring the connector operations:
  * Read a File Configure the **Read** operation to read a file at any point in the flow.
  * Create a Directory Configure the **Create directory** operation to create a directory of a given name.
  * Write a File Configure the **Write** operation to write content into the given path on demand.
  * List Files Configure the **List** operation to list the files and folders in the configured directory path.
  * Copy and Move Files Configure the **Copy** and **Move** operations to copy or move files or directories on demand.
  * Trigger a Flow for a Newly Created or Updated File Configure the **On New or Updated File** source to trigger a flow for a new created or modified file.


## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
Uninstall Self-Managed Flex Gateway | MuleSoft Documentation
# Uninstall Self-Managed Flex Gateway
You can uninstall Flex Gateway running as a Linux service, in a container, or in a Kubernetes cluster.
Uninstall Flex Gateway Running as a Linux Service |  Uninstall Flex Gateway Running in a Docker Container |  Uninstall Flex Gateway Running in a Kubernetes Cluster  
---|---|---  
## Uninstall Flex Gateway Running as a Linux Service
Flex Gateway can be uninstalled as any other package:
```
sudo apt remove -y flex-gateway
```

## Uninstall Flex Gateway Running in a Docker Container
To uninstall Flex Gateway, stop and remove the Flex Gateway container:
  1. Determine the Flex Gateway container ID by listing all the running containers:
  2. In the list of containers, note the container ID associated with the Flex Gateway container you want to uninstall.
  3. Stop the Flex Gateway container:
```
docker stop <container id>
```

Replace `<container-id` with the container ID of the Flex Gateway container you want to stop:
  4. Remove the Flex Gateway container:
```
docker rm <container id>
```

Replace `<container-id` with the container ID of the Flex Gateway container you want to remove. The command permanently deletes the container and its associated resources.
  5. Optionally, remove the Flex Gateway container image:
```
docker rmi mulesoft/flex-gateway
```

  6. To confirm that Flex Gateway is uninstalled, run the `docker ps` command again. The uninstalled container no longer appears in the list.


## Uninstall Flex Gateway Running in a Kubernetes Cluster
To uninstall Flex Gateway running in a Kubernetes cluster:
  1. Uninstall the Helm release. The following example removes a release called “my-release”:
```
helm delete my-release
```

Update `my-release` to the release you have running. To see a list of all releases, use the command `helm list -A`.   
---  
  2. Delete the release namespace if one was specified:
```
kubectl delete namespace gateway
```

  3. Delete the custom resource definitions:
```
kubectl delete crds \
   apiinstances.gateway.mulesoft.com \
   configurations.gateway.mulesoft.com \
   extensions.gateway.mulesoft.com \
   policybindings.gateway.mulesoft.com \
   services.gateway.mulesoft.com
```
Anypoint DataGraph Terminology | MuleSoft Documentation
# Anypoint DataGraph Terminology
The following terms, some of which come from the GraphQL lexicon, are useful for understanding how Anypoint DataGraph works.
API schema | Generated by Anypoint DataGraph from your API specification in RAML or OAS, an API schema contains a collection of the GET resources and entities that you’ve defined in your API specification, and the relationships between them.  
---|---  
Unified schema | The unified schema is a single, always-current collection of types from different API schemas that you’ve added to Anypoint DataGraph and made available for consumers to query.  
Object types | The most common type in a schema, object types represent entities in your API specification that are returned as part of a GET response.  
Enum types | An enum type returns only a specific set of values that you’ve defined in your API specification.  
Union types | Union types describe instances of data using other object types. A union type consists of one or more specific object types.  
Query types | A query type is the entrypoint to an API schema when you make a request. This type contains the query methods you’ve defined in your API specification.  
Query methods | Each unique GET endpoint defined in your API specification is represented by a query method, which you use to start a query.  
Fields are properties you define for an object type in your API specification.  
Level-1 types | In an API schema, Level-1 types are object types that can be directly returned by a query method.  
Nested types | In an API schema, you can access nested types only through the query methods of Level-1 types. Nested types are not directly returned by a query method.  
Collaboration | By enabling collaboration on Level-1 object types, you allow other types to link and merge with such types. Collaboration enables you to create a more connected unified schema so that your consumers can have a more efficient query experience. Collaboration is possible only on Level-1 object types.  
Linking enables you to join fields from two related types that describe different objects to create a connection between them.  
Merging types enables you to combine similar types into a single type and extend their fields and datasets for an enriched query result.  
## Additional Resources
  * Understand the Elements in an API Schema
  * Run Queries and Mutations
Amazon SQS Connector 5.11 XML and Maven Support | MuleSoft Documentation
# Amazon SQS Connector 5.11 XML and Maven Support
If you manually code a Mule app in XML either from the Anypoint Studio XML editor or from a text editor, you can access Anypoint Connector for Amazon SQS (Amazon SQS Connector) in your app by adding reference statements to your XML Mule flow and in the Apache Maven `pom.xml` file.
You can avoid the manual process described next by using Studio. When you install Amazon SQS Connector in Studio, Studio automatically populates the XML code with the Amazon SQS Connector namespace and schema location, and adds a dependency to the `pom.xml` file.  
---  
## Add a Namespace for the Connector
Paste the following code inside the `<mule>` tag of the header of your configuration XML:
```
http://www.mulesoft.org/schema/mule/amazon-sqs
http://www.mulesoft.org/schema/mule/amazon-sqs/current/mule-amazon-sqs.xsd
```

This example shows how the namespace statements are placed in the XML:
```
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:sqs="http://www.mulesoft.org/schema/mule/sqs"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/sqs
http://www.mulesoft.org/schema/mule/sqs/current/mule-sqs.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
```

## Add a POM File Dependency
The Apache Maven `pom.xml` file generated by Anypoint Studio contains dependencies for a Mule app. If you code a Mule app manually, include this XML snippet in your `pom.xml` file to enable access to this connector:
```
<dependency>
  <groupId>com.mulesoft.connectors</groupId>
  <artifactId>mule-amazon-sqs-connector</artifactId>
  <version>x.x.x</version>
  <classifier>mule-plugin</classifier>
</dependency>
```

Replace `x.x.x` with the version that corresponds to the connector you are using.
To obtain the most up-to-date `pom.xml` file information:
  1. Go to Anypoint Exchange.
  2. In Exchange, click **Login** and supply your Anypoint Platform username and password.
  3. In Exchange, search for `amazon sqs`.
  4. Select the connector.
  5. Click **Dependency Snippets** near the upper right of the screen.


## Next Step
After completing your namespace and `pom.xml` file, you can try the example.
## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
isDateTimeType | MuleSoft Documentation
# isDateTimeType
## isDateTimeType(t: Type): Boolean
Returns `true` if the input is the DateTime type.
_Introduced in DataWeave version 2.3.0._
### Parameters
Name | Description  
---|---  
The type to check.  
### Example
This example shows how `isDateTimeType` behaves with different inputs.
#### Source
```
%dw 2.0
import * from dw::core::Types
type ADateTime = DateTime
output application/json
---
{
  a: isDateTimeType(ADateTime),
  b: isDateTimeType(DateTime),
  c: isDateTimeType(String),
}
```

#### Output
```
{
 "a": true,
 "b": true,
 "c": false
}
```
reverse | MuleSoft Documentation
# reverse
## reverse(text: String): String
Reverses sequence of characters in a string.
_Introduced in DataWeave version 2.4.0._
### Parameters
Name | Description  
---|---  
The string to reverse.  
### Example
This example shows how `reverse` behaves with different inputs.
#### Source
```
%dw 2.0
import * from dw::core::Strings
output application/json
---
 {
   a: reverse("Mariano"),
   b: reverse(null),
   c: reverse("")
 }
```

#### Output
```
{
 "a": "onairaM",
 "b": null,
 "c": ""
}
```

## reverse(text: Null): Null
Helper function that enables `reverse` to work with a `null` value.
_Introduced in DataWeave version 2.4.0._
Bot Management | MuleSoft Documentation
# Bot Management
Bots are software. They look out for work and automatically carry upcoming processes step by step. They need a computer with the applications required for the processes installed and specific instructions.
You manage the bots in the **Bot Management** module. Every bot is assigned to RPA Manager through an API key. After installation, the bot connects to RPA Manager automatically at defined intervals. You can then assign licenses, applications, and service times to the bot.
## Getting Started
### Install
  1. Create an API key for each bot before installation.
  2. Install each bot on a separate computer, where the applications needed to run the processes are installed.
  3. After successful installation, the bots connects to RPA Manager automatically.


### License
  * After you have installed all bots, open the **Bots** view module and assign _Secure Session_ licenses to each bot that should run processes invisibly.


### Assign Service Times
  1. If a bot should only be available to execute processes at certain times, create the corresponding service times in the **Service Times** view module.
  2. Assign any number of service times to a bot by editing each bot in the **Bots** view.


### Assign Applications
  1. In the **Process Applications** view in the **Process Automation** module, enter all the applications needed to run processes.
  2. Assign the applications to the bots that can access them by editing each bot in the **Bots** view.


### Assign Phases
  * Authorize bots for deployment in the test or production phase by editing each bot in the **Bots** view.


### Create Processes
  * Create processes in the **Process Evaluation** module and automate them in the **Process Automation** module.


### Deploy Processes
  * Deploy processes to suitable bots in the process configurations in the **Process Management** view in the **Process Automation** module.


### Monitor
  * The **Bot Execution Plans** view shows which bot is to execute which processes and when.
  * The **Process Run Statistics** view shows the results of the processes that have been deployed to the bots.
  * The **Bot State and Operation** view and the **Deployment Map** view in module **Process Monitoring** shows you what the bots are doing right now.
  * The widgets **Current Bot Status** and **Bot Workload** can be added to a **Dashboard** in the module of the same name.


## Definitions
### Secure Session
A _Secure Session_ is a hidden Windows session that runs invisibly and closed in a separate user account. The screen does not show what is happening or what information is being processed.
## See Also
  *   *   *   *   * Getting to Know Bots
  *   * Troubleshooting Bots
  *   *   *
Set Parsing Text File Attachment as Body Message | MuleSoft Documentation
# Set Parsing Text File Attachment as Body Message
When Anypoint Connector for Email (Email Connector) receives a message without a body and only an attachment file with Content-Type as `text`, the attachment file is not processed as a separate file. Instead, the file is included in the message body as plain text. Mule apps can use this behavior to receive the data in the message body instead of as an attachment file.
To change the behavior of parsing attached text files when the file is the only content in the message, set the system property `parsing.text.attachment.as.body` to either of these values:
  * `true` (default) Preserves the previous behavior and converts the text file attachment in the body message.
  * `false` Adds the attachment text file to the attachment list in the payload.


To learn how to set system properties in Anypoint Studio or for on-premises deployments, refer to the system properties documentation.
## Jakarta Mail System Properties
Email Connector uses the Jakarta Mail library internally. Thereby, you can change certain aspects of connector behavior by changing specific Jakarta Mail system properties. Refer to the troubleshoot Jakarta Mail system properties section that covers some of the most used Jakarta Mail system properties.
For detailed information on these system properties, refer to the Jakarta Mail documentation.
## See Also
  * Introduction to Anypoint Connectors
  * Email Connector Examples
  * MuleSoft Help Center