Module: A2A::SecurityScheme

Defined in:
lib/a2a/security_scheme.rb,
lib/a2a/security_scheme/oauth2.rb,
lib/a2a/security_scheme/api_key.rb,
lib/a2a/security_scheme/http_auth.rb,
lib/a2a/security_scheme/mutual_tls.rb,
lib/a2a/security_scheme/open_id_connect.rb

Defined Under Namespace

Classes: APIKey, HTTPAuth, MutualTLS, OAuth2, OpenIDConnect

Constant Summary collapse

BUILDERS =
{
  "apiKeySecurityScheme" => ->(v) { APIKey.from_h(v) },
  "httpAuthSecurityScheme" => ->(v) { HTTPAuth.from_h(v) },
  "oauth2SecurityScheme" => ->(v) { OAuth2.from_h(v) },
  "openIdConnectSecurityScheme" => ->(v) { OpenIDConnect.from_h(v) },
  "mtlsSecurityScheme" => ->(v) { MutualTLS.from_h(v) }
}.freeze

Class Method Summary collapse

Class Method Details

.from_h(hash) ⇒ Object

Raises:

  • (ArgumentError)


19
20
21
22
23
24
# File 'lib/a2a/security_scheme.rb', line 19

def self.from_h(hash)
  key, builder = BUILDERS.find { |k, _| hash.key?(k) }
  raise ArgumentError, "unknown SecurityScheme: #{hash.keys.inspect}" unless key

  builder.call(hash[key])
end