{"id":"df135fb8-6fb4-4782-8d3e-a687cdde14f3","shortId":"fdna9h","kind":"skill","title":"telnyx-networking-ruby","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Networking - Ruby\n\n## Installation\n\n```bash\ngem install telnyx\n```\n\n## Setup\n\n```ruby\nrequire \"telnyx\"\n\nclient = Telnyx::Client.new(\n  api_key: ENV[\"TELNYX_API_KEY\"], # This is the default and can be omitted\n)\n```\n\nAll examples below assume `client` is already initialized as shown above.\n\n## Error Handling\n\nAll API calls can fail with network errors, rate limits (429), validation errors (422),\nor authentication errors (401). Always handle errors in production code:\n\n```ruby\nbegin\n  result = client.messages.send_(to: \"+13125550001\", from: \"+13125550002\", text: \"Hello\")\nrescue Telnyx::Errors::APIConnectionError\n  puts \"Network error — check connectivity and retry\"\nrescue Telnyx::Errors::RateLimitError\n  # 429: rate limited — wait and retry with exponential backoff\n  sleep(1) # Check Retry-After header for actual delay\nrescue Telnyx::Errors::APIStatusError => e\n  puts \"API error #{e.status}: #{e.message}\"\n  if e.status == 422\n    puts \"Validation error — check required fields and formats\"\n  end\nend\n```\n\nCommon error codes: `401` invalid API key, `403` insufficient permissions,\n`404` resource not found, `422` validation error (check field formats),\n`429` rate limited (retry with exponential backoff).\n\n## Important Notes\n\n- **Pagination:** Use `.auto_paging_each` for automatic iteration: `page.auto_paging_each { |item| puts item.id }`.\n\n## List all clusters\n\n`GET /ai/clusters`\n\n```ruby\npage = client.ai.clusters.list\n\nputs(page)\n```\n\nReturns: `bucket` (string), `created_at` (date-time), `finished_at` (date-time), `min_cluster_size` (integer), `min_subcluster_size` (integer), `status` (enum: pending, starting, running, completed, failed), `task_id` (string)\n\n## Compute new clusters\n\nStarts a background task to compute how the data in an [embedded storage bucket](https://developers.telnyx.com/api-reference/embeddings/embed-documents) is clustered. This helps identify common themes and patterns in the data.\n\n`POST /ai/clusters` — Required: `bucket`\n\nOptional: `files` (array[string]), `min_cluster_size` (integer), `min_subcluster_size` (integer), `prefix` (string)\n\n```ruby\nresponse = client.ai.clusters.compute(bucket: \"my-bucket\")\n\nputs(response)\n```\n\nReturns: `task_id` (string)\n\n## Fetch a cluster\n\n`GET /ai/clusters/{task_id}`\n\n```ruby\ncluster = client.ai.clusters.retrieve(\"task_id\")\n\nputs(cluster)\n```\n\nReturns: `bucket` (string), `clusters` (array[object]), `status` (enum: pending, starting, running, completed, failed)\n\n## Delete a cluster\n\n`DELETE /ai/clusters/{task_id}`\n\n```ruby\nresult = client.ai.clusters.delete(\"task_id\")\n\nputs(result)\n```\n\n## Fetch a cluster visualization\n\n`GET /ai/clusters/{task_id}/graph`\n\n```ruby\nresponse = client.ai.clusters.fetch_graph(\"task_id\")\n\nputs(response)\n```\n\n## List Integrations\n\nList all available integrations.\n\n`GET /ai/integrations`\n\n```ruby\nintegrations = client.ai.integrations.list\n\nputs(integrations)\n```\n\nReturns: `available_tools` (array[string]), `description` (string), `display_name` (string), `id` (string), `logo_url` (string), `name` (string), `status` (enum: disconnected, connected)\n\n## List User Integrations\n\nList user setup integrations\n\n`GET /ai/integrations/connections`\n\n```ruby\nconnections = client.ai.integrations.connections.list\n\nputs(connections)\n```\n\nReturns: `allowed_tools` (array[string]), `id` (string), `integration_id` (string)\n\n## Get User Integration connection By Id\n\nGet user setup integrations\n\n`GET /ai/integrations/connections/{user_connection_id}`\n\n```ruby\nconnection = client.ai.integrations.connections.retrieve(\"user_connection_id\")\n\nputs(connection)\n```\n\nReturns: `allowed_tools` (array[string]), `id` (string), `integration_id` (string)\n\n## Delete Integration Connection\n\nDelete a specific integration connection.\n\n`DELETE /ai/integrations/connections/{user_connection_id}`\n\n```ruby\nresult = client.ai.integrations.connections.delete(\"user_connection_id\")\n\nputs(result)\n```\n\n## List Integration By Id\n\nRetrieve integration details\n\n`GET /ai/integrations/{integration_id}`\n\n```ruby\nintegration = client.ai.integrations.retrieve(\"integration_id\")\n\nputs(integration)\n```\n\nReturns: `available_tools` (array[string]), `description` (string), `display_name` (string), `id` (string), `logo_url` (string), `name` (string), `status` (enum: disconnected, connected)\n\n## List all Global IP Allowed Ports\n\n`GET /global_ip_allowed_ports`\n\n```ruby\nglobal_ip_allowed_ports = client.global_ip_allowed_ports.list\n\nputs(global_ip_allowed_ports)\n```\n\nReturns: `first_port` (integer), `id` (uuid), `last_port` (integer), `name` (string), `protocol_code` (string), `record_type` (string)\n\n## Global IP Assignment Health Check Metrics\n\n`GET /global_ip_assignment_health`\n\n```ruby\nglobal_ip_assignment_health = client.global_ip_assignment_health.retrieve\n\nputs(global_ip_assignment_health)\n```\n\nReturns: `global_ip` (object), `global_ip_assignment` (object), `health` (object), `timestamp` (date-time)\n\n## List all Global IP assignments\n\nList all Global IP assignments.\n\n`GET /global_ip_assignments`\n\n```ruby\npage = client.global_ip_assignments.list\n\nputs(page)\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Create a Global IP assignment\n\nCreate a Global IP assignment.\n\n`POST /global_ip_assignments`\n\nOptional: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n```ruby\nglobal_ip_assignment = client.global_ip_assignments.create\n\nputs(global_ip_assignment)\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Retrieve a Global IP\n\nRetrieve a Global IP assignment.\n\n`GET /global_ip_assignments/{id}`\n\n```ruby\nglobal_ip_assignment = client.global_ip_assignments.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(global_ip_assignment)\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Update a Global IP assignment\n\nUpdate a Global IP assignment.\n\n`PATCH /global_ip_assignments/{id}`\n\nOptional: `created_at` (string), `global_ip_id` (string), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (string)\n\n```ruby\nglobal_ip_assignment = client.global_ip_assignments.update(\n  \"6a09cdc3-8948-47f0-aa62-74ac943d6c58\",\n  global_ip_assignment_update_request: {}\n)\n\nputs(global_ip_assignment)\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Delete a Global IP assignment\n\nDelete a Global IP assignment.\n\n`DELETE /global_ip_assignments/{id}`\n\n```ruby\nglobal_ip_assignment = client.global_ip_assignments.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(global_ip_assignment)\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Global IP Assignment Usage Metrics\n\n`GET /global_ip_assignments_usage`\n\n```ruby\nglobal_ip_assignments_usage = client.global_ip_assignments_usage.retrieve\n\nputs(global_ip_assignments_usage)\n```\n\nReturns: `global_ip` (object), `global_ip_assignment` (object), `received` (object), `timestamp` (date-time), `transmitted` (object)\n\n## List all Global IP Health check types\n\nList all Global IP Health check types.\n\n`GET /global_ip_health_check_types`\n\n```ruby\nglobal_ip_health_check_types = client.global_ip_health_check_types.list\n\nputs(global_ip_health_check_types)\n```\n\nReturns: `health_check_params` (object), `health_check_type` (string), `record_type` (string)\n\n## List all Global IP health checks\n\nList all Global IP health checks.\n\n`GET /global_ip_health_checks`\n\n```ruby\npage = client.global_ip_health_checks.list\n\nputs(page)\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `health_check_params` (object), `health_check_type` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n## Create a Global IP health check\n\nCreate a Global IP health check.\n\n`POST /global_ip_health_checks`\n\nOptional: `created_at` (string), `global_ip_id` (uuid), `health_check_params` (object), `health_check_type` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n```ruby\nglobal_ip_health_check = client.global_ip_health_checks.create\n\nputs(global_ip_health_check)\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `health_check_params` (object), `health_check_type` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n## Retrieve a Global IP health check\n\nRetrieve a Global IP health check.\n\n`GET /global_ip_health_checks/{id}`\n\n```ruby\nglobal_ip_health_check = client.global_ip_health_checks.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(global_ip_health_check)\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `health_check_params` (object), `health_check_type` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n## Delete a Global IP health check\n\nDelete a Global IP health check.\n\n`DELETE /global_ip_health_checks/{id}`\n\n```ruby\nglobal_ip_health_check = client.global_ip_health_checks.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(global_ip_health_check)\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `health_check_params` (object), `health_check_type` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n## Global IP Latency Metrics\n\n`GET /global_ip_latency`\n\n```ruby\nglobal_ip_latency = client.global_ip_latency.retrieve\n\nputs(global_ip_latency)\n```\n\nReturns: `global_ip` (object), `mean_latency` (object), `percentile_latency` (object), `prober_location` (object), `timestamp` (date-time)\n\n## List all Global IP Protocols\n\n`GET /global_ip_protocols`\n\n```ruby\nglobal_ip_protocols = client.global_ip_protocols.list\n\nputs(global_ip_protocols)\n```\n\nReturns: `code` (string), `name` (string), `record_type` (string)\n\n## Global IP Usage Metrics\n\n`GET /global_ip_usage`\n\n```ruby\nglobal_ip_usage = client.global_ip_usage.retrieve\n\nputs(global_ip_usage)\n```\n\nReturns: `global_ip` (object), `received` (object), `timestamp` (date-time), `transmitted` (object)\n\n## List all Global IPs\n\nList all Global IPs.\n\n`GET /global_ips`\n\n```ruby\npage = client.global_ips.list\n\nputs(page)\n```\n\nReturns: `created_at` (string), `description` (string), `id` (uuid), `ip_address` (string), `name` (string), `ports` (object), `record_type` (string), `updated_at` (string)\n\n## Create a Global IP\n\nCreate a Global IP.\n\n`POST /global_ips`\n\nOptional: `created_at` (string), `description` (string), `id` (uuid), `ip_address` (string), `name` (string), `ports` (object), `record_type` (string), `updated_at` (string)\n\n```ruby\nglobal_ip = client.global_ips.create\n\nputs(global_ip)\n```\n\nReturns: `created_at` (string), `description` (string), `id` (uuid), `ip_address` (string), `name` (string), `ports` (object), `record_type` (string), `updated_at` (string)\n\n## Retrieve a Global IP\n\nRetrieve a Global IP.\n\n`GET /global_ips/{id}`\n\n```ruby\nglobal_ip = client.global_ips.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(global_ip)\n```\n\nReturns: `created_at` (string), `description` (string), `id` (uuid), `ip_address` (string), `name` (string), `ports` (object), `record_type` (string), `updated_at` (string)\n\n## Delete a Global IP\n\nDelete a Global IP.\n\n`DELETE /global_ips/{id}`\n\n```ruby\nglobal_ip = client.global_ips.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(global_ip)\n```\n\nReturns: `created_at` (string), `description` (string), `id` (uuid), `ip_address` (string), `name` (string), `ports` (object), `record_type` (string), `updated_at` (string)\n\n## List all Networks\n\nList all Networks.\n\n`GET /networks`\n\n```ruby\npage = client.networks.list\n\nputs(page)\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (string)\n\n## Create a Network\n\nCreate a new Network.\n\n`POST /networks` — Required: `name`\n\nOptional: `created_at` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n```ruby\nnetwork = client.networks.create(name: \"test network\")\n\nputs(network)\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (string)\n\n## Retrieve a Network\n\nRetrieve a Network.\n\n`GET /networks/{id}`\n\n```ruby\nnetwork = client.networks.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(network)\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (string)\n\n## Update a Network\n\nUpdate a Network.\n\n`PATCH /networks/{id}` — Required: `name`\n\nOptional: `created_at` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n```ruby\nnetwork = client.networks.update(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\", name: \"test network\")\n\nputs(network)\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (string)\n\n## Delete a Network\n\nDelete a Network.\n\n`DELETE /networks/{id}`\n\n```ruby\nnetwork = client.networks.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(network)\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (string)\n\n## Get Default Gateway status.\n\n`GET /networks/{id}/default_gateway`\n\n```ruby\ndefault_gateway = client.networks.default_gateway.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(default_gateway)\n```\n\nReturns: `created_at` (string), `id` (uuid), `network_id` (uuid), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Create Default Gateway.\n\n`POST /networks/{id}/default_gateway`\n\nOptional: `created_at` (string), `id` (uuid), `network_id` (uuid), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n```ruby\ndefault_gateway = client.networks.default_gateway.create(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(default_gateway)\n```\n\nReturns: `created_at` (string), `id` (uuid), `network_id` (uuid), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Delete Default Gateway.\n\n`DELETE /networks/{id}/default_gateway`\n\n```ruby\ndefault_gateway = client.networks.default_gateway.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(default_gateway)\n```\n\nReturns: `created_at` (string), `id` (uuid), `network_id` (uuid), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## List all Interfaces for a Network.\n\n`GET /networks/{id}/network_interfaces`\n\n```ruby\npage = client.networks.list_interfaces(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(page)\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `record_type` (string), `region` (object), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `type` (string), `updated_at` (string)\n\n## Get all Private Wireless Gateways\n\nGet all Private Wireless Gateways belonging to the user.\n\n`GET /private_wireless_gateways`\n\n```ruby\npage = client.private_wireless_gateways.list\n\nputs(page)\n```\n\nReturns: `assigned_resources` (array[object]), `created_at` (string), `id` (uuid), `ip_range` (string), `name` (string), `network_id` (uuid), `record_type` (string), `region_code` (string), `status` (object), `updated_at` (string)\n\n## Create a Private Wireless Gateway\n\nAsynchronously create a Private Wireless Gateway for SIM cards for a previously created network. This operation may take several minutes so you can check the Private Wireless Gateway status at the section Get a Private Wireless Gateway.\n\n`POST /private_wireless_gateways` — Required: `network_id`, `name`\n\nOptional: `region_code` (string)\n\n```ruby\nprivate_wireless_gateway = client.private_wireless_gateways.create(\n  name: \"My private wireless gateway\",\n  network_id: \"6a09cdc3-8948-47f0-aa62-74ac943d6c58\"\n)\n\nputs(private_wireless_gateway)\n```\n\nReturns: `assigned_resources` (array[object]), `created_at` (string), `id` (uuid), `ip_range` (string), `name` (string), `network_id` (uuid), `record_type` (string), `region_code` (string), `status` (object), `updated_at` (string)\n\n## Get a Private Wireless Gateway\n\nRetrieve information about a Private Wireless Gateway.\n\n`GET /private_wireless_gateways/{id}`\n\n```ruby\nprivate_wireless_gateway = client.private_wireless_gateways.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(private_wireless_gateway)\n```\n\nReturns: `assigned_resources` (array[object]), `created_at` (string), `id` (uuid), `ip_range` (string), `name` (string), `network_id` (uuid), `record_type` (string), `region_code` (string), `status` (object), `updated_at` (string)\n\n## Delete a Private Wireless Gateway\n\nDeletes the Private Wireless Gateway.\n\n`DELETE /private_wireless_gateways/{id}`\n\n```ruby\nprivate_wireless_gateway = client.private_wireless_gateways.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(private_wireless_gateway)\n```\n\nReturns: `assigned_resources` (array[object]), `created_at` (string), `id` (uuid), `ip_range` (string), `name` (string), `network_id` (uuid), `record_type` (string), `region_code` (string), `status` (object), `updated_at` (string)\n\n## List all Public Internet Gateways\n\nList all Public Internet Gateways.\n\n`GET /public_internet_gateways`\n\n```ruby\npage = client.public_internet_gateways.list\n\nputs(page)\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_ip` (string), `record_type` (string), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Create a Public Internet Gateway\n\nCreate a new Public Internet Gateway.\n\n`POST /public_internet_gateways`\n\nOptional: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_ip` (string), `record_type` (string), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n```ruby\npublic_internet_gateway = client.public_internet_gateways.create\n\nputs(public_internet_gateway)\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_ip` (string), `record_type` (string), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Retrieve a Public Internet Gateway\n\nRetrieve a Public Internet Gateway.\n\n`GET /public_internet_gateways/{id}`\n\n```ruby\npublic_internet_gateway = client.public_internet_gateways.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(public_internet_gateway)\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_ip` (string), `record_type` (string), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Delete a Public Internet Gateway\n\nDelete a Public Internet Gateway.\n\n`DELETE /public_internet_gateways/{id}`\n\n```ruby\npublic_internet_gateway = client.public_internet_gateways.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(public_internet_gateway)\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_ip` (string), `record_type` (string), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## List all Regions\n\nList all regions and the interfaces that region supports\n\n`GET /regions`\n\n```ruby\nregions = client.regions.list\n\nputs(regions)\n```\n\nReturns: `code` (string), `created_at` (string), `name` (string), `record_type` (string), `supported_interfaces` (array[string]), `updated_at` (string)\n\n## List all Virtual Cross Connects\n\nList all Virtual Cross Connects.\n\n`GET /virtual_cross_connects`\n\n```ruby\npage = client.virtual_cross_connects.list\n\nputs(page)\n```\n\nReturns: `bandwidth_mbps` (number), `bgp_asn` (number), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `primary_bgp_key` (string), `primary_cloud_account_id` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `region` (object), `region_code` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Create a Virtual Cross Connect\n\nCreate a new Virtual Cross Connect.  For AWS and GCE, you have the option of creating the primary connection first and the secondary connection later. You also have the option of disabling the primary and/or secondary connections at any time and later re-enabling them. With Azure, you do not have this option.\n\n`POST /virtual_cross_connects` — Required: `network_id`, `region_code`, `cloud_provider`, `cloud_provider_region`, `bgp_asn`, `primary_cloud_account_id`\n\nOptional: `bandwidth_mbps` (number), `created_at` (string), `id` (uuid), `name` (string), `primary_bgp_key` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n```ruby\nvirtual_cross_connect = client.virtual_cross_connects.create(region_code: \"ashburn-va\")\n\nputs(virtual_cross_connect)\n```\n\nReturns: `bandwidth_mbps` (number), `bgp_asn` (number), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `primary_bgp_key` (string), `primary_cloud_account_id` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `region` (object), `region_code` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Retrieve a Virtual Cross Connect\n\nRetrieve a Virtual Cross Connect.\n\n`GET /virtual_cross_connects/{id}`\n\n```ruby\nvirtual_cross_connect = client.virtual_cross_connects.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(virtual_cross_connect)\n```\n\nReturns: `bandwidth_mbps` (number), `bgp_asn` (number), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `primary_bgp_key` (string), `primary_cloud_account_id` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `region` (object), `region_code` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Update the Virtual Cross Connect\n\nUpdate the Virtual Cross Connect.  Cloud IPs can only be patched during the `created` state, as GCE will only inform you of your generated IP once the pending connection requested has been accepted.\n\n`PATCH /virtual_cross_connects/{id}`\n\nOptional: `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean)\n\n```ruby\nvirtual_cross_connect = client.virtual_cross_connects.update(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(virtual_cross_connect)\n```\n\nReturns: `bandwidth_mbps` (number), `bgp_asn` (number), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `primary_bgp_key` (string), `primary_cloud_account_id` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `region` (object), `region_code` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Delete a Virtual Cross Connect\n\nDelete a Virtual Cross Connect.\n\n`DELETE /virtual_cross_connects/{id}`\n\n```ruby\nvirtual_cross_connect = client.virtual_cross_connects.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(virtual_cross_connect)\n```\n\nReturns: `bandwidth_mbps` (number), `bgp_asn` (number), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `primary_bgp_key` (string), `primary_cloud_account_id` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `region` (object), `region_code` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## List Virtual Cross Connect Cloud Coverage\n\nList Virtual Cross Connects Cloud Coverage.  This endpoint shows which cloud regions are available for the `location_code` your Virtual Cross Connect will be provisioned in.\n\n`GET /virtual_cross_connects_coverage`\n\n```ruby\npage = client.virtual_cross_connects_coverage.list\n\nputs(page)\n```\n\nReturns: `available_bandwidth` (array[number]), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `location` (object), `record_type` (string)\n\n## List all WireGuard Interfaces\n\nList all WireGuard Interfaces.\n\n`GET /wireguard_interfaces`\n\n```ruby\npage = client.wireguard_interfaces.list\n\nputs(page)\n```\n\nReturns: `created_at` (string), `enable_sip_trunking` (boolean), `endpoint` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_key` (string), `record_type` (string), `region` (object), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Create a WireGuard Interface\n\nCreate a new WireGuard Interface. Current limitation of 10 interfaces per user can be created.\n\n`POST /wireguard_interfaces` — Required: `network_id`, `region_code`\n\nOptional: `created_at` (string), `enable_sip_trunking` (boolean), `endpoint` (string), `id` (uuid), `name` (string), `public_key` (string), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n```ruby\nwireguard_interface = client.wireguard_interfaces.create(region_code: \"ashburn-va\")\n\nputs(wireguard_interface)\n```\n\nReturns: `created_at` (string), `enable_sip_trunking` (boolean), `endpoint` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_key` (string), `record_type` (string), `region` (object), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Retrieve a WireGuard Interfaces\n\nRetrieve a WireGuard Interfaces.\n\n`GET /wireguard_interfaces/{id}`\n\n```ruby\nwireguard_interface = client.wireguard_interfaces.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(wireguard_interface)\n```\n\nReturns: `created_at` (string), `enable_sip_trunking` (boolean), `endpoint` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_key` (string), `record_type` (string), `region` (object), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Delete a WireGuard Interface\n\nDelete a WireGuard Interface.\n\n`DELETE /wireguard_interfaces/{id}`\n\n```ruby\nwireguard_interface = client.wireguard_interfaces.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(wireguard_interface)\n```\n\nReturns: `created_at` (string), `enable_sip_trunking` (boolean), `endpoint` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_key` (string), `record_type` (string), `region` (object), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## List all WireGuard Peers\n\nList all WireGuard peers.\n\n`GET /wireguard_peers`\n\n```ruby\npage = client.wireguard_peers.list\n\nputs(page)\n```\n\nReturns: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string), `wireguard_interface_id` (uuid)\n\n## Create a WireGuard Peer\n\nCreate a new WireGuard Peer. Current limitation of 5 peers per interface can be created.\n\n`POST /wireguard_peers` — Required: `wireguard_interface_id`\n\nOptional: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string)\n\n```ruby\nwireguard_peer = client.wireguard_peers.create(wireguard_interface_id: \"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(wireguard_peer)\n```\n\nReturns: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string), `wireguard_interface_id` (uuid)\n\n## Retrieve the WireGuard Peer\n\nRetrieve the WireGuard peer.\n\n`GET /wireguard_peers/{id}`\n\n```ruby\nwireguard_peer = client.wireguard_peers.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(wireguard_peer)\n```\n\nReturns: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string), `wireguard_interface_id` (uuid)\n\n## Update the WireGuard Peer\n\nUpdate the WireGuard peer.\n\n`PATCH /wireguard_peers/{id}`\n\nOptional: `public_key` (string)\n\n```ruby\nwireguard_peer = client.wireguard_peers.update(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(wireguard_peer)\n```\n\nReturns: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string), `wireguard_interface_id` (uuid)\n\n## Delete the WireGuard Peer\n\nDelete the WireGuard peer.\n\n`DELETE /wireguard_peers/{id}`\n\n```ruby\nwireguard_peer = client.wireguard_peers.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(wireguard_peer)\n```\n\nReturns: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string), `wireguard_interface_id` (uuid)\n\n## Retrieve Wireguard config template for Peer\n\n`GET /wireguard_peers/{id}/config`\n\n```ruby\nresponse = client.wireguard_peers.retrieve_config(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(response)\n```","tags":["telnyx","networking","ruby","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk"],"capabilities":["skill","source-team-telnyx","skill-telnyx-networking-ruby","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-networking-ruby","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (32,581 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:54:41.250Z","embedding":null,"createdAt":"2026-04-18T22:07:01.690Z","updatedAt":"2026-04-22T06:54:41.250Z","lastSeenAt":"2026-04-22T06:54:41.250Z","tsv":"'+13125550001':76 '+13125550002':78 '-47':728,829,899,1158,1215,1444,1490,1605,1654,1692,1727,1798,1844,1893,2046,2106,2164,2348,2406,2851,3023,3144,3477,3539,3679,3729,3783,3833,3882 '-8948':727,828,898,1157,1214,1443,1489,1604,1653,1691,1726,1797,1843,1892,2045,2105,2163,2347,2405,2850,3022,3143,3476,3538,3678,3728,3782,3832,3881 '/ai/clusters':185,255,289,316,331 '/ai/integrations':350,463 '/ai/integrations/connections':385,412,443 '/api-reference/embeddings/embed-documents)':241 '/config':3875 '/default_gateway':1720,1766,1837 '/global_ip_allowed_ports':501 '/global_ip_assignment_health':537 '/global_ip_assignments':574,627,719,784,890 '/global_ip_assignments_usage':950 '/global_ip_health_check_types':993 '/global_ip_health_checks':1032,1075,1148,1205 '/global_ip_latency':1254 '/global_ip_protocols':1287 '/global_ip_usage':1310 '/global_ips':1341,1377,1436,1482 '/graph':334 '/network_interfaces':1886 '/networks':1526,1554,1598,1633,1685,1718,1764,1835,1884 '/private_wireless_gateways':1945,2023,2097,2155 '/public_internet_gateways':2213,2260,2339,2397 '/regions':2457 '/virtual_cross_connects':2492,2650,2842,2991,3135 '/virtual_cross_connects_coverage':3278 '/wireguard_interfaces':3313,3376,3469,3531 '/wireguard_peers':3593,3644,3721,3771,3825,3873 '1':106 '10':3368 '401':64,141 '403':145 '404':148 '422':60,127,152 '429':57,96,158 '5':3636 '6a09cdc3':726,827,897,1156,1213,1442,1488,1603,1652,1690,1725,1796,1842,1891,2044,2104,2162,2346,2404,2849,3021,3142,3475,3537,3677,3727,3781,3831,3880 '74ac943d6c58':732,833,903,1162,1219,1448,1494,1609,1658,1696,1731,1802,1848,1897,2050,2110,2168,2352,2410,2855,3027,3148,3481,3543,3683,3733,3787,3837,3886 'aa62':731,832,902,1161,1218,1447,1493,1608,1657,1695,1730,1801,1847,1896,2049,2109,2167,2351,2409,2854,3026,3147,3480,3542,3682,3732,3786,3836,3885 'accept':2989 'account':2531,2563,2665,2702,2772,2804,2893,2925,3065,3097,3186,3218 'actual':113 'address':1356,1387,1415,1461,1507 'allow':392,425,498,505,511 'alreadi':40 'also':2621 'alway':65 'and/or':2629 'announc':591,639,684,748,797,854,919,2543,2575,2784,2816,2905,2937,3003,3014,3077,3109,3198,3230 'api':20,24,48,121,143 'apiconnectionerror':84 'apistatuserror':118 'array':260,303,359,394,427,476,1954,2058,2118,2176,2476,3287 'ashburn':2733,3418 'ashburn-va':2732,3417 'asn':2503,2662,2744,2865,3037,3158 'assign':532,541,547,555,567,572,620,625,667,672,717,724,736,777,782,825,836,842,883,888,895,907,946,954,960,968,1952,2056,2116,2174 'assum':37 'asynchron':1985 'authent':62 'auto':169 'automat':173 'avail':347,357,474,3264,3285 'aw':2508,2602,2749,2870,3042,3163,3292 'azur':2509,2642,2750,2871,3043,3164,3293 'background':227 'backoff':104,164 'bandwidth':2499,2668,2740,2861,3033,3154,3286 'bash':9 'begin':72 'belong':1940 'bgp':2502,2526,2558,2661,2679,2697,2743,2767,2799,2864,2888,2920,3036,3060,3092,3157,3181,3213 'boolean':592,595,599,640,643,647,685,688,692,749,752,756,798,801,805,855,858,862,920,923,927,2540,2544,2572,2576,2688,2711,2781,2785,2813,2817,2902,2906,2934,2938,3000,3004,3011,3015,3074,3078,3106,3110,3195,3199,3227,3231,3326,3389,3430,3492,3554 'bucket':192,238,257,275,278,300 'call':49 'card':1993 'check':88,107,131,155,534,983,990,998,1005,1009,1013,1024,1030,1047,1051,1067,1073,1085,1089,1104,1110,1120,1124,1140,1146,1154,1167,1177,1181,1197,1203,1211,1224,1234,1238,2008 'client':17,38 'client.ai.clusters.compute':274 'client.ai.clusters.delete':321 'client.ai.clusters.fetch':337 'client.ai.clusters.list':188 'client.ai.clusters.retrieve':294 'client.ai.integrations.connections.delete':449 'client.ai.integrations.connections.list':388 'client.ai.integrations.connections.retrieve':418 'client.ai.integrations.list':353 'client.ai.integrations.retrieve':468 'client.global_ip_allowed_ports.list':507 'client.global_ip_assignment_health.retrieve':543 'client.global_ip_assignments.create':668 'client.global_ip_assignments.delete':896 'client.global_ip_assignments.list':577 'client.global_ip_assignments.retrieve':725 'client.global_ip_assignments.update':826 'client.global_ip_assignments_usage.retrieve':956 'client.global_ip_health_check_types.list':1000 'client.global_ip_health_checks.create':1105 'client.global_ip_health_checks.delete':1212 'client.global_ip_health_checks.list':1035 'client.global_ip_health_checks.retrieve':1155 'client.global_ip_latency.retrieve':1259 'client.global_ip_protocols.list':1292 'client.global_ip_usage.retrieve':1315 'client.global_ips.create':1402 'client.global_ips.delete':1487 'client.global_ips.list':1344 'client.global_ips.retrieve':1441 'client.messages.send':74 'client.networks.create':1571 'client.networks.default_gateway.create':1795 'client.networks.default_gateway.delete':1841 'client.networks.default_gateway.retrieve':1724 'client.networks.delete':1689 'client.networks.list':1529,1889 'client.networks.retrieve':1602 'client.networks.update':1651 'client.new':19 'client.private_wireless_gateways.create':2036 'client.private_wireless_gateways.delete':2161 'client.private_wireless_gateways.list':1948 'client.private_wireless_gateways.retrieve':2103 'client.public_internet_gateways.create':2294 'client.public_internet_gateways.delete':2403 'client.public_internet_gateways.list':2216 'client.public_internet_gateways.retrieve':2345 'client.regions.list':2460 'client.virtual_cross_connects.create':2729 'client.virtual_cross_connects.delete':3141 'client.virtual_cross_connects.list':2495 'client.virtual_cross_connects.retrieve':2848 'client.virtual_cross_connects.update':3020 'client.virtual_cross_connects_coverage.list':3281 'client.wireguard_interfaces.create':3414 'client.wireguard_interfaces.delete':3536 'client.wireguard_interfaces.list':3316 'client.wireguard_interfaces.retrieve':3474 'client.wireguard_peers.create':3673 'client.wireguard_peers.delete':3830 'client.wireguard_peers.list':3596 'client.wireguard_peers.retrieve':3726,3878 'client.wireguard_peers.update':3780 'cloud':2505,2511,2530,2535,2562,2567,2656,2658,2664,2683,2701,2706,2746,2752,2771,2776,2803,2808,2867,2873,2892,2897,2924,2929,2962,2995,3006,3039,3045,3064,3069,3096,3101,3160,3166,3185,3190,3217,3222,3249,3255,3261,3289,3295 'cluster':183,205,224,243,263,287,293,298,302,314,328 'code':70,140,525,1298,1917,1973,2030,2077,2137,2195,2237,2279,2317,2375,2433,2464,2555,2655,2731,2796,2917,3089,3210,3268,3345,3381,3416,3449,3511,3573 'common':138,247 'complet':217,310 'comput':222,230 'config':3868,3879 'connect':89,376,387,390,404,414,417,420,423,436,441,445,451,493,594,642,687,751,800,857,922,2485,2490,2594,2600,2613,2618,2631,2728,2738,2835,2840,2847,2859,2956,2961,2985,3019,3031,3128,3133,3140,3152,3248,3254,3272 'coverag':3250,3256 'creat':194,581,605,616,621,629,653,674,698,738,762,787,811,844,868,909,933,1039,1062,1068,1077,1112,1169,1226,1348,1368,1372,1379,1407,1453,1499,1533,1546,1549,1558,1578,1613,1638,1665,1700,1736,1749,1760,1768,1781,1807,1820,1853,1866,1901,1921,1956,1980,1986,1997,2060,2120,2178,2220,2241,2248,2253,2262,2283,2300,2321,2358,2379,2416,2437,2466,2515,2583,2590,2595,2610,2671,2718,2756,2824,2877,2945,2970,3049,3117,3170,3238,3320,3349,3356,3360,3374,3383,3404,3424,3453,3486,3515,3548,3577,3600,3624,3628,3642,3650,3688,3738,3792,3842 'cross':2484,2489,2593,2599,2727,2737,2834,2839,2846,2858,2955,2960,3018,3030,3127,3132,3139,3151,3247,3253,3271 'current':3365,3633 'data':233,253 'date':197,202,561,974,1279,1328 'date-tim':196,201,560,973,1278,1327 'default':29,1714,1722,1733,1761,1793,1804,1832,1839,1850 'delay':114 'delet':312,315,434,437,442,608,656,701,765,814,871,879,884,889,936,1192,1198,1204,1473,1477,1481,1678,1681,1684,1752,1784,1823,1831,1834,1869,1924,2144,2149,2154,2244,2286,2324,2382,2386,2391,2396,2440,2586,2721,2827,2948,3120,3124,3129,3134,3241,3352,3407,3456,3518,3522,3526,3530,3580,3816,3820,3824 'descript':361,478,1351,1382,1410,1456,1502 'detail':461 'developers.telnyx.com':240 'developers.telnyx.com/api-reference/embeddings/embed-documents)':239 'disabl':2626 'disconnect':375,492 'display':363,480 'e':119 'e.message':124 'e.status':123,126 'embed':236 'enabl':2539,2571,2639,2687,2710,2780,2812,2901,2933,2999,3010,3073,3105,3194,3226,3323,3386,3427,3489,3551 'end':136,137 'endpoint':3258,3327,3390,3431,3493,3555 'enum':213,306,374,491,604,652,697,761,810,867,932,1748,1780,1819,1865,1920,2240,2282,2320,2378,2436,2507,2582,2717,2748,2823,2869,2944,3041,3116,3162,3237,3291,3348,3403,3452,3514,3576 'env':22 'error':45,54,59,63,67,83,87,94,117,122,130,139,154 'exampl':35 'exponenti':103,163 'f0':730,831,901,1160,1217,1446,1492,1607,1656,1694,1729,1800,1846,1895,2048,2108,2166,2350,2408,2853,3025,3146,3479,3541,3681,3731,3785,3835,3884 'f0-aa62-74ac943d6c58':729,830,900,1159,1216,1445,1491,1606,1655,1693,1728,1799,1845,1894,2047,2107,2165,2349,2407,2852,3024,3145,3478,3540,3680,3730,3784,3834,3883 'fail':51,218,311 'fetch':285,326 'field':133,156 'file':259 'finish':199 'first':514,2614 'format':135,157 'found':151 'gateway':1715,1723,1734,1762,1794,1805,1833,1840,1851,1934,1939,1984,1990,2012,2021,2035,2041,2054,2088,2095,2102,2114,2148,2153,2160,2172,2206,2211,2252,2258,2293,2298,2332,2337,2344,2356,2390,2395,2402,2414 'gce':2510,2604,2751,2872,2973,3044,3165,3294 'gem':10 'generat':2980 'get':184,288,330,349,384,401,407,411,462,500,536,573,718,949,992,1031,1147,1253,1286,1309,1340,1435,1525,1597,1713,1717,1883,1930,1935,1944,2017,2084,2096,2212,2338,2456,2491,2841,3277,3312,3468,3592,3720,3872 'global':496,503,509,530,539,545,550,553,565,570,584,618,623,632,665,670,677,711,715,722,734,741,775,780,790,823,834,840,847,881,886,893,905,912,944,952,958,963,966,980,987,995,1002,1021,1027,1042,1064,1070,1080,1101,1107,1115,1137,1143,1151,1164,1172,1194,1200,1208,1221,1229,1249,1256,1261,1265,1283,1289,1294,1305,1312,1317,1321,1334,1338,1370,1374,1400,1404,1429,1433,1439,1450,1475,1479,1485,1496 'graph':338 'handl':46,66 'header':111 'health':533,542,548,557,982,989,997,1004,1008,1012,1023,1029,1046,1050,1066,1072,1084,1088,1103,1109,1119,1123,1139,1145,1153,1166,1176,1180,1196,1202,1210,1223,1233,1237 'hello':80 'help':245 'id':220,283,291,296,318,323,333,340,366,396,399,406,415,421,429,432,446,452,458,465,470,483,517,586,588,614,634,636,662,679,681,707,720,743,745,771,785,792,794,820,849,851,877,891,914,916,942,1044,1054,1082,1092,1117,1127,1149,1174,1184,1206,1231,1241,1353,1384,1412,1437,1458,1483,1504,1536,1561,1581,1599,1616,1634,1641,1668,1686,1703,1719,1739,1742,1758,1765,1771,1774,1790,1810,1813,1829,1836,1856,1859,1875,1885,1904,1909,1959,1967,2026,2043,2063,2071,2098,2123,2131,2156,2181,2189,2223,2228,2265,2270,2303,2308,2340,2361,2366,2398,2419,2424,2518,2523,2532,2564,2653,2666,2674,2703,2759,2764,2773,2805,2843,2880,2885,2894,2926,2992,3052,3057,3066,3098,3136,3173,3178,3187,3219,3329,3334,3379,3392,3433,3438,3470,3495,3500,3532,3557,3562,3603,3622,3648,3653,3676,3691,3710,3722,3741,3760,3772,3795,3814,3826,3845,3864,3874 'identifi':246 'import':165 'inform':2090,2976 'initi':41 'instal':8,11 'insuffici':146 'integ':207,211,265,269,516,521 'integr':344,348,352,355,379,383,398,403,410,431,435,440,456,460,464,467,469,472 'interfac':1879,1890,2452,2475,3307,3311,3359,3364,3369,3413,3422,3463,3467,3473,3484,3525,3529,3535,3546,3621,3639,3647,3675,3709,3759,3813,3863 'internet':2205,2210,2251,2257,2292,2297,2331,2336,2343,2355,2389,2394,2401,2413 'invalid':142 'ip':497,504,510,531,540,546,551,554,566,571,585,619,624,633,666,671,678,712,716,723,735,742,776,781,791,824,835,841,848,882,887,894,906,913,945,953,959,964,967,981,988,996,1003,1022,1028,1043,1065,1071,1081,1102,1108,1116,1138,1144,1152,1165,1173,1195,1201,1209,1222,1230,1250,1257,1262,1266,1284,1290,1295,1306,1313,1318,1322,1335,1339,1355,1371,1375,1386,1401,1405,1414,1430,1434,1440,1451,1460,1476,1480,1486,1497,1506,1961,2065,2125,2183,2231,2273,2311,2369,2427,2536,2547,2568,2579,2684,2691,2707,2714,2777,2788,2809,2820,2898,2909,2930,2941,2963,2981,2996,3007,3070,3081,3102,3113,3191,3202,3223,3234 'item':178 'item.id':180 'iter':174 'key':21,25,144,2527,2559,2680,2698,2768,2800,2889,2921,3061,3093,3182,3214,3337,3397,3441,3503,3565,3609,3612,3659,3662,3697,3700,3747,3750,3775,3801,3804,3851,3854 'last':519,3605,3655,3693,3743,3797,3847 'latenc':1251,1258,1263,1269,1272 'later':2619,2636 'limit':56,98,160,3366,3634 'list':181,343,345,377,380,455,494,563,568,978,985,1019,1025,1281,1332,1336,1519,1522,1877,2202,2207,2444,2447,2481,2486,3245,3251,3304,3308,3584,3588 'locat':1275,3267,3299 'logo':368,485 'mainten':598,646,691,755,804,861,926 'may':2001 'mbps':2500,2669,2741,2862,3034,3155 'mean':1268 'metric':535,948,1252,1308 'min':204,208,262,266 'minut':2004 'my-bucket':276 'name':364,371,481,488,522,1300,1358,1389,1417,1463,1509,1538,1556,1572,1583,1618,1636,1659,1670,1705,1906,1964,2027,2037,2068,2128,2186,2225,2267,2305,2363,2421,2469,2520,2676,2761,2882,3054,3175,3331,3394,3435,3497,3559 'network':3,6,53,86,1521,1524,1548,1552,1570,1574,1576,1593,1596,1601,1611,1628,1631,1650,1661,1663,1680,1683,1688,1698,1741,1773,1812,1858,1882,1908,1966,1998,2025,2042,2070,2130,2188,2227,2269,2307,2365,2423,2522,2652,2763,2884,3056,3177,3333,3378,3437,3499,3561 'new':223,1551,2255,2597,3362,3630 'note':166 'number':2501,2504,2670,2742,2745,2863,2866,3035,3038,3156,3159,3288 'object':304,552,556,558,965,969,971,977,1011,1049,1087,1122,1179,1236,1267,1270,1273,1276,1323,1325,1331,1361,1392,1420,1466,1512,1915,1955,1976,2059,2080,2119,2140,2177,2198,2553,2794,2915,3087,3208,3300,3343,3447,3509,3571 'omit':33 'oper':2000 'option':258,628,786,1076,1378,1557,1637,1767,2028,2261,2608,2624,2648,2667,2993,3382,3649,3773 'page':170,176,187,190,576,579,1034,1037,1343,1346,1528,1531,1888,1899,1947,1950,2215,2218,2494,2497,3280,3283,3315,3318,3595,3598 'page.auto':175 'pagin':167 'param':1010,1048,1086,1121,1178,1235 'patch':783,1632,2967,2990,3770 'pattern':250 'peer':613,661,706,770,819,876,941,1757,1789,1828,1874,3587,3591,3627,3632,3637,3672,3686,3715,3719,3725,3736,3765,3769,3779,3790,3819,3823,3829,3840,3871 'pend':214,307,2984 'per':3370,3638 'percentil':1271 'permiss':147 'port':499,506,512,515,520,1360,1391,1419,1465,1511 'post':254,626,1074,1376,1553,1763,2022,2259,2649,3375,3643 'prefix':270 'previous':1996 'primari':2525,2529,2534,2538,2541,2545,2612,2628,2663,2678,2682,2686,2689,2766,2770,2775,2779,2782,2786,2887,2891,2896,2900,2903,2907,2994,2998,3001,3059,3063,3068,3072,3075,3079,3180,3184,3189,3193,3196,3200 'privat':1932,1937,1982,1988,2010,2019,2033,2039,2052,2086,2093,2100,2112,2146,2151,2158,2170,3608,3658,3696,3746,3800,3850 'prober':1274 'product':69 'protocol':524,1285,1291,1296 'provid':2506,2512,2657,2659,2747,2753,2868,2874,3040,3046,3161,3167,3290,3296 'provis':606,607,654,655,699,700,763,764,812,813,869,870,934,935,1750,1751,1782,1783,1821,1822,1867,1868,1922,1923,2242,2243,2284,2285,2322,2323,2380,2381,2438,2439,2584,2585,2719,2720,2825,2826,2946,2947,3118,3119,3239,3240,3275,3350,3351,3405,3406,3454,3455,3516,3517,3578,3579 'public':2204,2209,2230,2250,2256,2272,2291,2296,2310,2330,2335,2342,2354,2368,2388,2393,2400,2412,2426,3336,3396,3440,3502,3564,3611,3661,3699,3749,3774,3803,3853 'put':85,120,128,179,189,279,297,324,341,354,389,422,453,471,508,544,578,669,733,839,904,957,1001,1036,1106,1163,1220,1260,1293,1316,1345,1403,1449,1495,1530,1575,1610,1662,1697,1732,1803,1849,1898,1949,2051,2111,2169,2217,2295,2353,2411,2461,2496,2735,2856,3028,3149,3282,3317,3420,3482,3544,3597,3684,3734,3788,3838,3887 'rang':1962,2066,2126,2184 'rate':55,97,159 'ratelimiterror':95 're':2638 're-en':2637 'receiv':970,1324 'record':527,600,648,693,757,806,863,928,1016,1056,1094,1129,1186,1243,1302,1362,1393,1421,1467,1513,1540,1563,1585,1620,1643,1672,1707,1744,1776,1815,1861,1911,1969,2073,2133,2191,2233,2275,2313,2371,2429,2471,2549,2693,2790,2911,3083,3204,3301,3339,3399,3443,3505,3567,3614,3664,3702,3752,3806,3856 'region':1914,1916,1972,2029,2076,2136,2194,2236,2278,2316,2374,2432,2446,2449,2454,2459,2462,2513,2552,2554,2654,2660,2730,2754,2793,2795,2875,2914,2916,3047,3086,3088,3168,3207,3209,3262,3297,3342,3344,3380,3415,3446,3448,3508,3510,3570,3572 'request':838,2986 'requir':15,132,256,1555,1635,2024,2651,3377,3645 'rescu':81,92,115 'resourc':149,1953,2057,2117,2175 'respons':273,280,336,342,3877,3888 'result':73,320,325,448,454 'retri':91,101,109,161 'retriev':459,709,713,1135,1141,1427,1431,1591,1594,2089,2328,2333,2831,2836,3460,3464,3712,3716,3866 'retry-aft':108 'return':191,281,299,356,391,424,473,513,549,580,673,737,843,908,962,1007,1038,1111,1168,1225,1264,1297,1320,1347,1406,1452,1498,1532,1577,1612,1664,1699,1735,1806,1852,1900,1951,2055,2115,2173,2219,2299,2357,2415,2463,2498,2739,2860,3032,3153,3284,3319,3423,3485,3547,3599,3687,3737,3791,3841 'rout':2542,2574,2783,2815,2904,2936,3002,3013,3076,3108,3197,3229 'rubi':4,7,14,71,186,272,292,319,335,351,386,416,447,466,502,538,575,664,721,822,892,951,994,1033,1100,1150,1207,1255,1288,1311,1342,1399,1438,1484,1527,1569,1600,1649,1687,1721,1792,1838,1887,1946,2032,2099,2157,2214,2290,2341,2399,2458,2493,2725,2844,3016,3137,3279,3314,3411,3471,3533,3594,3670,3723,3777,3827,3876 'run':216,309 'secondari':2557,2561,2566,2570,2573,2577,2617,2630,2696,2700,2705,2709,2712,2798,2802,2807,2811,2814,2818,2919,2923,2928,2932,2935,2939,3005,3009,3012,3091,3095,3100,3104,3107,3111,3212,3216,3221,3225,3228,3232 'section':2016 'seen':3606,3656,3694,3744,3798,3848 'setup':13,382,409 'sever':2003 'show':3259 'shown':43 'sim':1992 'sip':3324,3387,3428,3490,3552 'size':206,210,264,268 'skill' 'skill-telnyx-networking-ruby' 'sleep':105 'source-team-telnyx' 'specif':439 'start':215,225,308 'state':2971 'status':212,305,373,490,603,651,696,760,809,866,931,1716,1747,1779,1818,1864,1919,1975,2013,2079,2139,2197,2239,2281,2319,2377,2435,2581,2716,2822,2943,3115,3236,3347,3402,3451,3513,3575 'storag':237 'string':193,221,261,271,284,301,360,362,365,367,370,372,395,397,400,428,430,433,477,479,482,484,487,489,523,526,529,583,602,611,631,650,659,676,695,704,740,759,768,789,793,808,817,821,846,865,874,911,930,939,1015,1018,1041,1053,1058,1061,1079,1091,1096,1099,1114,1126,1131,1134,1171,1183,1188,1191,1228,1240,1245,1248,1299,1301,1304,1350,1352,1357,1359,1364,1367,1381,1383,1388,1390,1395,1398,1409,1411,1416,1418,1423,1426,1455,1457,1462,1464,1469,1472,1501,1503,1508,1510,1515,1518,1535,1539,1542,1545,1560,1565,1568,1580,1584,1587,1590,1615,1619,1622,1625,1640,1645,1648,1667,1671,1674,1677,1702,1706,1709,1712,1738,1746,1755,1770,1778,1787,1809,1817,1826,1855,1863,1872,1903,1907,1913,1918,1926,1929,1958,1963,1965,1971,1974,1979,2031,2062,2067,2069,2075,2078,2083,2122,2127,2129,2135,2138,2143,2180,2185,2187,2193,2196,2201,2222,2226,2232,2235,2238,2247,2264,2268,2274,2277,2280,2289,2302,2306,2312,2315,2318,2327,2360,2364,2370,2373,2376,2385,2418,2422,2428,2431,2434,2443,2465,2468,2470,2473,2477,2480,2514,2517,2521,2528,2533,2537,2548,2551,2556,2560,2565,2569,2580,2589,2673,2677,2681,2685,2692,2695,2699,2704,2708,2715,2724,2755,2758,2762,2769,2774,2778,2789,2792,2797,2801,2806,2810,2821,2830,2876,2879,2883,2890,2895,2899 'subclust':209,267 'support':2455,2474 'take':2002 'task':219,228,282,290,295,317,322,332,339 'telnyx':2,5,12,16,18,23,82,93,116,2546,2578,2690,2713,2787,2819,2908,2940,3080,3112,3201,3233 'telnyx-networking-rubi':1 'templat':3869 'test':1573,1660 'text':79 'theme':248 'time':198,203,562,975,1280,1329,2634 'timestamp':559,972,1277,1326 'tool':358,393,426,475 'topic-agent-skills' 'topic-ai-coding-agent' 'topic-claude-code' 'topic-cpaas' 'topic-cursor' 'topic-iot' 'topic-llm' 'topic-sdk' 'topic-sip' 'topic-sms' 'topic-speech-to-text' 'topic-telephony' 'transmit':976,1330 'trunk':3325,3388,3429,3491,3553 'type':528,601,649,694,758,807,864,929,984,991,999,1006,1014,1017,1052,1057,1090,1095,1125,1130,1182,1187,1239,1244,1303,1363,1394,1422,1468,1514,1541,1564,1586,1621,1644,1673,1708,1745,1777,1816,1862,1912,1925,1970,2074,2134,2192,2234,2276,2314,2372,2430,2472,2550,2694,2791,2912,3084,3205,3302,3340,3400,3444,3506,3568,3615,3665,3703,3753,3807,3857 'updat':609,657,702,766,773,778,815,837,872,937,1059,1097,1132,1189,1246,1365,1396,1424,1470,1516,1543,1566,1588,1623,1626,1629,1646,1675,1710,1753,1785,1824,1870,1927,1977,2081,2141,2199,2245,2287,2325,2383,2441,2478,2587,2722,2828,2949,2952,2957,3121,3242,3353,3408,3457,3519,3581,3617,3667,3705,3755,3762,3766,3809,3859 'url':369,486 'usag':947,955,961,1307,1314,1319 'use':168 'user':378,381,402,408,413,419,444,450,1943,3371 'uuid':518,587,589,615,635,637,663,680,682,708,744,746,772,795,850,852,878,915,917,943,1045,1055,1083,1093,1118,1128,1175,1185,1232,1242,1354,1385,1413,1459,1505,1537,1562,1582,1617,1642,1669,1704,1740,1743,1759,1772,1775,1791,1811,1814,1830,1857,1860,1876,1905,1910,1960,1968,2064,2072,2124,2132,2182,2190,2224,2229,2266,2271,2304,2309,2362,2367,2420,2425,2519,2524,2675,2760,2765,2881,2886,3053,3058,3174,3179,3330,3335,3393,3434,3439,3496,3501,3558,3563,3604,3623,3654,3692,3711,3742,3761,3796,3815,3846,3865 'va':2734,3419 'valid':58,129,153 'virtual':2483,2488,2592,2598,2726,2736,2833,2838,2845,2857,2954,2959,3017,3029,3126,3131,3138,3150,3246,3252,3270 'visual':329 'wait':99 'wireguard':612,660,705,769,818,875,940,1756,1788,1827,1873,3306,3310,3358,3363,3412,3421,3462,3466,3472,3483,3524,3528,3534,3545,3586,3590,3620,3626,3631,3646,3671,3674,3685,3708,3714,3718,3724,3735,3758,3764,3768,3778,3789,3812,3818,3822,3828,3839,3862,3867 'wireless':1933,1938,1983,1989,2011,2020,2034,2040,2053,2087,2094,2101,2113,2147,2152,2159,2171","prices":[{"id":"3b472b5a-4767-472d-8e03-d5b0090f911c","listingId":"df135fb8-6fb4-4782-8d3e-a687cdde14f3","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"team-telnyx","category":"ai","install_from":"skills.sh"},"createdAt":"2026-04-18T22:07:01.690Z"}],"sources":[{"listingId":"df135fb8-6fb4-4782-8d3e-a687cdde14f3","source":"github","sourceId":"team-telnyx/ai/telnyx-networking-ruby","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-networking-ruby","isPrimary":false,"firstSeenAt":"2026-04-18T22:07:01.690Z","lastSeenAt":"2026-04-22T06:54:41.250Z"}],"details":{"listingId":"df135fb8-6fb4-4782-8d3e-a687cdde14f3","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-networking-ruby","github":{"repo":"team-telnyx/ai","stars":167,"topics":["agent-skills","ai","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip","sms","speech-to-text","telephony","telnyx","tts","twilio-migration","voice-agents","voice-ai","webrtc","windsurf"],"license":"mit","html_url":"https://github.com/team-telnyx/ai","pushed_at":"2026-04-21T22:09:49Z","description":"Official one-stop shop for AI Agents and developers building with Telnyx.","skill_md_sha":"95743e0b4b5e9ab6798ae44936b507417a901b39","skill_md_path":"skills/telnyx-networking-ruby/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-networking-ruby"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-networking-ruby","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-networking-ruby"},"updatedAt":"2026-04-22T06:54:41.250Z"}}