module ChimeSdk::MeetingCoordinator

Meeting coordinator as a wrapper module of AWS SDK for Ruby, which simulates AWS SDK for JavaScript. @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html Aws::Chime::Client of AWS SDK for Ruby @see docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Chime.html AWS.Chime of AWS SDK for JavaScript

Public Class Methods

attendee_as_json(attendee) click to toggle source

Build attendee JSON object as hash from Aws::Chime::Types::Attendee object @param [required, Aws::Chime::Types::Attendee] attendee Attendee response as Aws::Chime::Types::Attendee object @return [Hash] Attendee JSON object as hash @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html#get_attendee-instance_method Aws::Chime::Client#get_attendee of AWS SDK for Ruby @see docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Chime.html#getAttendee-property AWS.Chime#getAttendee of AWS SDK for JavaScript

# File lib/chime_sdk/meeting_coordinator.rb, line 173
def self.attendee_as_json(attendee)
  return {} unless attendee.is_a?(Aws::Chime::Types::Attendee)
  {
    "Attendee": {
      "ExternalUserId": attendee.external_user_id,
      "AttendeeId": attendee.attendee_id,
      "JoinToken": attendee.join_token
    }
  }
end
client() click to toggle source

Return initialized Aws::Chime::Client. You must use “us-east-1” as the region for Chime API and set the endpoint. @return [Aws::Chime::Client] Initialized Aws::Chime::Client instance @see aws.github.io/amazon-chime-sdk-js/modules/gettingstarted.html

# File lib/chime_sdk/meeting_coordinator.rb, line 12
def self.client
  @@client ||= Aws::Chime::Client.new(region: 'us-east-1')
end
create_attendee(meeting_id, attendee_request_id, tags: []) click to toggle source

Wrapper of Aws::Chime::Client#create_attendee method. This method uses 'ChimeSdk.config.prefix + attendee_request_id' for external_user_id. @param [required, String] meeting_id The Amazon Chime SDK meeting ID @param [required, String] attendee_request_id Part of the Amazon Chime SDK external user ID. Links the attendee to an identity managed by a builder application. @return [Hash] Created attendee JSON object as hash @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html#create_attendee-instance_method Aws::Chime::Client#create_attendee of AWS SDK for Ruby

# File lib/chime_sdk/meeting_coordinator.rb, line 110
def self.create_attendee(meeting_id, attendee_request_id, tags: [])
  resp = client.create_attendee({
    meeting_id: meeting_id,
    external_user_id: ChimeSdk.config.prefix + attendee_request_id,
    tags: tags
  })
  attendee_as_json(resp.attendee)
end
create_meeting(meeting_request_id, meeting_host_id: nil, media_region: ChimeSdk.config.media_region, tags: [], notifications_configuration: {} ) click to toggle source

Wrapper of Aws::Chime::Client#create_meeting method. This method uses 'ChimeSdk.config.prefix + meeting_request_id' for client_request_token and external_meeting_id. @param [required, String] meeting_request_id The unique identifier for the client request. Use a different token for different meetings. @param [String] meeting_host_id (nil) Reserved @param [String] media_region (ChimeSdk.config.media_region) The Region in which to create the meeting @param [Array<Aws::Chime::Types::Tag>] tags (nil) The tag key-value pairs @param [Aws::Chime::Types::MeetingNotificationConfiguration] notifications_configuration (nil) The configuration for resource targets to receive notifications when meeting and attendee events occur @return [Hash] Created meeting JSON object as hash @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html#create_meeting-instance_method Aws::Chime::Client#create_meeting of AWS SDK for Ruby

# File lib/chime_sdk/meeting_coordinator.rb, line 51
def self.create_meeting(meeting_request_id,
  meeting_host_id: nil,
  media_region: ChimeSdk.config.media_region,
  tags: [],
  notifications_configuration: {}
)
  resp = client.create_meeting({
    client_request_token: ChimeSdk.config.prefix + meeting_request_id,
    external_meeting_id: ChimeSdk.config.prefix + meeting_request_id,
    meeting_host_id: meeting_host_id,
    media_region: media_region,
    tags: tags,
    notifications_configuration: notifications_configuration
  })
  meeting_as_json(resp.meeting)
end
delete_attendee(meeting_id, attendee_id) click to toggle source

Wrapper of Aws::Chime::Client#delete_attendee method. @param [required, String] attendee_id The Amazon Chime SDK attendee ID @return [void] @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html#delete_attendee-instance_method Aws::Chime::Client#delete_attendee of AWS SDK for Ruby

# File lib/chime_sdk/meeting_coordinator.rb, line 136
def self.delete_attendee(meeting_id, attendee_id)
  client.delete_attendee({
    meeting_id: meeting_id,
    attendee_id: attendee_id
  })
end
delete_meeting(meeting_id) click to toggle source

Wrapper of Aws::Chime::Client#delete_meeting method. @param [required, String] meeting_id The Amazon Chime SDK meeting ID @return [void] @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html#delete_meeting-instance_method Aws::Chime::Client#delete_meeting of AWS SDK for Ruby

# File lib/chime_sdk/meeting_coordinator.rb, line 83
def self.delete_meeting(meeting_id)
  client.delete_meeting({
    meeting_id: meeting_id
  })
end
get_attendee(meeting_id, attendee_id) click to toggle source

Wrapper of Aws::Chime::Client#get_attendee method. @param [required, String] meeting_id The Amazon Chime SDK meeting ID @param [required, String] attendee_id The Amazon Chime SDK attendee ID @return [Hash] Attendee JSON object as hash @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html#get_attendee-instance_method Aws::Chime::Client#get_attendee of AWS SDK for Ruby

# File lib/chime_sdk/meeting_coordinator.rb, line 124
def self.get_attendee(meeting_id, attendee_id)
  resp = client.get_attendee({
    meeting_id: meeting_id,
    attendee_id: attendee_id
  })
  attendee_as_json(resp.attendee)
end
get_meeting(meeting_id) click to toggle source

Wrapper of Aws::Chime::Client#get_meeting method. @param [required, String] meeting_id The Amazon Chime SDK meeting ID @return [Hash] Meeting JSON object as hash @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html#get_meeting-instance_method Aws::Chime::Client#get_meeting of AWS SDK for Ruby

# File lib/chime_sdk/meeting_coordinator.rb, line 72
def self.get_meeting(meeting_id)
  resp = client.get_meeting({
    meeting_id: meeting_id
  })
  meeting_as_json(resp.meeting)
end
list_attendees(meeting_id, max_results: ChimeSdk.config.max_attendee_results ) click to toggle source

Wrapper of Aws::Chime::Client#list_attendees method. @param [required, String] meeting_id The Amazon Chime SDK meeting ID @param [Integer] max_results (ChimeSdk.config.max_attendee_results) The maximum number of results to return in a single call @return [Array<Hash>] Array of attendee JSON object as hash @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html#list_attendees-instance_method Aws::Chime::Client#list_attendees of AWS SDK for Ruby

# File lib/chime_sdk/meeting_coordinator.rb, line 94
def self.list_attendees(meeting_id,
  max_results: ChimeSdk.config.max_attendee_results
)
  resp = client.list_attendees({
    meeting_id: meeting_id,
    max_results: max_results
  })
  resp.attendees.map { |attendee| attendee_as_json(attendee) }
end
list_meetings( max_results: ChimeSdk.config.max_meeting_results, prefix_filter: nil ) click to toggle source

Wrapper of Aws::Chime::Client#list_meetings method. This function also provides prefix match filter of external_meeting_id. This method filters the result with ChimeSdk.config.prefix to return only meetings in your application. @param [Integer] max_results (ChimeSdk.config.max_meeting_results) The maximum number of results to return in a single call @param [String] prefix_filter (nil) Additional string for prefix match filter of external_meeting_id @return [Array<Hash>] Array of filtered meeting JSON object as hash @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html#list_meetings-instance_method Aws::Chime::Client#list_meetings of AWS SDK for Ruby

# File lib/chime_sdk/meeting_coordinator.rb, line 30
def self.list_meetings(
  max_results: ChimeSdk.config.max_meeting_results,
  prefix_filter: nil
)
  resp = client.list_meetings({
    max_results: max_results
  })
  meetings = resp.meetings
  meetings = meetings.select { |meeting| meeting.external_meeting_id.start_with?(ChimeSdk.config.prefix + prefix_filter) } if prefix_filter
  meetings.map { |meeting| meeting_as_json(meeting) }
end
meeting_as_json(meeting) click to toggle source

Build meeting JSON object as hash from Aws::Chime::Types::Meeting object @param [required, Aws::Chime::Types::Meeting] meeting Meeting response as Aws::Chime::Types::Meeting object @return [Hash] Meeting JSON object as hash @see docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Chime/Client.html#get_meeting-instance_method Aws::Chime::Client#get_meeting of AWS SDK for Ruby @see docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Chime.html#getMeeting-property AWS.Chime#getMeeting of AWS SDK for JavaScript

# File lib/chime_sdk/meeting_coordinator.rb, line 148
def self.meeting_as_json(meeting)
  return {} unless meeting.is_a?(Aws::Chime::Types::Meeting)
  {
    "Meeting": {
      "MeetingId": meeting.meeting_id,
      "ExternalMeetingId": meeting.external_meeting_id,
      "MediaPlacement": {
        "AudioHostUrl": meeting.media_placement.audio_host_url,
        "AudioFallbackUrl": meeting.media_placement.audio_fallback_url,
        "ScreenDataUrl": meeting.media_placement.screen_data_url,
        "ScreenSharingUrl": meeting.media_placement.screen_sharing_url,
        "ScreenViewingUrl": meeting.media_placement.screen_viewing_url,
        "SignalingUrl": meeting.media_placement.signaling_url,
        "TurnControlUrl": meeting.media_placement.turn_control_url
      },
      "MediaRegion": meeting.media_region
    }
  }
end
reset_client(client) click to toggle source

Reset client with initialized Aws::Chime::Client instance. @param [Aws::Chime::Client] client Initialized Aws::Chime::Client instance @return [Aws::Chime::Client] Initialized Aws::Chime::Client instance

# File lib/chime_sdk/meeting_coordinator.rb, line 19
def self.reset_client(client)
  @@client = client
end