public SecurityScheme Build(IDictionary<string, object> dynamicRaml)
		{
			var securityScheme = new SecurityScheme();

			new BasicInfoBuilder().Set(dynamicRaml, securityScheme);

			securityScheme.DescribedBy = dynamicRaml.ContainsKey("describedBy")
				? new SecuritySchemeDescriptorBuilder().Build((IDictionary<string, object>) dynamicRaml["describedBy"])
				: null;

			securityScheme.Settings = dynamicRaml.ContainsKey("settings")
				? new SecuritySettingsBuilder().Build((IDictionary<string, object>) dynamicRaml["settings"])
				: null;

			return securityScheme;
		}
		public void UseOAuth1(string authorizationUri, string requestTokenUri, string tokenCredentialsUri, SecuritySchemeDescriptor securitySchemeDescriptor)
		{
			securityType = "oauth_1_0";
			var securitySettings = new SecuritySettings
			                       {
				                       AuthorizationUri = authorizationUri,
				                       RequestTokenUri = requestTokenUri,
				                       TokenCredentialsUri = tokenCredentialsUri
			                       };
			securityScheme = new SecurityScheme
			                 {
				                 DescribedBy = securitySchemeDescriptor,
				                 Settings = securitySettings,
				                 Type = new Dictionary<string, IDictionary<string, string>> {{"OAuth 1.0", null}}
			                 };
		}
		public void UseOAuth2(string authorizationUri, string accessTokenUri, IEnumerable<string> authorizationGrants, IEnumerable<string> scopes, SecuritySchemeDescriptor securitySchemeDescriptor)
		{
			securityType = "oauth_2_0";
			var securitySettings = new SecuritySettings
			                       {
				                       AuthorizationUri = authorizationUri,
				                       AccessTokenUri = accessTokenUri,
				                       AuthorizationGrants = authorizationGrants,
				                       Scopes = scopes
			                       };
			securityScheme = new SecurityScheme
			                 {
				                 DescribedBy = securitySchemeDescriptor,
				                 Settings = securitySettings,
				                 Type = new Dictionary<string, IDictionary<string, string>> {{"OAuth 2.0", null}}
			                 };
		}
		public void SetSecurityScheme(string type, SecurityScheme scheme)
		{
			securityScheme = scheme;
			securityType = type;
		}