ManageEngine ServiceDesk Plus Cloud app submission (#2517)
* Partner Center connector - new fields and deal registration actions (#2130) * Update apiDefinition.swagger.json * Latest changes * fix format warning * X-Caller_Id should be optional * Update apiDefinition.swagger.json Review changes - ->Added reg status and sub status fields. ->Update the fields descriptions as per api's details available on Microsoft public site. ->Remove submission related fields. ->Mark registration status field as read only. ->Remove offerId from root. ->Use Enum values in Create deal registration model. ->Create a separate model for update deal registration. Create a separate action for update deal registration. * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json Add deprecate text in Update a referral by Id action * Update apiDefinition.swagger.json Connector status keep as Preview and UpdateReferralById deprecated keep as false but deprecated word in description. * Update apiDefinition.swagger.json update deal registration success message. * Update apiDefinition.swagger.json added title for registration object * Bitskout Connector (#2140) * Bitskout Connector * Requested changes * EC-14395 Make it so fields aren't required anymore for updates (#2150) * Added orderby parameter * Added orderby parameter * feat: add x-ms-pageable extension * feat: add updatenextlink policy instance * refactor: whitespace refactoring * Update apiProperties.json * fix(EC-14395): Integrate the patch schema endpoint * fix(EC-14395): Add specs for the schema endpoint's responses * fix(EC-14395): Add required fields to the schema Co-authored-by: Johannes Heesterman <johannes@elfsquad.io> Co-authored-by: johannesheesterman <heestermanj@gmail.com> Co-authored-by: Stan van Rooy <stanvanrooy6@gmail.com> * ManageEngine ServiceDesk Plus Cloud app submission * Categories and readme document updated * Categories updated --------- Co-authored-by: Farhan <103836444+94farhan@users.noreply.github.com> Co-authored-by: saferoombiz <32263053+saferoombiz@users.noreply.github.com> Co-authored-by: Tess Ellenoir Duursma <thomasduursma@outlook.com> Co-authored-by: Johannes Heesterman <johannes@elfsquad.io> Co-authored-by: johannesheesterman <heestermanj@gmail.com> Co-authored-by: Stan van Rooy <stanvanrooy6@gmail.com> Co-authored-by: Mahbub Murshed <48570820+mamurshe@users.noreply.github.com> Co-authored-by: SDPCloud <tharanishanth16@gmail.com>
This commit is contained in:
Родитель
f0a83e0e34
Коммит
d36b5d4fa7
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"properties": {
|
||||
"connectionParameters": {
|
||||
"token": {
|
||||
"type": "oauthSetting",
|
||||
"oAuthSettings": {
|
||||
"identityProvider": "oauth2generic",
|
||||
"clientId": "<Enter Your Client ID>",
|
||||
"scopes": [
|
||||
"SDPOnDemand.requests.ALL",
|
||||
"SDPOnDemand.assets.ALL",
|
||||
"SDPOnDemand.changes.ALL",
|
||||
"SDPOnDemand.general.ALL",
|
||||
"SDPOnDemand.problems.ALL",
|
||||
"SDPOnDemand.projects.ALL",
|
||||
"SDPOnDemand.solutions.ALL",
|
||||
"SDPOnDemand.purchases.ALL",
|
||||
"SDPOnDemand.contracts.ALL",
|
||||
"SDPOnDemand.setup.ALL",
|
||||
"SDPOnDemand.users.ALL",
|
||||
"SDPOnDemand.cmdb.ALL",
|
||||
"SDPOnDemand.releases.ALL",
|
||||
"SDPOnDemand.custommodule.ALL"
|
||||
],
|
||||
"redirectMode": "Global",
|
||||
"redirectUrl": "https://global.consent.azure-apim.net/redirect",
|
||||
"customParameters": {
|
||||
"authorizationUrlTemplate": {
|
||||
"value": "https://accounts.zoho{CustomHost}/oauth/v2/auth"
|
||||
},
|
||||
"tokenUrlTemplate": {
|
||||
"value": "https://accounts.zoho{CustomHost}/oauth/v2/token"
|
||||
},
|
||||
"refreshUrlTemplate": {
|
||||
"value": "https://accounts.zoho{CustomHost}/oauth/v2/token"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"token:customHost": {
|
||||
"type": "string",
|
||||
"uiDefinition": {
|
||||
"constraints": {
|
||||
"required": "true",
|
||||
"tabIndex": 1,
|
||||
"allowedValues": [
|
||||
{
|
||||
"text": "com - USA",
|
||||
"value": ".com"
|
||||
},
|
||||
{
|
||||
"text": "in - India",
|
||||
"value": ".in"
|
||||
},
|
||||
{
|
||||
"text": "eu - Europe",
|
||||
"value": ".eu"
|
||||
},
|
||||
{
|
||||
"text": "au - Australia",
|
||||
"value": ".com.au"
|
||||
},
|
||||
{
|
||||
"text": "cn - China",
|
||||
"value": ".com.cn"
|
||||
},
|
||||
{
|
||||
"text": "jp - Japan",
|
||||
"value": ".jp"
|
||||
}
|
||||
]
|
||||
},
|
||||
"displayName": "Select the region.",
|
||||
"description": "Select the domain."
|
||||
}
|
||||
}
|
||||
},
|
||||
"iconBrandColor": "#005594",
|
||||
"scriptOperations": [
|
||||
"CreateChange",
|
||||
"CreateRequest",
|
||||
"PortalList",
|
||||
"UpdateChange",
|
||||
"UpdateRequest"
|
||||
],
|
||||
"capabilities": [],
|
||||
"policyTemplateInstances": [
|
||||
{
|
||||
"templateId": "dynamichosturl",
|
||||
"title": "Set host for connection",
|
||||
"parameters": {
|
||||
"x-ms-apimTemplateParameter.urlTemplate": "https://sdpondemand.manageengine@connectionParameters('token:customHost')/"
|
||||
}
|
||||
}
|
||||
],
|
||||
"publisher": "ManageEngine (A division of Zoho Corporation)",
|
||||
"stackOwner": "ManageEngine ServiceDesk Plus Cloud"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
# ServiceDesk Plus Cloud
|
||||
|
||||
ServiceDesk Plus Cloud is an ITIL® compliant comprehensive help desk with integrated asset and project management capabilities. This connector is used to set up no-code connections for ServiceDesk Plus Cloud with popular applications via Power Automate.
|
||||
|
||||
## Publisher: ManageEngine
|
||||
|
||||
ManageEngine is the enterprise IT management division of Zoho Corporation and prioritizes crafting comprehensive IT management software for all businesses.
|
||||
|
||||
## Use Cases
|
||||
|
||||
> Set up quick integrations between ServiceDesk Plus Cloud and other applications.
|
||||
|
||||
> Automate workflows across applications.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Users in Standard, Professional, and Enterprise editions can execute actions using the connector.
|
||||
|
||||
## Privileges Needed
|
||||
|
||||
* __ServiceDesk Plus Cloud__ - SDAdmin can set up all actions via the connector. Users can set up limited actions depending on their permissions.
|
||||
|
||||
* __Power Automate__ - User
|
||||
|
||||
* __External application__ - Privileges needed depend on the application configured
|
||||
|
||||
## Supported Actions
|
||||
|
||||
The connector supports the following actions:
|
||||
|
||||
* `Create Request`: Create a new request in ServiceDesk Plus Cloud
|
||||
|
||||
* `Update Request`: Update an existing request's details in ServiceDesk Plus Cloud
|
||||
|
||||
* `Create Change`: Create a new change request in ServiceDesk Plus Cloud
|
||||
|
||||
* `Update Change`: Update an existing change request's details in ServiceDesk Plus Cloud
|
||||
|
||||
## Obtaining Credentials
|
||||
|
||||
ServiceDesk Plus Cloud uses OAuth 2.0 to authenticate users automatically.
|
||||
|
||||
## Known Issues and Limitations
|
||||
|
||||
None
|
||||
|
||||
## Deployment Instructions
|
||||
|
||||
Check out the ServiceDesk Plus Cloud [Admin Guide](https://help.sdpondemand.com/power-automate-integration) for deployment instructions and additional details.
|
||||
|
||||
## Support
|
||||
|
||||
For any support, please contact us at servicedeskplus-cloud-support@manageengine.com.
|
|
@ -0,0 +1,51 @@
|
|||
public class Script : ScriptBase
|
||||
{
|
||||
public override async Task<HttpResponseMessage> ExecuteAsync()
|
||||
{
|
||||
return await this.HandleForwardOperation().ConfigureAwait(false);
|
||||
}
|
||||
private async Task<HttpResponseMessage> HandleForwardOperation()
|
||||
{
|
||||
if(this.Context.OperationId == "PortalList"){
|
||||
return await this.HandlePortalList().ConfigureAwait(false);
|
||||
}
|
||||
var dict = new Dictionary<string, string>();
|
||||
JObject jObj = JObject.Parse(await this.Context.Request.Content.ReadAsStringAsync());
|
||||
|
||||
foreach (JProperty property in jObj.Properties())
|
||||
{
|
||||
dict.Add(property.Name, jObj[property.Name].ToString());
|
||||
}
|
||||
this.Context.Request.Content = new FormUrlEncodedContent(dict);
|
||||
|
||||
Context.Request.RequestUri = new System.Uri(string.Format(this.getRequestUrl())); // get URL based on user's Data Center
|
||||
HttpResponseMessage response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(continueOnCapturedContext: false);
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false);
|
||||
response.Content = CreateJsonContent(responseString);
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
private async Task<HttpResponseMessage> HandlePortalList()
|
||||
{
|
||||
Context.Request.RequestUri = new System.Uri(string.Format(this.getRequestUrl()));
|
||||
HttpResponseMessage response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(continueOnCapturedContext: false);
|
||||
return response;
|
||||
}
|
||||
|
||||
private string getRequestUrl(){
|
||||
var uriString = Context.Request.RequestUri.ToString();
|
||||
if(uriString.Contains("sdpondemand.manageengine.com.au/")){
|
||||
uriString = uriString.Replace("sdpondemand.manageengine.com.au/", "servicedeskplus.net.au/");
|
||||
}
|
||||
else if(uriString.Contains("sdpondemand.manageengine.com.cn/")){
|
||||
uriString = uriString.Replace("sdpondemand.manageengine.com.cn/", "servicedeskplus.cn/");
|
||||
}
|
||||
else if(uriString.Contains("sdpondemand.manageengine.jp/")){
|
||||
uriString = uriString.Replace("sdpondemand.manageengine.jp/", "servicedeskplus.jp/");
|
||||
}
|
||||
return uriString;
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче