/// <summary>
        /// Create a new routing key Creates a new routing key with escalation policy mapping. The targets array is a list of escalation policy policySlugs that the new routing key will target. This API may be called a maximum of 60 times per minute.
        /// </summary>
        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="xVOApiId">Your API ID</param>
        /// <param name="xVOApiKey">Your API Key</param>
        /// <param name="body"></param>
        /// <returns>Task of CreateRoutingKeyResponse</returns>
        public async System.Threading.Tasks.Task <CreateRoutingKeyResponse> ApiPublicV1OrgRoutingKeysPostAsync(string xVOApiId, string xVOApiKey, RoutingKeyPayload body)
        {
            Org.OpenAPITools.Client.ApiResponse <CreateRoutingKeyResponse> localVarResponse = await ApiPublicV1OrgRoutingKeysPostAsyncWithHttpInfo(xVOApiId, xVOApiKey, body);

            return(localVarResponse.Data);
        }
        /// <summary>
        /// Create a new routing key Creates a new routing key with escalation policy mapping. The targets array is a list of escalation policy policySlugs that the new routing key will target. This API may be called a maximum of 60 times per minute.
        /// </summary>
        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="xVOApiId">Your API ID</param>
        /// <param name="xVOApiKey">Your API Key</param>
        /// <param name="body"></param>
        /// <returns>Task of ApiResponse (CreateRoutingKeyResponse)</returns>
        public async System.Threading.Tasks.Task <Org.OpenAPITools.Client.ApiResponse <CreateRoutingKeyResponse> > ApiPublicV1OrgRoutingKeysPostAsyncWithHttpInfo(string xVOApiId, string xVOApiKey, RoutingKeyPayload body)
        {
            // verify the required parameter 'xVOApiId' is set
            if (xVOApiId == null)
            {
                throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'xVOApiId' when calling RoutingKeysApi->ApiPublicV1OrgRoutingKeysPost");
            }

            // verify the required parameter 'xVOApiKey' is set
            if (xVOApiKey == null)
            {
                throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'xVOApiKey' when calling RoutingKeysApi->ApiPublicV1OrgRoutingKeysPost");
            }

            // verify the required parameter 'body' is set
            if (body == null)
            {
                throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'body' when calling RoutingKeysApi->ApiPublicV1OrgRoutingKeysPost");
            }


            Org.OpenAPITools.Client.RequestOptions localVarRequestOptions = new Org.OpenAPITools.Client.RequestOptions();

            String[] _contentTypes = new String[] {
            };

            // to determine the Accept header
            String[] _accepts = new String[] {
                "application/json"
            };

            foreach (var _contentType in _contentTypes)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", _contentType);
            }

            foreach (var _accept in _accepts)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", _accept);
            }

            if (xVOApiId != null)
            {
                localVarRequestOptions.HeaderParameters.Add("X-VO-Api-Id", Org.OpenAPITools.Client.ClientUtils.ParameterToString(xVOApiId)); // header parameter
            }
            if (xVOApiKey != null)
            {
                localVarRequestOptions.HeaderParameters.Add("X-VO-Api-Key", Org.OpenAPITools.Client.ClientUtils.ParameterToString(xVOApiKey)); // header parameter
            }
            localVarRequestOptions.Data = body;


            // make the HTTP request

            var localVarResponse = await this.AsynchronousClient.PostAsync <CreateRoutingKeyResponse>("/api-public/v1/org/routing-keys", localVarRequestOptions, this.Configuration);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("ApiPublicV1OrgRoutingKeysPost", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return(localVarResponse);
        }
 /// <summary>
 /// Create a new routing key Creates a new routing key with escalation policy mapping. The targets array is a list of escalation policy policySlugs that the new routing key will target. This API may be called a maximum of 60 times per minute.
 /// </summary>
 /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="xVOApiId">Your API ID</param>
 /// <param name="xVOApiKey">Your API Key</param>
 /// <param name="body"></param>
 /// <returns>CreateRoutingKeyResponse</returns>
 public CreateRoutingKeyResponse ApiPublicV1OrgRoutingKeysPost(string xVOApiId, string xVOApiKey, RoutingKeyPayload body)
 {
     Org.OpenAPITools.Client.ApiResponse <CreateRoutingKeyResponse> localVarResponse = ApiPublicV1OrgRoutingKeysPostWithHttpInfo(xVOApiId, xVOApiKey, body);
     return(localVarResponse.Data);
 }