import { Extensions } from './extensions'; import { ParameterLocation } from './http-operation'; import { Dictionary } from '@azure-tools/linq'; import { DeepPartial } from '@azure-tools/codegen'; export declare enum Scheme { Bearer = "bearer" } export declare enum SecurityType { ApiKey = "apiKey", Http = "http", OAuth2 = "oauth2", OpenIDConnect = "openIdConnect" } export declare class APIKeySecurityScheme extends Extensions implements APIKeySecurityScheme { name: string; extensions: Dictionary; constructor(name: string, inWhere: ParameterLocation, initializer?: DeepPartial); } export declare class BearerHTTPSecurityScheme extends Extensions implements BearerHTTPSecurityScheme { extensions: Dictionary; scheme: Scheme; constructor(initializer?: DeepPartial); } export declare class ImplicitOAuthFlow extends Extensions implements ImplicitOAuthFlow { authorizationUrl: string; extensions: Dictionary; scopes: Dictionary; constructor(authorizationUrl: string, initializer?: DeepPartial); } export declare class NonBearerHTTPSecurityScheme extends Extensions implements NonBearerHTTPSecurityScheme { scheme: string; extensions: Dictionary; constructor(scheme: string, initializer?: DeepPartial); } export declare class OAuth2SecurityScheme extends Extensions implements OAuth2SecurityScheme { flows: OAuthFlows; extensions: Dictionary; constructor(flows: OAuthFlows, initializer?: DeepPartial); } export declare class OAuthFlows extends Extensions implements OAuthFlows { extensions: Dictionary; constructor(initializer?: DeepPartial); } export interface OpenIdConnectSecurityScheme extends Extensions { type: SecurityType.OpenIDConnect; openIdConnectUrl: string; description?: string; } export declare class OpenIdConnectSecurityScheme extends Extensions implements OpenIdConnectSecurityScheme { openIdConnectUrl: string; extensions: Dictionary; constructor(openIdConnectUrl: string, initializer?: DeepPartial); } export interface PasswordOAuthFlow extends Extensions { tokenUrl: string; refreshUrl?: string; scopes: Dictionary; } export declare class PasswordOAuthFlow extends Extensions implements PasswordOAuthFlow { tokenUrl: string; extensions: Dictionary; scopes: Dictionary; constructor(tokenUrl: string, initializer?: DeepPartial); } export type HTTPSecurityScheme = NonBearerHTTPSecurityScheme | BearerHTTPSecurityScheme; export type SecurityScheme = APIKeySecurityScheme | HTTPSecurityScheme | OAuth2SecurityScheme | OpenIdConnectSecurityScheme; export interface APIKeySecurityScheme extends Extensions { type: SecurityType.ApiKey; name: string; in: ParameterLocation; description?: string; } export declare class AuthorizationCodeOAuthFlow extends Extensions implements AuthorizationCodeOAuthFlow { authorizationUrl: string; extensions: Dictionary; scopes: Dictionary; constructor(authorizationUrl: string, tokenUrl: string, initializer?: DeepPartial); } export declare class ClientCredentialsFlow extends Extensions implements ClientCredentialsFlow { tokenUrl: string; extensions: Dictionary; scopes: Dictionary; constructor(tokenUrl: string, initializer?: DeepPartial); } export interface AuthorizationCodeOAuthFlow extends Extensions { authorizationUrl: string; tokenUrl: string; refreshUrl?: string; scopes: Dictionary; } export interface BearerHTTPSecurityScheme extends Extensions { scheme: Scheme.Bearer; bearerFormat?: string; type: SecurityType.Http; description?: string; } export interface ClientCredentialsFlow extends Extensions { tokenUrl: string; refreshUrl?: string; scopes: Dictionary; } export interface ImplicitOAuthFlow extends Extensions { authorizationUrl: string; refreshUrl?: string; scopes: Dictionary; } export interface NonBearerHTTPSecurityScheme extends Extensions { scheme: string; description?: string; type: SecurityType.Http; } export interface OAuth2SecurityScheme extends Extensions { type: SecurityType.OAuth2; flows: OAuthFlows; description?: string; } export interface OAuthFlows extends Extensions { implicit?: ImplicitOAuthFlow; password?: PasswordOAuthFlow; clientCredentials?: ClientCredentialsFlow; authorizationCode?: AuthorizationCodeOAuthFlow; } //# sourceMappingURL=security-scheme.d.ts.map