public Exception AttemptAPIVersionSetConversion(CLICreatorArguments cliArguments)
 {
     try
     {
         YAMLReader            yamlReader = new YAMLReader();
         APITemplateVersionSet versionSet = yamlReader.ConvertYAMLFileToAPIVersionSet(cliArguments.apiVersionSetFile);
         return(null);
     }
     catch (Exception ex)
     {
         return(ex);
     }
 }
        public async Task <APITemplate> CreateAPITemplateAsync(OpenApiDocument doc, CLICreatorArguments cliArguments)
        {
            YAMLReader yamlReader = new YAMLReader();
            // create api schema with properties
            APITemplate apiSchema = new APITemplate()
            {
                name       = doc.Info.Title,
                type       = "Microsoft.ApiManagement/service/apis",
                apiVersion = "2018-06-01-preview",
                properties = new APITemplateProperties()
                {
                    contentFormat                 = "swagger-json",
                    contentValue                  = await CreateOpenAPISpecContentsAsync(cliArguments),
                    subscriptionRequired          = IsSubscriptionRequired(doc),
                    protocols                     = CreateProtocols(doc),
                    serviceUrl                    = doc.Servers[0].Url,
                    subscriptionKeyParameterNames = CreateSubscriptionKeyParameterNames(doc),
                    description                   = doc.Info.Description,
                    displayName                   = doc.Info.Title,
                    apiVersion                    = cliArguments.apiVersion ?? doc.Info.Version,
                    apiRevision                   = cliArguments.apiRevision ?? "",
                    apiVersionSetId               = cliArguments.apiVersionSetId ?? "",
                    path = cliArguments.path ?? "",
                    apiRevisionDescription = cliArguments.apiRevisionDescription ?? "",
                    apiVersionDescription  = cliArguments.apiVersionDescription ?? "",
                    apiVersionSet          = cliArguments.apiVersionSetFile != null?yamlReader.ConvertYAMLFileToAPIVersionSet(cliArguments.apiVersionSetFile) : null,
                                                 authenticationSettings = cliArguments.authenticationSettingsFile != null?yamlReader.ConvertYAMLFileToAuthenticationSettings(cliArguments.authenticationSettingsFile) : null,
                                                                              // assumptions
                                                                              type         = "http",
                                                                              apiType      = "http",
                                                                              wsdlSelector = null
                }
            };

            // create resources
            List <APITemplateResource> resources          = new List <APITemplateResource>();
            SchemaTemplateCreator      schemaCreator      = new SchemaTemplateCreator();
            List <SchemaTemplate>      schemaTemplates    = schemaCreator.CreateSchemaTemplates(doc);
            OperationTemplateCreator   operationCreator   = new OperationTemplateCreator();
            List <OperationTemplate>   operationTemplates = operationCreator.CreateOperationTemplates(doc);

            resources.AddRange(schemaTemplates);
            resources.AddRange(operationTemplates);
            apiSchema.resources = resources.ToArray();

            return(apiSchema);
        }