Class: Aserto::Directory::V2::Client

Inherits:
Object
  • Object
show all
Includes:
Requests
Defined in:
lib/aserto/directory/v2/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(url: "directory.prod.aserto.com:8443", api_key: nil, tenant_id: nil, cert_path: nil) ⇒ Aserto::Directory::V2::Client

Creates a new Directory V2 Client



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/aserto/directory/v2/client.rb', line 21

def initialize(url: "directory.prod.aserto.com:8443", api_key: nil, tenant_id: nil, cert_path: nil)
  @reader_client = ::Aserto::Directory::Reader::V2::Reader::Stub.new(
    url,
    load_creds(cert_path),
    interceptors: [Interceptors::Headers.new(api_key, tenant_id)]
  )
  @writer_client = ::Aserto::Directory::Writer::V2::Writer::Stub.new(
    url,
    load_creds(cert_path),
    interceptors: [Interceptors::Headers.new(api_key, tenant_id)]
  )
end

Instance Method Details

#check_permission(subject:, permission:, object:, trace: false) ⇒ Boolean

Check permissions



42
43
44
# File 'lib/aserto/directory/v2/client.rb', line 42

def check_permission(subject:, permission:, object:, trace: false)
  reader_client.check_permission(check_permission_request(subject, permission, object, trace))
end

#check_relation(subject:, relation:, object:, trace: false) ⇒ Boolean

Check relation



54
55
56
# File 'lib/aserto/directory/v2/client.rb', line 54

def check_relation(subject:, relation:, object:, trace: false)
  reader_client.check_relation(check_relation_request(subject, relation, object, trace))
end

#delete_relation(subject:, relation:, object:) ⇒ Object

Delete a relation



127
128
129
# File 'lib/aserto/directory/v2/client.rb', line 127

def delete_relation(subject:, relation:, object:)
  writer_client.delete_relation(delete_relation_request(subject, relation, object))
end

#object(type:, key:) ⇒ ::Aserto::Directory::Common::V2::Object

Get an object by type and key



64
65
66
# File 'lib/aserto/directory/v2/client.rb', line 64

def object(type:, key:)
  reader_client.get_object(object_request(key, type)).result
end

#objects(type:, page: nil) ⇒ Array<::Aserto::Directory::Common::V2::Object>

Get a list of objects by type



83
84
85
# File 'lib/aserto/directory/v2/client.rb', line 83

def objects(type:, page: nil)
  reader_client.get_objects(objects_request(type, page)).results
end

#relation(subject: nil, relation: nil, object: nil) ⇒ ::Aserto::Directory::Common::V2::Relation

Get a relation



94
95
96
# File 'lib/aserto/directory/v2/client.rb', line 94

def relation(subject: nil, relation: nil, object: nil)
  reader_client.get_relation(relation_request(subject, relation, object)).results
end

#relations(subject: nil, relation: nil, object: nil, page: nil) ⇒ Array<::Aserto::Directory::Common::V2::Relation>

Get a list of relations



105
106
107
# File 'lib/aserto/directory/v2/client.rb', line 105

def relations(subject: nil, relation: nil, object: nil, page: nil)
  reader_client.get_relations(relations_request(subject, relation, object, page)).results
end

#set_object(object:) ⇒ ::Aserto::Directory::Common::V2::Object

Set an object



73
74
75
# File 'lib/aserto/directory/v2/client.rb', line 73

def set_object(object:)
  writer_client.set_object(new_object_request(object)).result
end

#set_relation(subject:, relation:, object:, hash: nil) ⇒ ::Aserto::Directory::Common::V2::Relation

Set a relation



116
117
118
# File 'lib/aserto/directory/v2/client.rb', line 116

def set_relation(subject:, relation:, object:, hash: nil)
  writer_client.set_relation(new_relation_request(subject, relation, object, hash)).result
end