openapi: '3.0.2'
info:
  title: Signalmash API Platform
  version: '1.0'
  description: "Every API request authenticates the user, which you may do through the customer's site by creating tokens. Customers can now use the same or different tokens for each activity they make, thanks to a single management location.</br>Log in to the portal, then go to the API Menu and select \"Tokens\" from the submenu.</br>
    To make a token, go to the right upper corner and click \"Add Token.\"</br>
    There will be a pop-up window. Choose the function (s) to link to the token."
servers:
  - url: http://localhost:4219

components:
  securitySchemes:
    Bearer:
      type: apiKey
      name: Authorization
      in: header 

paths:      
  /apilogin:
    post:
      description: <h3>The Login API is used to verify a user's identity.</h3>
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                Username:
                  type: string   
                  description: Enter Your Token Name 
                Password:
                  type: string  
                  description: Enter Your Api Key    
              required:
                - Username
                - Password            
      responses:
        '200': 
          description: Login  Successfully   
          
  /getstate:
    get:
      description: <h3>To find the state we can use this API</h3>
      security:
        - Bearer: []  
      responses:
        '200':
          description: State Find Successfully.         

  /getratecenter:
    get:
      description: <h3>To find the rate center we can use this API</h3>
      parameters:
        - name: State
          in: query
          description: The Rate Center's postal abbreviation is state or province.</br>Example:NJ
          required: true
          schema:
            type: string
      security:
        - Bearer: []  
      responses:
        '200':
          description: Rate Center Find Successfully.   
          
  /getnpa:
    get:
      description: <h3>To find the NPA we can use this API</h3>
      parameters:
        - name: State
          in: query
          description: The Rate Center's postal abbreviation is state or province.</br>Example:NJ
          required: true
          schema:
            type: string
      security:
        - Bearer: []  
      responses:
        '200':
          description: NPA Find Successfully.      
          
  /getnxx:
    get:
      description: <h3>To find the NXX we can use this API</h3>
      parameters:
        - name: NPA
          in: query
          description: Generally referred to as the Area Code, the first three digits of a ten-digit North American Numbering Plan (NANP) number</br>Example:201
          required: true
          schema:
            type: string
      security:
        - Bearer: []  
      responses:
        '200':
          description: NXX Find Successfully.         

  /searchtollfree:
    get:
      description: <h3>Use this to look for toll-free numbers. Additional API services can purchase and customize these numbers. By setting the searchType to toll-free, you can find accessible toll-free numbers.</h3>
      parameters:
        - name: TF_PREFIX
          in: query
          description: Enter the 3 digit number that is tollfree prefix</br>Example:833
          required: true
          schema:
            type: string
        - name: Qty
          in: query
          description: Enter an integer number</br>Example:1
          required: true
          schema:
            type: integer    
      security:
        - Bearer: []
      responses:
        '200':
          description: Tollfree Number Find Successfully.  

  /searchbyrate:
    get:
      description: <h3>Lookup a single or a group of contact information. By putting searchType to domestic and searchBy to rate center, you can search by rate center</h3>
      parameters:
        - name: RateCenter
          in: query
          description: The full name of the Rate Center, which is a geographical Rate Exchange Area.</br>Example:JERSEYCITY
          required: true
          schema:
            type: string
        - name: State
          in: query
          description: The Rate Center's postal abbreviation is state or province.</br>Example:NJ
          required: true
          schema:
            type: string    
        - name: Qty
          in: query
          description: Enter an integer number</br>Example:1
          required: true
          schema:
            type: integer 
        - name: CampaignId
          in: query
          description: Enter a text character</br>Example:1
          schema:
            type: string     
      security:
        - Bearer: []  
      responses:
        '200':
          description: DID Find Successfully  
          
  /searchbynpa:
    get:
      description: <h3>Lookup a single or a group of phone numbers. You can search by the first 'n' numbers and select domestic as the searchType and npanxx as the searchBy</h3>
      parameters:
        - name: NPA
          in: query
          description: Generally referred to as the Area Code, the first three digits of a ten-digit North American Numbering Plan (NANP) number</br>Example:201
          required: true
          schema:
            type: string
        - name: NXX
          in: query
          description: The first three digits after the Area Code of a ten-digit NANP number, commonly referred to as the telephone exchange or prefix</br>Example:200
          schema:
            type: string    
        - name: Qty
          in: query
          description: Enter an integer number</br>Example:1
          required: true
          schema:
            type: integer 
        - name: CampaignId
          in: query
          description: Enter a text character</br>Example:1
          schema:
            type: string    
      security:
        - Bearer: []
      responses:
        '200':
          description: DID Find Successfully.   
          
  # /addcart:
  #   post:
  #     description: <h3>In this, you are add DID in a cart.</h3>
  #     security:
  #       - Bearer: []
  #     requestBody:
  #       required: true
  #       content:
  #         application/x-www-form-urlencoded:
  #           schema:
  #             type: object
  #             properties:
  #               DID:          
  #                  type: array
  #                  description: "It is a ten digits phone number</br>Example:8463216998"      
  #             required:
  #               - DID     
  #     responses:
  #       '201':
  #         description: DID Number Purchase Successfully          
          
  /listconnection:
    get:
      description: <h3>Returns a basic id.</h3>
      security:
        - Bearer: []
      responses:
        '200':
          description: Get id Succesfully.

  /getnumberdetails:
    get:
      description: <h3>In this, you are finding a network operators</h3>
      parameters:
        - name: DID
          in: query
          description: It is a ten digits phone number.</br>Example:8632146398
          required: true
          schema:
            type: string
      security:
        - Bearer: []  
      responses:
        '200':
          description: Network Operators Find Successfully.         

  /buy:
    post:
      description: <h3>In this, you are purchasing a DID.</h3>
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                DID:          
                   type: string
                   description: "It is a ten digits phone number</br>Example:8463216998"
                Connection:
                   type: string  
                InboundSMS:
                   type: string  
                OutboundSMS:
                   type: string 
                InboundVoice:
                   type: string  
                OutboundVoice:
                   type: string    
                CampaignId:
                   type: string           
              required:
                - DID     
      responses:
        '201':
          description: DID Number Purchase Successfully  


  /enablesms:
    post:
      description: <h3>In this,You have Enabled Sms.</h3>
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                DID:          
                   type: string
                   description: "It is a ten digits phone number</br>Example:8463216998"
                CampaignId:
                   type: string           
              required:
                - DID 
                - CampaignId    
      responses:
        '201':
          description: Enable SMS  Successfully   
          
  /disablesms:
    delete:
      description: <h3>To find the rate center we can use this API</h3>
      parameters:
        - name: DID
          in: query
          description: "It is a ten digits phone number</br>Example:8463216998"
          required: true
          schema:
            type: string
      security:
        - Bearer: []  
      responses:
        '200':
          description: Disable Offnet Successfully.         

  /enablesmsstatus:
    get:
      description: <h3>To find the rate center we can use this API</h3>
      parameters:
        - name: DID
          in: query
          description: "It is a ten digits phone number</br>Example:8463216998"
          required: true
          schema:
            type: string
      security:
        - Bearer: []  
      responses:
        '200':
          description: Offnet status Find Successfully.        

  /enablesmsnotifications:
    get:
      description: <h3>To find the notifications using this API</h3>
      security:
        - Bearer: []  
      responses:
        '200':
          description: Offnet status Find Successfully.           

  /disconnect:
    post:
      description: "To remove an array of DIDs associated with the account, use this operation"
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                DID:          # <!--- form field name
                  type: string    
                  description: "It is a ten digits phone number, Example:8463216998" 
              required:
                - DID          
      responses:
        '201':
          description: DID Disconnect Successfully    
        
  /addhookUrls:
    post:
      description: <h3>Use this API to Add Webhook URLs. This is for adding a web hook for us to send a response, such as a message detail record or a text message. A Connection Key is required along with the URL for the Web Hook.</h3>
      tags:
        - Connection
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                ConnectionKey:
                  type: string
                  description: "Enter Connection Key</br>Example: amxnjnchbed21443w"  
                Type:   
                  type: string
                  enum: [CDR Url,SMS Receive,SMS Status]
                  default: CDR Url
                  description: "Choose One Value</br>Example: CDR Url"
                Urls:
                  type: string
                  description: "Enter Webhook Url</br>Example: https://test.com"         
              required:
                - ConnectionKey
                - Type  
                - Urls 
      responses:
        '201':
          description: Webhook Urls Added Successfully.  

  /updatehookUrls:
    put:
      description: <h3>Use this API to Update Webhook URLs. This is for updating a web hook for us to send a response, such as a message detail record or a text message. A Connection Key is required along with the URL for the Web Hook.</h3>
      tags:
        - Connection
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                ConnectionKey:
                  type: string
                  description: "Enter Connection Key</br>Example: amxnjnchbed21443w"  
                Type:   
                  type: string
                  enum: [CDR Url,SMS Receive,SMS Status]
                  default: CDR Url
                  description: "Choose One Value</br>Example: CDR Url"
                Urls:
                  type: string
                  description: "Enter Webhook Url</br>Example: https://test.com"         
              required:
                - ConnectionKey
                - Type  
                - Urls 
      responses:
        '201':
          description: Webhook Urls Updated Successfully.  
        
   #<!-- Sms Api Path Write here >  
  
  /brand:
    get:
      description: <h3>This procedure returns a brands.</h3>
      parameters:
        - name: type
          in: query
          description: Enter brand Id.</br>Example:15
          required: true
          schema:
            type: string
      security:
        - Bearer: []   
      responses:
        '200':
          description: Brand Get Successfully.        

  /getbrands:
    get:
      description: <h3>This Procedure Returns all Brands.</h3>
      security:
        - Bearer: []   
      responses:
        '200':
          description: Brands Get Successfully.

  /brandRelationship:
    get:
      description: <h3>This Procedure Returns Brands Relationships.</h3>
      security:
        - Bearer: []   
      responses:
        '200':
          description: Brand Relationship Get Successfully.
          
  /brandVertical:
    get:
      description: <h3>This Procedure Returns Brand Vertical.</h3>
      security:
        - Bearer: []   
      responses:
        '200':
          description: Brand Vertical Get Successfully.       
          
  /brandEntity:
    get:
      description: <h3>This Procedure Returns The Brand Entity.</h3>
      security:
        - Bearer: []   
      responses:
        '200':
          description: Brand Entity Get Successfully.  
          
  /brandVetting:
    get:
      description: <h3>This procedure Returns Brand Vetting.</h3>
      security:
        - Bearer: []   
      responses:
        '200':
          description: Brands Vetting Get Successfully.    
          
  /brandDCA:
    get:
      description: <h3>This Procedure Returns BrandDCA.</h3>
      security:
        - Bearer: []   
      responses:
        '200':
          description: BrandDCA Get Successfully.        

  /campaigns:
    get:
      description: <h3>This Procedure Returns a Campaigns.</h3>
      security:
        - Bearer: []   
      responses:
        '200':
          description: Campaigns Get Successfully.    
          
  /brandCampaign:
    get:
      description: <h3>This Procedure Returns a Brand Campaign.</h3>
      parameters:
        - name: type
          in: query
          description: Enter brand Id.</br>Example:BG9WFSS
          required: true
          schema:
            type: string
      security:
        - Bearer: []   
      responses:
        '200':
          description: Brand Campaign Get Successfully.  

  /altBusinessIdType:
    get:
      description: <h3>This Procedure Returns an altBusinessIdType.</h3>
      security:
        - Bearer: []   
      responses:
        '200':
          description: AltBusinessIdType Get Successfully.  
          
  /campaignCases:
    get:
      description: <h3>This Procedure Returns a Campaign Case.</h3>
      security:
        - Bearer: []   
      responses:
        '200':
          description: Campaign Cases Get Successfully.  
          
  /addbrand:
    post:
      description: "Add a brand"
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                brand_key:         
                  type: string    
                  description: "It is a Brand Key, Example:#RGHFDFGH142"
                companyName:         
                  type: string    
                  description: "It is a Company Name, Example:DC" 
                displayName:         
                  type: string    
                  description: "It is a Display Name, Example:Azure"  
                entityType:         
                  type: string    
                  description: "It is a Entity Type, Example:Portal" 
                ein:         
                  type: string    
                  description: "It is a EIN, Example:Portal"    
                phone:         
                  type: string    
                  description: "It is a Phone, Example:9847632154"
                country:         
                  type: string    
                  description: "It is a Country, Example:USA"
                email:         
                  type: string    
                  description: "It is a Email, Example:abc@gmail.com"  
                street:         
                  type: string    
                  description: "It is a Street, Example:Main" 
                city:         
                  type: string    
                  description: "It is a City, Example:Phoenix" 
                postalCode:         
                  type: string    
                  description: "It is a PostalCode, Example:85001" 
                website:         
                  type: string    
                  description: "It is a Website, Example:" 
                vertical:         
                  type: string    
                  description: "It is a Vertical, Example:" 
                brandRelationship:         
                  type: string    
                  description: "It is a Brand Relationship, Example:"                     
              required:
                - companyName  
                - displayName
      responses:
        '201':
          description: Brand Create Successfully!.

  /registerbrand:
    post:
      description: "Register a Brand" 
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                entityType:         
                  type: string    
                firstName:         
                  type: string     
                lastName:         
                  type: string    
                displayName:         
                  type: string       
                companyName:         
                  type: string    
                ein:         
                  type: string    
                einIssuingCountry:         
                  type: string    
                phone:         
                  type: string    
                street:         
                  type: string    
                city:         
                  type: string  
                state:         
                  type: string  
                postalCode:         
                  type: string
                country:         
                  type: string    
                email:         
                  type: string  
                brandRelationship:
                  type: string 
                website:
                  type: string      
                vertical:
                  type: string
                referenceId:
                  type: string                            
      responses:
        '201':
          description: Register Brand Successfully!. 
                 
  /sendOTPforBrand:
    post:
      description: <h3>This procedure send a mobile phone confirmation link.</h3>
      tags:
        - Brands
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:  
             schema:
              type: object
              properties:
                brandId:
                  type: string 
                  description: "Enter brandId {HGVHJG}"
              required:
                - brandId
      responses:
        '200':
          description:  Link successfully sent.          

  /updateBrandIdentity:
    put:
      description: <h3>This Procedure for Update Brand Identity Status.</h3>
      tags:
        - Brands
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:  
             schema:
              type: object
              properties:
                brandId:
                  type: string 
                  description: "Enter brandId {HGVHJG}"
              required:
                - brandId
      responses:
        '200':
          description:  Brand Identity Status Updated.  
      
  
  /addcampaign:
    post:
      description: "Add a Campaign"
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                campaign_key:         
                  type: string    
                  description: "It is a Campaign Key, Example:#RCA12345" 
                campaign_name:         
                  type: string    
                  description: "It is a Campaign Name, Example:Apple"  
                vertical:         
                  type: string    
                  description: "It is a Vertical, Example:"    
                Sample1:         
                  type: string    
                  description: "It is a Sample1, Example:"
                Sample2:         
                  type: string    
                  description: "It is a Sample2, Example:"
                Sample3:         
                  type: string    
                  description: "It is a Sample3, Example:"  
                Sample4:         
                  type: string    
                  description: "It is a Sample4, Example:" 
                Sample5:         
                  type: string    
                  description: "It is a Sample5, Example:" 
                usecase:
                  type: string
                  description: "It is a Use Cases, Example:"  
                subUsecases:
                  type: string
                  description: "It is a Sub Use Cases, Example:" 
                brandId:
                  type: string
                  description: "It is a BrandId, Example:REF1245"
                subscriberOptin:
                  type: boolean
                  enum: [true,false]  
                  description: "It is a Subsciber Option, Example:false"
                subscriberOptout:
                  type: boolean
                  enum: [true,false]  
                  description: "It is a Subsciber Output, Example:false"
                subscriberHelp:
                  type: boolean
                  enum: [true,false]  
                  description: "It is a Subsciber Help, Example:false"          
                description:         
                  type: string    
                  description: "It is a Description, Example:It is a company"                   
              required: 
                - campaign_name
                - Sample1
                - Sample2
                - description 
                - usecase
                - subUsecases
                - brandId             
      responses:
        '201':
          description: Campaign Added Successfully!.           
          
  /registercampaign:
    post:
      description: "To Create a Campaign"
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                brandId:
                  type: string
                vertical:         
                  type: string     
                usecase:         
                  type: string          
                subUsecases:
                  type: array
                  items:
                    type: string
                resellerId:
                  type: string
                description:
                  type: string
                embeddedLink:
                  type: boolean
                  default: false
                embeddedPhone:
                  type: boolean  
                  default: false
                numberPool:
                  type: boolean
                  default: false
                ageGated:
                  type: boolean
                  default: false
                directLending:
                  type: boolean 
                  default: false    
                subscriberOptin:
                  type: boolean  
                  default: false
                subscriberOptout:
                  type: boolean  
                  default: false
                subscriberHelp:
                  type: boolean  
                  default: false    
                Sample1:         
                  type: string    
                Sample2:         
                  type: string    
                Sample3:         
                  type: string      
                Sample4:         
                  type: string     
                Sample5:         
                  type: string    
                messageFlow:
                  type: string
                helpMessage:
                  type: string
                mnoIds:
                  type: array  
                  items:
                    type: string     
                referenceId:
                  type: string  
                autoRenewal:
                  type: boolean  
                  default: true      
                tag:         
                  type: array
                  items:
                    type: string
                affiliateMarketing:
                  type: boolean    
                  default: false                      
              required:
                - brandId
                - usecase
                - subUsecases
                - resellerId
                - embeddedLink
                - embeddedPhone
                - numberPool
                - ageGated
                - directLending 
                - subscriberOptin
                - subscriberOptout
                - subscriberHelp       
                - messageFlow
                - helpMessage
                - mnoIds
                - referenceId
                - autoRenewal
                - affiliateMarketing        
      responses:
        '201':
          description: Campaign Register Successfully!.         
          
  /deletecampaign:
    delete:
      description: <h3>To find the rate center we can use this API</h3>
      parameters:
        - name: id
          in: query
          description: "It is a ten digits phone number</br>Example:8463216998"
          required: true
          schema:
            type: string
      security:
        - Bearer: []  
      responses:
        '200':
          description: Disable Offnet Successfully.        

  /sms:
    post:
      description: "SMS API is a program that allows us to send SMS messages quickly and effortlessly. You may send alerts, reminders, and notifications, as well as a one-time passcode verification message"
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                FROM:
                  type: string
                  description: "Sender of the SMS, Example:8463216998"
                TO:
                  type: string
                  description: "Receiver of the SMS, Example:8463216998"
                BODY:
                  type: string  
                  description: "The content of the message."
                Connection:
                  type: string
                OutboundSMS:
                  type: string    
              required:
                - FROM
                - TO
                - BODY 
      responses:
        '201': 
          description: SMS Send Successfully  

  /mms:
    post:
      description: "Multimedia Messaging APIs combine all the advantages of MMS to deliver rich information such as images, video, and audio for increased impact. Your consumers can collaborate with you on rich content"
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                FROM:
                  type: string
                  description: "Sender of the MMS, Example:8463216998"
                TO:
                  type: string
                  description: "Receiver of the MMS, Example:8463216998"
                BODY:
                  type: string  
                  description: "The content of the message."
                ATTCHMENT:
                  type: string
                  format: binary
                  description: "The is used for sending images,videos,documents,etc."
              required:
                - FROM
                - TO
                - BODY     
      responses:
        '201': 
          description: MMS Send Successfully  

  /getmdr:
    get:
      description: <h3>To find the mdr  we can use this API</h3>
      parameters:
        - name: Limit
          in: query
          description: Enter Integer Number</br>Example:1000
          required: true
          schema:
            type: string
        - name: SessionId
          in: query
          description: Enter SessionId here</br>Example:A25HIDCVH
          required: true
          schema:
            type: string     
      security:
        - Bearer: []  
      responses:
        '200':
          description: MDR Find Successfully.        

  # /mdrsearch:
  #   post:
  #     security:
  #       - Bearer: []
  #     requestBody:
  #       required: true
  #       content:  
  #         application/x-www-form-urlencoded:
  #           schema:
  #             type: object
  #             properties:
  #               Batch_Id:
  #                 type: string
  #               Recipient_id:
  #                 type: string  
  #             required:
  #               - Batch_Id  
  #               - Recipient_id              
  #     responses:
  #       '201': 
  #         description: Message Details Find Succesfully          

  /originate:
    post:
      description: "You can make the calls on outbound numbers by using this API."
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                FROM:
                  type: string
                  description: "Callerid for reciever of the call."
                CALLER:
                  type: string
                  description: "Caller of the call."
                CALLEE:
                  type: string
                  description: "Callee of the call."
                AMD:
                  type: boolean
                  default: false
                Recording:
                  type: boolean
                  default: false
              required:
                - FROM
                - CALLER
                - CALLEE        
      responses:
        '201': 
          description: Call Originate Successfully.     

  /makecall:
    post:
      description: "You can make the calls on outbound numbers by using this API."
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                FROM:
                  type: string
                  description: "Sender of the call."
                TO:
                  type: string
                  description: "Receiver of the call."
                Extension:
                  type: string 
                  description: "" 
                AMD:
                  type: boolean
                  default: false
                Recording:
                  type: boolean   
                  default: false  
              required:
                - FROM
                - TO        
      responses:
        '201': 
          description: Call Connected Successfully.           

  /senddtmf:
    post:
      description: "Starts sending the DTMF digits specified. You can send DTMF digits separately in many requests or a single request with multiple numbers."
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                UUID:
                  type: string
                  description: "A string containing the unique call UUID"
                TONE:
                  type: string
                  description: "It is a message that we sent for taking your information."
              required:
                - UUID   
                - TONE     
      responses:
        '201': 
          description: DTMF Send Successfully.   

  /receiveddtmf:
    post:
      description: "Starts sending the DTMF digits specified. You can send DTMF digits separately in many requests or a single request with multiple numbers."
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                UUID:
                  type: string
                  description: "A string containing the unique call UUID"
                TONE:
                  type: string
                  description: "It is a message that we sent for taking your information."
              required:
                - UUID   
                - TONE     
      responses:
        '201': 
          description: DTMF Received Successfully.          

  /record:
    post:
      description: "Use to create the recording of the audio."
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                UUID:
                  type: string
                  description: "A string containing the unique call UUID."
                Recording:
                  type: string
                  enum: [Start, Stop]
                  description: "You can stop and start the recording."
              required:
                - UUID   
                - Recording     
      responses:
        '201': 
          description: Recording Start Or Stop Successfully  

  /hangup:
    post:
      description: "This API is used to end the call."
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                UUID:
                  type: string
                  description: "A string containing the unique call UUID."
              required:
                - UUID       
      responses:
        '200': 
          description: Call Hangup Successfully.
    
  /barge:
    post:
      description: "It is used to assist supervisors in monitoring an ongoing call."
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                Number : 
                  type: string
                  description: "Sender of the call."
                Extension:
                  type: string
                  description: "Use Your 7 digit Extension."
              required:
                - Number  
                - Extension     
      responses:
        '200': 
          description: Call Hangup Successfully 

  /transfer:
    post:
      description: "This is used for transferring the calls."
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                UUID:
                  type: string
                  description: "A string containing the unique call UUID"
                Number:
                  type: string  
                  description: "Use Your 7 digit Extension or 10 digit Phone Number."
              required:
                - UUID  
                - Number     
      responses:
        '200': 
          description: Call Transfer Successfully.   
          
  /3waycall:
    post:
      description: "If you want to add a third person in your call, that API is used."
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                UUID:
                  type: string
                  description: "A string containing the unique call UUID."
                Number:
                  type: string  
                  description: "The phone number of the party you would like to add to the existing call."
              required:
                - UUID  
                - Number     
      responses:
        '200': 
          description: Call Connected Successfully.
          
  # /blindtansfer:
  #   post:
  #     description: "If you want to add a third person in your call, that API is used."
  #     security:
  #       - Bearer: []
  #     requestBody:
  #       required: true
  #       content:  
  #         application/x-www-form-urlencoded:  
  #           schema:
  #             type: object
  #             properties:
  #               UUID:
  #                 type: string
  #                 description: "A string containing the unique call UUID."
  #               NUMBER:
  #                 type: string  
  #                 description: "A phone number that you are using."
  #             required:
  #               - UUID  
  #               - NUMBER     
  #     responses:
  #       '200': 
  #         description: Call Hangup Succesfully
  #       '401':
  #         description: Failed         

  /hold:
    post:
      description: "When the call is put on hold, this API is used."
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:  
            schema:
              type: object
              properties:
                UUID:
                  type: string
                  description: "A string containing the unique call UUID."
                Type:
                  type: string
                  enum: [Start,Stop,Toggle]  
                  description: "We have options for stop,start and toggle."
              required:
                - UUID  
                - Type     
      responses:
        '200': 
          description:  hangup Successfully.       

  /getcdr:
    get:
      description: <h3>To find the mdr  we can use this API</h3>
      parameters:
        - name: Limit
          in: query
          description: Enter Limit here</br>Example:1000
          required: true
          schema:
            type: string   
      security:
        - Bearer: []          
      responses:
        '200':
          description: CDR Find Successfully.          
          
  /getcall:
    get:
      description: <h3>This procedure returns a list of channels for the client.</h3>
      security:
        - Bearer: []
      responses:
        '200':
          description: Channels List Find Successfully.          

  /addagent:
    post:
      description: <h3>This Procedure For Adding Agent.</h3>
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:  
             schema:
              type: object
              properties:
                FullName:
                  type: string
                  description: "FullName of the agent."  
                UserName:
                  type: string 
                  description: "Username." 
                Password:
                  type: string 
                  description: "Password."  
                CallerId:
                  type: string
                  description: "Caller Id"   
              required:
                - FullName
                - UserName
                - Password  
      responses:
        '201': 
          description: Agent Added Succesfully.

  /updateagent:
    patch:
      description: <h3>Used for update or change of the agent.</h3>
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:  
             schema:
              type: object
              properties:
                IdAgent:
                  type: string 
                  description: "A unique id that is assigned to the agent."
                FullName:
                  type: string
                  description: "Name of the agent."
                UserName:
                  type: string   
                  description: "Username."
                Password:
                  type: string
                  description: "Password."  
                CallerId:
                  type: string
                  description: "Caller Id."   
              required:
                - IdAgent    
      responses:
        '201': 
          description: Update Agent Successfully        

  /getagent:
    get:
      description: <h3>This Procedure Returns The Agent Details.</h3>
      parameters:
        - name: username
          in: query
          description: Enter Agent Name</br>Example:Peter
          required: true
          schema:
            type: string
      security:
        - Bearer: []
      responses:
        '200':
          description: Get Agent Successfully.    

  /getallagent:
    get:
      description: <h3>This procedure returns a list of agents for the client.</h3>
      parameters:
        - name: GroupName
          in: query
          description: Enter Group Name.</br>Example:Tom
          required: true
          schema:
            type: string
      security:
        - Bearer: []
      responses:
        '200':
          description: Get All Agent Successfully.   

  /deleteagent:
    delete:
      description: <h3>This API is used to remove agent groups from a particular account.<h3>
      security:
        - Bearer: []
      parameters:
        - name: id
          in: query
          description: Enter the Id</br>Example:1
          required: true
          schema:
            type: string     
      responses:
        '200': 
          description: Delete Agent Successfully
          
  /getgroups:
    get:
      description: <h3>This procedure  returns for all agents.</h3>
      security:
        - Bearer: []
      responses:
        '200':
          description: Get Groups Successfully.

  /getagents:
    get:
      description: <h3>This procedure  returns for all agents.</h3>
      security:
        - Bearer: []
      responses:
        '200':
          description: Get Agents Successfully.        
          

  /addmapping:        
    post:
          description: <h3>This Procedure is for Agent's Mapping.</h3>
          security:
            - Bearer: []
          requestBody:
            required: true
            content:  
              application/x-www-form-urlencoded:
                schema:
                  type: object
                  properties:
                    group_key:
                      type: string
                    name:
                      type: array  
                  required:
                    - name
                    - group_key 
          responses:
            '200': 
              description: Group Mapping Added Successfully!.            
          
  /agentlogin:
    post:
      description: <h3>This Procedure is For Agent's Login.</h3>
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:  
             schema:
              type: object
              properties:
                Username:
                  type: string 
                  description: "Enter Username."
                Password:
                  type: string
                  description: "Enter Password."
              required:
                - Username   
                - Password
      responses:
        '200':
          description:  Agent Login Successfully.  

  /agentstatus:        
    post:
      description: <h3>This procedure is for Agent's Status.</h3>
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                Session:
                  type: string
                AgentStatus:
                  type: string
                  enum: [Ready,Break]     
              required:
                - AgentStatus 
      responses:
        '200': 
          description: Agent Status Change Successfully.                
          
  /agentlogout:
    get:
      description: <h3>This procedure is for Agent's Logout.</h3>
      parameters:
        - name: Session
          in: query
          description: Enter the Group Name.</br>Example:Tom
          required: true
          schema:
            type: string
      security:
        - Bearer: []
      responses:
        '200':
          description:  Agent Logout Successfully.            
  
  /addgroup:
    post:
      description: <h3>Permit to add the group.</h3>
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:  
             schema:
              type: object
              properties:
                GroupName:
                  type: string
                  description: "Name of the group."
                Strategy:
                  type: string
                  enum: [ring-all,longest-idle-agent,round-robin,top-down,agent-with-least-talk-time,agent-with-fewest-calls,sequentially-by-agent-order,random,ring-progressively]
                  description: "A plan to design a group."
                TierRulesApply:
                  type: boolean
                  enum: [true,false]  
                  description: "When the maximum wait time is reached, perform the action you specified."
                Description:  
                  type: string
                  description: "Description of the group."
              required:
                - GroupName
                - Strategy
                - TierRulesApply     
                - Description 
      responses:
        '201': 
          description: Group Added Successfully.
          
  /updategroup:
    patch:
      description: <h3>An existing group's description is updated. A resource group's name cannot be changed.</h3>
      security:
        - Bearer: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:  
             schema:
              type: object
              properties:
                idgroup:
                  type: string
                  description: "A specific id that a group uses."
                GroupName:
                  type: string
                  description: "Name of the group."
                Strategy:
                  type: string
                  description: "A plan to design a group."
                  enum: [ring-all,longest-idle-agent,round-robin,top-down,agent-with-least-talk-time,agent-with-fewest-calls,sequentially-by-agent-order,random,ring-progressively]
                TierRulesApply:
                  type: boolean 
                  enum: [true,false]
                  description: "When the maximum wait time is reached, perform the action you specified."
                Description:  
                  type: string
                  description: "Description of the group."
              required: 
                - idgroup
      responses:
        '201': 
          description: Group Updated Successfully.      
          
  /getgroup:
    get:
      description: <h3>Returns information about a resource group that has been defined.</h3>
      security:
        - Bearer: []
      responses:
        '200':
          description: Get Group Succesfully.         
          
  /deletegroup:
    delete:
      description: <h3>The selected resource group is deleted. When you remove a resource group, you don't remove any of the group's resources; you remove the group's structure</h#>
      security:
        - Bearer: []
      parameters:
        - name: id
          in: query
          description: Enter the Id</br>Example:1
          required: true
          schema:
            type: string     
      responses:
        '200': 
          description: Group deleted  Successfully.             

  /sendotpbysms:        
    post:
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                FROM:
                  type: string
                TO:
                  type: string    
                TemplateKey:
                  type: string  
              required:
                - FROM
                - TO  
                - TemplateKey
      responses:
        '200': 
          description: OTP Send Successfully.       

  /sendotpbycall:        
    post:
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                FROM:
                  type: string
                TO:
                  type: string
                required:
                  - FROM
                  - TO  
      responses:
        '200': 
          description: OTP Send Successfully.   
          
  /verifyotp:        
    post:
      security:
        - Bearer: []
      requestBody:
        required: true
        content:  
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                OTP:
                  type: string
                SessionId:
                  type: string    
              required:
                - OTP
                - SessionId
      responses:
        '200': 
          description: OTP Verify  Successfully.