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:
SDPCloud 2023-05-10 04:52:19 +05:30 коммит произвёл GitHub
Родитель f0a83e0e34
Коммит d36b5d4fa7
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 6883 добавлений и 0 удалений

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -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;
}
}