class SDM::RoleGrants

RoleGrants represent relationships between composite roles and the roles that make up those composite roles. When a composite role is attached to another role, the permissions granted to members of the composite role are augmented to include the permissions granted to members of the attached role.

Public Class Methods

new(host, insecure, parent) click to toggle source
# File lib/svc.rb, line 1008
def initialize(host, insecure, parent)
    begin
        if insecure
            @stub = V1::RoleGrants::Stub.new(host, :this_channel_is_insecure)
        else
            cred = GRPC::Core::ChannelCredentials.new()
            @stub = V1::RoleGrants::Stub.new(host, cred)
        end
    rescue => exception
        raise Plumbing::convert_error_to_porcelain(exception)
    end
    @parent = parent
end

Public Instance Methods

create( role_grant \ , deadline:nil) click to toggle source

Create registers a new RoleGrant.

# File lib/svc.rb, line 1022
        def create(
role_grant \
,
 deadline:nil)
            req = V1::RoleGrantCreateRequest.new()
                        
            req.role_grant = Plumbing::convert_role_grant_to_plumbing(role_grant)
            tries = 0
            plumbing_response = nil
            loop do
                begin
                    plumbing_response = @stub.create(req, metadata: @parent.get_metadata('RoleGrants.Create', req), deadline:deadline)
                rescue => exception
                    if (@parent.shouldRetry(tries, exception))
                        tries++
                        @parent.jitterSleep(tries)
                        next
                    end
                    raise Plumbing::convert_error_to_porcelain(exception)
                end
                break
            end

                        
            resp = RoleGrantCreateResponse.new()
            resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
            resp.role_grant = Plumbing::convert_role_grant_to_porcelain(plumbing_response.role_grant)
            resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
            resp
        end
delete( id \ , deadline:nil) click to toggle source

Delete removes a RoleGrant by ID.

# File lib/svc.rb, line 1084
        def delete(
id \
,
 deadline:nil)
            req = V1::RoleGrantDeleteRequest.new()
                        
            req.id = (id)
            tries = 0
            plumbing_response = nil
            loop do
                begin
                    plumbing_response = @stub.delete(req, metadata: @parent.get_metadata('RoleGrants.Delete', req), deadline:deadline)
                rescue => exception
                    if (@parent.shouldRetry(tries, exception))
                        tries++
                        @parent.jitterSleep(tries)
                        next
                    end
                    raise Plumbing::convert_error_to_porcelain(exception)
                end
                break
            end

                        
            resp = RoleGrantDeleteResponse.new()
            resp.meta = Plumbing::convert_delete_response_metadata_to_porcelain(plumbing_response.meta)
            resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
            resp
        end
get( id \ , deadline:nil) click to toggle source

Get reads one RoleGrant by ID.

# File lib/svc.rb, line 1053
        def get(
id \
,
 deadline:nil)
            req = V1::RoleGrantGetRequest.new()
                        
            req.id = (id)
            tries = 0
            plumbing_response = nil
            loop do
                begin
                    plumbing_response = @stub.get(req, metadata: @parent.get_metadata('RoleGrants.Get', req), deadline:deadline)
                rescue => exception
                    if (@parent.shouldRetry(tries, exception))
                        tries++
                        @parent.jitterSleep(tries)
                        next
                    end
                    raise Plumbing::convert_error_to_porcelain(exception)
                end
                break
            end

                        
            resp = RoleGrantGetResponse.new()
            resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
            resp.role_grant = Plumbing::convert_role_grant_to_porcelain(plumbing_response.role_grant)
            resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
            resp
        end
list( filter \ , *args, deadline:nil) click to toggle source

List gets a list of RoleGrants matching a given set of criteria.

# File lib/svc.rb, line 1114
        def list(
filter \
,
*args,
 deadline:nil)
            req = V1::RoleGrantListRequest.new()
            req.meta = V1::ListRequestMetadata.new()
            page_size_option = @parent._test_options['PageSize']
            if page_size_option.is_a? Integer
                req.meta.limit = page_size_option
            end
                        
            req.filter = Plumbing::quote_filter_args(filter, *args)
            resp = Enumerator::Generator.new { |g|
                tries = 0
                loop do
                    begin
                        plumbing_response = @stub.list(req, metadata: @parent.get_metadata('RoleGrants.List', req), deadline:deadline)
                    rescue => exception
                        if (@parent.shouldRetry(tries, exception))
                            tries++
                            @parent.jitterSleep(tries)
                            next
                        end
                        raise Plumbing::convert_error_to_porcelain(exception)
                    end
                    tries = 0
                    plumbing_response.role_grants.each do |plumbing_item|
                        g.yield Plumbing::convert_role_grant_to_porcelain(plumbing_item)
                    end
                    break if plumbing_response.meta.next_cursor == ""
                    req.meta.cursor = plumbing_response.meta.next_cursor
                end
            }
            resp
        end