public string Create(IOpenApiMetadataResourceStrategy resourceStrategy)
        {
            try
            {
                var resources = resourceStrategy.GetFilteredResources(_documentContext)
                                .ToList();

                var swaggerDocument = new SwaggerDocument
                {
                    info = new Info
                    {
                        title       = "Ed-Fi Operational Data Store API", version = $"{ApiVersionConstants.Ods}",
                        description =
                            "The Ed-Fi ODS / API enables applications to read and write education data stored in an Ed-Fi ODS through a secure REST interface. \n***\n > *Note: Consumers of ODS / API information should sanitize all data for display and storage. The ODS / API provides reasonable safeguards against cross-site scripting attacks and other malicious content, but the platform does not and cannot guarantee that the data it contains is free of all potentially harmful content.* \n***\n"
                    },
                    host = "%HOST%", basePath = "%BASE_PATH%", securityDefinitions =
                        new Dictionary <string, SecurityScheme>
                    {
                        {
                            "oauth2_client_credentials", new SecurityScheme
                            {
                                type = "oauth2", description =
                                    "Ed-Fi ODS/API OAuth 2.0 Client Credentials Grant Type authorization",
                                flow   = "application", tokenUrl = "%TOKEN_URL%",
                                scopes = new Dictionary <string, string>()
                            }
                        }
                    },
                    security =
                        new List <IDictionary <string, IEnumerable <string> > >
                    {
                        new Dictionary <string, IEnumerable <string> >
                        {
                            {
                                "oauth2_client_credentials", new string[0]
                            }
                        }
                    },
                    consumes = _documentContext.IsCompositeContext
                                              ? null
                                              : SwaggerDocumentHelper.GetConsumes(),
                    produces = SwaggerDocumentHelper.GetProduces(), tags = _tagsFactory.Create(resources),
                    paths = _pathsFactory.Create(resources), definitions = _definitionsFactory.Create(resources),
                    parameters = _parametersFactory.Create(_documentContext.IsCompositeContext), responses = _responsesFactory.Create()
                };

                return(JsonConvert.SerializeObject(
                           swaggerDocument,
                           new JsonSerializerSettings
                {
                    NullValueHandling = NullValueHandling.Ignore
                }));
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
                throw;
            }
        }