<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Razia-Invenio Business Solutions</title>
    <description>The latest articles on DEV Community by Razia-Invenio Business Solutions (@raziainvenio).</description>
    <link>https://dev.to/raziainvenio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F519911%2Fab21e36f-ac1b-41f1-9976-2dec56fd808d.png</url>
      <title>DEV Community: Razia-Invenio Business Solutions</title>
      <link>https://dev.to/raziainvenio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/raziainvenio"/>
    <language>en</language>
    <item>
      <title>Cloud Hub Alexa Skill Set -Command your IAAS to work for you</title>
      <dc:creator>Razia-Invenio Business Solutions</dc:creator>
      <pubDate>Sun, 29 Nov 2020 05:55:21 +0000</pubDate>
      <link>https://dev.to/raziainvenio/cloud-hub-alexa-skill-set-command-your-iaas-to-work-for-you-2ki6</link>
      <guid>https://dev.to/raziainvenio/cloud-hub-alexa-skill-set-command-your-iaas-to-work-for-you-2ki6</guid>
      <description>&lt;h2&gt;
  
  
  Component Diagram
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F77kp6oz9723efg1efl4j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F77kp6oz9723efg1efl4j.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sequence Diagram
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpjgzkh60i08to47jjmqt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpjgzkh60i08to47jjmqt.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Pre-requisite:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.amazon.com/en-US/alexa" rel="noopener noreferrer"&gt;Amazon Developer Account&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://anypoint.mulesoft.com/login/" rel="noopener noreferrer"&gt;CloudHub Account&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.voiceflow.com/" rel="noopener noreferrer"&gt;VoiceFlow Account&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Alexa SDK
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The usecase of Alexa CloudHub Commander:
&lt;/h3&gt;

&lt;p&gt;We have developed an Alexa skill which will make the life easier for the user just by listening to the command. Since it is a personalized skill it can hold the credentials and also maintains the session. The intuitive idea behind this is to command the IAAS for you. The user can ask for any information*(Ex: Server, API, application status, deployment status)* if authenticated otherwise need to authenticate first by providing their credentials.  Basically the skill is calling the CloudHub APIs internally and based on that provide the response. Apart from this some of the automation work can also be implemented in future such as deployment of the chatbot application in tomcat which is built on Spring Boot. (explained in the future extension section).&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps for Alexa Skill creation:
&lt;/h4&gt;

&lt;p&gt;To create the Alexa skill there are several methods but in this case we are using voiceflow platform to create the skill and then uploading it to Alexa Developer Console. The reason behind using this platform to maintain the flow and also creating the SSML pattern in easiest way.&lt;/p&gt;

&lt;h5&gt;
  
  
  The steps to do this is as follows:
&lt;/h5&gt;

&lt;p&gt;1.Login to your voiceflow account&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fckw7wwa4b2wujy6jzspp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fckw7wwa4b2wujy6jzspp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Create a new project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fevb0js0a6lxvkbmehgn2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fevb0js0a6lxvkbmehgn2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Select the channel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fevm9hmf49gy9ezbirtbn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fevm9hmf49gy9ezbirtbn.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Give the invocation name and you are ready to create your skill.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F51lsqt18q9r7jq21e71k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F51lsqt18q9r7jq21e71k.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Create the flow of the skill using the available steps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fexdscezf3f50557zmlg6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fexdscezf3f50557zmlg6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.A snapshot of CloudHub Alexa Skill Set flow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvfxml48l8o0ufkb28t3l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvfxml48l8o0ufkb28t3l.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm7et429tvmr6p799mv8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm7et429tvmr6p799mv8o.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbfitp68jxx4qipnf1tr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbfitp68jxx4qipnf1tr3.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.Once the design is ready test it with using prototype tab.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmqnfuelw3cb9kopnq71v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmqnfuelw3cb9kopnq71v.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8.For the first session it will ask your credentials and then store it for another sessions. It also stores the bearer token for the session to call the CloudHub APIs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbuth2vjhd90hp959pbvz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbuth2vjhd90hp959pbvz.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9.Now you are ready to upload this skill on Alexa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdnzz3jgbs8gnpok8ujkg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdnzz3jgbs8gnpok8ujkg.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10.Finally test is using the Alexa device or from the developer console.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9r19inezb9by97wgswtl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9r19inezb9by97wgswtl.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; Sometimes it might not work properly from the console as it doesn't take the special character or capital letter used in the credentials. Will try to fix it soon.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Endpoint:
&lt;/h4&gt;

&lt;p&gt;For this we have used the HTTPs endpoint which is calling the CloudHub Apis.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1aal3buogolq3wd3ge2v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1aal3buogolq3wd3ge2v.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Download the &lt;a href="https://github.com/raz-inv/MuleSoft-Hackathon.git" rel="noopener noreferrer"&gt;source code&lt;/a&gt;:
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Working of the program:
&lt;/h4&gt;

&lt;p&gt;Steps are as follows:&lt;br&gt;
1.For the first session, it asks users to link to the CloudHub account. Account linking can be invoked anytime by saying "Alexa! Link my CloudHub Account". The Alexa asks for user's credentials(User name and Password) and store it in session attributes. Next time if the users ask any query related to CloudHub, using these attributes Alexa directly response to those query. Once the user provides the credentials, the Alexa used these as utterances and then authenticate the user. After successful authentication user can asks any query related to CloudHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnagy9cy5t8cwjcf9aezn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnagy9cy5t8cwjcf9aezn.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The post method is used to invoke the first API.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://anypoint.mulesoft.com/accounts/login?username=%7Bch_user_name%7D&amp;amp;password=%7Bch_password%7D" rel="noopener noreferrer"&gt;https://anypoint.mulesoft.com/accounts/login?username={ch_user_name}&amp;amp;password={ch_password}&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After successful authentication, it will generate a bearer_token which will be used as a parameter for invoking other APIs.&lt;br&gt;
Copy the path of the response_token.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fga4o55np6xee55bky2tq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fga4o55np6xee55bky2tq.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Store this token as a variable and use it as an authorization token in the proceeding APIs.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftmmgv3yu7cunb9a4fbji.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftmmgv3yu7cunb9a4fbji.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Now call the account API to get the Organization Id linked to your CloudHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F736z1uu2rzxneqaxest0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F736z1uu2rzxneqaxest0.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GET method is used to invoke this API.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://anypoint.mulesoft.com/accounts/api/me" rel="noopener noreferrer"&gt;https://anypoint.mulesoft.com/accounts/api/me&lt;/a&gt;&lt;br&gt;
Also use the same bearer_token as a Header parameter.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0zi7128jk6z55vtvdzsy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0zi7128jk6z55vtvdzsy.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Store this Organization_Id as a another path variable and use this as a header parameter for proceeding APIs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnc7mrr2g9oywi25vsy6m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnc7mrr2g9oywi25vsy6m.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Now call the environment API to get the Environment Id.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GET method is used to invoke this API.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://anypoint.mulesoft.com/accounts/api/organizations/%7Borg_id%7D/environments" rel="noopener noreferrer"&gt;https://anypoint.mulesoft.com/accounts/api/organizations/{org_id}/environments&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ffpmkb49o5cjr0rk0c1ub.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ffpmkb49o5cjr0rk0c1ub.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It will generate an enviornment_id.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmyjs2qwqugb03ehp5lud.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmyjs2qwqugb03ehp5lud.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Store this environment_id as another path variable to use it in the APIs which requires env_id as a header parameter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F45wcsc0k9cd4c058m41e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F45wcsc0k9cd4c058m41e.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Now finally to get into the Run Time manager of the anypoint platform and to know about the deployed applications in your CloudHub we use the applications API.&lt;/p&gt;

&lt;p&gt;GET method is used to invoke this API.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://anypoint.mulesoft.com/cloudhub/api/v2/applications" rel="noopener noreferrer"&gt;https://anypoint.mulesoft.com/cloudhub/api/v2/applications&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F06z1fhh04djy2l48gg80.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F06z1fhh04djy2l48gg80.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8m9zoxrsqcbv30xbrbao.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8m9zoxrsqcbv30xbrbao.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now your Alexa is ready to response for any query related to CloudHUb. From here we can either invoke &lt;a href="https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/minor/1.0/pages/home/" rel="noopener noreferrer"&gt;CloudHub APIs&lt;/a&gt; or &lt;a href="https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/arm-rest-services/minor/1.0/pages/home/" rel="noopener noreferrer"&gt;ARM REST Services&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error Handling:
The nature of robustness is also taken in consideration with error handling. If user tries to invoke any API which is not linked with the CloudHub Account, the Alexa tries to search the response from other APIs. For eg: User can get the server details from the Server as well as the Server Groups API.
If the authorization fails Alexa sends a respond by saying "Something went wrong! Please try again". And the Alexa again generates the bearer_token to get the response from API.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  AnyPoint Studio platform:
&lt;/h4&gt;

&lt;p&gt;We have tested our skill for several CloudHub APIs..Some of them are mentioned below:&lt;br&gt;
1.&lt;a href="https://anypoint.mulesoft.com/accounts/login" rel="noopener noreferrer"&gt;Login&lt;/a&gt;&lt;br&gt;
2.&lt;a href="https://anypoint.mulesoft.com/accounts/api/me" rel="noopener noreferrer"&gt;Accounts&lt;/a&gt;&lt;br&gt;
3.&lt;a href="https://anypoint.mulesoft.com/accounts/api/organizations/&amp;lt;&amp;lt;org_id&amp;gt;&amp;gt;/environments" rel="noopener noreferrer"&gt;Organizations&lt;/a&gt; &lt;br&gt;
4.&lt;a href="https://anypoint.mulesoft.com/cloudhub/api/v2/applications" rel="noopener noreferrer"&gt;Applications&lt;/a&gt;&lt;br&gt;
5.&lt;a href="https://anypoint.mulesoft.com/hybrid/api/v1/servers" rel="noopener noreferrer"&gt;Servers&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;CloudHub APIs Reference:&lt;br&gt;
&lt;a href="https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/minor/1.0/console/summary/" rel="noopener noreferrer"&gt;https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/minor/1.0/console/summary/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Snapshot of applications already deployed in our anypoint platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2zhtxtu8krb87zohn5mq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2zhtxtu8krb87zohn5mq.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Testing of ARM REST SERVICES.
&lt;/h4&gt;

&lt;p&gt;Now lets test our skill with Server API.&lt;/p&gt;

&lt;p&gt;GET method is used to invoke this API.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://anypoint.mulesoft.com/hybrid/api/v1/servers" rel="noopener noreferrer"&gt;https://anypoint.mulesoft.com/hybrid/api/v1/servers&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This header contains all the three parameters (environment_id, organization_id and bearer_token).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6ksnorpafvbv0yxiufng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6ksnorpafvbv0yxiufng.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now click on the "Test Request" tab.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ft7dco702b2q6go34j3lu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ft7dco702b2q6go34j3lu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Provide the values of all the parameters which you got earlier and then "Send Request".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkuqexpppdoz75cp4t67i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkuqexpppdoz75cp4t67i.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hurrah! The API is working. Now you are ready to run your CloudHub Alexa Skill Set.&lt;/p&gt;

&lt;h4&gt;
  
  
  Running the CloudHub Alexa Skill Set:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Once you clone this skill from Github deploy it in the Alexa Developer Console and then change the endpoint as HTTPS.&lt;/li&gt;
&lt;li&gt;Invoke your skill using the invocation name(Alexa open first project). &lt;/li&gt;
&lt;li&gt;In the permission tab gives the "customer name" permission for personalization of the skill.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F88yzzbi03ggyq5fbjupo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F88yzzbi03ggyq5fbjupo.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Save and build your model to reflect the changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fux95ypz22leracue5ek9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fux95ypz22leracue5ek9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After successful building you are ready to test this skill either from the console or from your Alexa device.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Snapshot of testing the CloudHub Alexa Skill Set:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F52348wbsnyyqbqllvg51.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F52348wbsnyyqbqllvg51.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Future Extension of the CloudHub Alexa Skill Set:
&lt;/h3&gt;

&lt;p&gt;In future we can link the AIML based chatbot which internally calls the CloudHub APIs and using the NGROK we can call our services. It will integrate the Alexa SDK with the chatbot and gives user seamless effect of interaction. To know more about it please &lt;a href="https://dev.to/vikashinvenio/control-your-mule-infra-via-bot-2pbl"&gt;read&lt;/a&gt; this post.&lt;/p&gt;

</description>
      <category>mulesofthackathon</category>
      <category>alexa</category>
      <category>anypointplatform</category>
      <category>iaminvenio</category>
    </item>
  </channel>
</rss>
