Class: Deepgram::Management::Client

Inherits:
Base
  • Object
show all
Defined in:
lib/deepgram/management.rb

Overview

Client class for interacting with Deepgram’s Management API, allowing management of projects, keys, members, and more.

Direct Known Subclasses

OnPrem::Client

Instance Method Summary collapse

Methods included from ResponseHandler

#handle_response

Constructor Details

#initializeClient

Sets up the API endpoint and headers for JSON content type.



9
10
11
12
13
# File 'lib/deepgram/management.rb', line 9

def initialize
  super
  @connection.path_prefix = 'v1/projects'
  @connection.headers['Content-Type'] = 'application/json'
end

Instance Method Details

#balance(balance_id, project_id:) ⇒ Deepgram::Management::Response

Retrieves a specific balance for a project.

Parameters:

  • balance_id (String)

    The balance ID.

  • project_id (String)

    The project ID.

Returns:



206
207
208
# File 'lib/deepgram/management.rb', line 206

def balance(balance_id, project_id:)
  request(:get, "#{project_id}/balances/#{balance_id}")
end

#balances(project_id:) ⇒ Deepgram::Management::Response

Lists all balances for a project.

Parameters:

  • project_id (String)

    The project ID.

Returns:



198
199
200
# File 'lib/deepgram/management.rb', line 198

def balances(project_id:)
  request(:get, "#{project_id}/balances")
end

#create_key(project_id:, comment:, scopes:, **kwargs) ⇒ Deepgram::Management::Response

Creates a new key for a project.

Parameters:

  • project_id (String)

    The project ID.

  • comment (String)

    Comment or description for the key.

  • scopes (Array)

    Scopes or permissions assigned to the key.

  • kwargs (Hash)

    Additional keyword arguments for the request.

Returns:



72
73
74
75
76
# File 'lib/deepgram/management.rb', line 72

def create_key(project_id:, comment:, scopes:, **kwargs)
  request(:post, "#{project_id}/keys", **kwargs) do |request|
    request.body = JSON.generate(comment: comment, scopes: scopes)
  end
end

#delete_invite(email, project_id:) ⇒ nil

Deletes an invite for a project.

Parameters:

  • email (String)

    The email address of the invitee.

  • project_id (String)

    The project ID.

Returns:

  • (nil)

    Indicates the invite has been successfully deleted.



146
147
148
# File 'lib/deepgram/management.rb', line 146

def delete_invite(email, project_id:)
  request(:delete, "#{project_id}/invites/#{email}")
end

#delete_key(key_id, project_id:) ⇒ nil

Deletes a specific key for a project.

Parameters:

  • key_id (String)

    The key ID.

  • project_id (String)

    The project ID.

Returns:

  • (nil)

    Indicates the key has been successfully deleted.



82
83
84
# File 'lib/deepgram/management.rb', line 82

def delete_key(key_id, project_id:)
  request(:delete, "#{project_id}/keys/#{key_id}")
end

#delete_project(id) ⇒ nil

Deletes a specific project.

Parameters:

  • id (String)

    The project ID.

Returns:

  • (nil)

    Indicates the project has been successfully deleted.



44
45
46
# File 'lib/deepgram/management.rb', line 44

def delete_project(id)
  request(:delete, id)
end

#fields(project_id:, **kwargs) ⇒ Deepgram::Management::Response

Retrieves the available fields for usage data for a project.

Parameters:

  • project_id (String)

    The project ID.

  • kwargs (Hash)

    Additional keyword arguments for the request.

Returns:



189
190
191
# File 'lib/deepgram/management.rb', line 189

def fields(project_id:, **kwargs)
  request(:get, "#{project_id}/usage/fields", **kwargs)
end

#get_key(key_id, project_id:, **kwargs) ⇒ Deepgram::Management::Response

Retrieves a specific key by key ID for a project.

Parameters:

  • key_id (String)

    The key ID.

  • project_id (String)

    The project ID.

  • kwargs (Hash)

    Additional keyword arguments for the request.

Returns:



62
63
64
# File 'lib/deepgram/management.rb', line 62

def get_key(key_id, project_id:, **kwargs)
  request(:get, "#{project_id}/keys/#{key_id}", **kwargs)
end

#get_project(id, **kwargs) ⇒ Deepgram::Management::Response

Retrieves a specific project by ID.

Parameters:

  • id (String)

    The project ID.

  • kwargs (Hash)

    Additional keyword arguments for the request.

Returns:



27
28
29
# File 'lib/deepgram/management.rb', line 27

def get_project(id, **kwargs)
  request(:get, id, **kwargs)
end

#get_request(request_id, project_id:) ⇒ Deepgram::Management::Response

Retrieves a specific request for a project.

Parameters:

  • request_id (String)

    The request ID.

  • project_id (String)

    The project ID.

Returns:



171
172
173
# File 'lib/deepgram/management.rb', line 171

def get_request(request_id, project_id:)
  request(:get, "#{project_id}/requests/#{request_id}")
end

#invites(project_id:) ⇒ Deepgram::Management::Response

Lists all invites for a project.

Parameters:

  • project_id (String)

    The project ID.

Returns:



127
128
129
# File 'lib/deepgram/management.rb', line 127

def invites(project_id:)
  request(:get, "#{project_id}/invites")
end

#keys(project_id:) ⇒ Deepgram::Management::Response

Lists all keys for a project.

Parameters:

  • project_id (String)

    The project ID.

Returns:



53
54
55
# File 'lib/deepgram/management.rb', line 53

def keys(project_id:)
  request(:get, "#{project_id}/keys")
end

#leave_project(project_id:) ⇒ nil

Allows a member to leave a project.

Parameters:

  • project_id (String)

    The project ID.

Returns:

  • (nil)

    Indicates the member has left the project.



153
154
155
# File 'lib/deepgram/management.rb', line 153

def leave_project(project_id:)
  request(:delete, "#{project_id}/leave")
end

#member_scopes(project_id:, member_id:) ⇒ Deepgram::Management::Response

Retrieves scopes for a specific member of a project.

Parameters:

  • project_id (String)

    The project ID.

  • member_id (String)

    The member ID.

Returns:



107
108
109
# File 'lib/deepgram/management.rb', line 107

def member_scopes(project_id:, member_id:)
  request(:get, "#{project_id}/members/#{member_id}/scopes")
end

#members(project_id:) ⇒ Deepgram::Management::Response

Lists all members of a project.

Parameters:

  • project_id (String)

    The project ID.

Returns:



91
92
93
# File 'lib/deepgram/management.rb', line 91

def members(project_id:)
  request(:get, "#{project_id}/members")
end

#projectsDeepgram::Management::Response

Retrieves all projects.

Returns:



19
20
21
# File 'lib/deepgram/management.rb', line 19

def projects
  request(:get)
end

#remove_member(member_id, project_id:) ⇒ nil

Removes a specific member from a project.

Parameters:

  • member_id (String)

    The member ID.

  • project_id (String)

    The project ID.

Returns:

  • (nil)

    Indicates the member has been successfully removed.



99
100
101
# File 'lib/deepgram/management.rb', line 99

def remove_member(member_id, project_id:)
  request(:delete, "#{project_id}/members/#{member_id}")
end

#requests(project_id:, **kwargs) ⇒ Deepgram::Management::Response

Lists all requests for a project.

Parameters:

  • project_id (String)

    The project ID.

  • kwargs (Hash)

    Additional keyword arguments for the request.

Returns:



163
164
165
# File 'lib/deepgram/management.rb', line 163

def requests(project_id:, **kwargs)
  request(:get, "#{project_id}/requests", **kwargs)
end

#send_invite(email:, project_id:, scope:) ⇒ Deepgram::Management::Response

Sends an invite to join a project.

Parameters:

  • email (String)

    The email address of the invitee.

  • project_id (String)

    The project ID.

  • scope (Array)

    The scopes assigned to the invitee upon acceptance.

Returns:



136
137
138
139
140
# File 'lib/deepgram/management.rb', line 136

def send_invite(email:, project_id:, scope:)
  request(:post, "#{project_id}/invites") do |request|
    request.body = JSON.generate(email: email, scope: scope)
  end
end

#update_project(id, name:) ⇒ Deepgram::Management::Response

Updates the name of a specific project.

Parameters:

  • id (String)

    The project ID.

  • name (String)

    The new name for the project.

Returns:



35
36
37
38
39
# File 'lib/deepgram/management.rb', line 35

def update_project(id, name:)
  request(:patch, id) do |request|
    request.body = JSON.generate(name: name)
  end
end

#update_scope(scope, project_id:, member_id:) ⇒ Deepgram::Management::Response

Updates the scopes for a specific member of a project.

Parameters:

  • scope (Array)

    The new scopes for the member.

  • project_id (String)

    The project ID.

  • member_id (String)

    The member ID.

Returns:



116
117
118
119
120
# File 'lib/deepgram/management.rb', line 116

def update_scope(scope, project_id:, member_id:)
  request(:put, "#{project_id}/members/#{member_id}/scopes") do |request|
    request.body = JSON.generate(scope: scope)
  end
end

#usage(project_id:, **kwargs) ⇒ Deepgram::Management::Response

Retrieves usage information for a project.

Parameters:

  • project_id (String)

    The project ID.

  • kwargs (Hash)

    Additional keyword arguments for the request.

Returns:



181
182
183
# File 'lib/deepgram/management.rb', line 181

def usage(project_id:, **kwargs)
  request(:get, "#{project_id}/usage", **kwargs)
end