Create container
containers.create(**kwargs) -> ContainerCreateResponse
post /containers
Create container
Parameters
-
name: StringName of the container to create.
-
expires_after: ExpiresAfter{ anchor, minutes}Container expiration time in seconds relative to the 'anchor' time.
-
anchor: :last_active_atTime anchor for the expiration time. Currently only 'last_active_at' is supported.
:last_active_at
-
minutes: Integer
-
-
file_ids: Array[String]IDs of files to copy to the container.
-
memory_limit: :"1g" | :"4g" | :"16g" | :"64g"Optional memory limit for the container. Defaults to "1g".
-
:"1g" -
:"4g" -
:"16g" -
:"64g"
-
-
network_policy: ContainerNetworkPolicyDisabled | ContainerNetworkPolicyAllowlistNetwork access policy for the container.
-
class ContainerNetworkPolicyDisabled-
type: :disabledDisable outbound network access. Always
disabled.:disabled
-
-
class ContainerNetworkPolicyAllowlist-
allowed_domains: Array[String]A list of allowed domains when type is
allowlist. -
type: :allowlistAllow outbound network access only to specified domains. Always
allowlist.:allowlist
-
domain_secrets: Array[ContainerNetworkPolicyDomainSecret]Optional domain-scoped secrets for allowlisted domains.
-
domain: StringThe domain associated with the secret.
-
name: StringThe name of the secret to inject for the domain.
-
value: StringThe secret value to inject for the domain.
-
-
-
-
skills: Array[SkillReference | InlineSkill]An optional list of skills referenced by id or inline data.
-
class SkillReference-
skill_id: StringThe ID of the referenced skill.
-
type: :skill_referenceReferences a skill created with the /v1/skills endpoint.
:skill_reference
-
version: StringOptional skill version. Use a positive integer or 'latest'. Omit for default.
-
-
class InlineSkill-
description: StringThe description of the skill.
-
name: StringThe name of the skill.
-
source: InlineSkillSourceInline skill payload
-
data: StringBase64-encoded skill zip bundle.
-
media_type: :"application/zip"The media type of the inline skill payload. Must be
application/zip.:"application/zip"
-
type: :base64The type of the inline skill source. Must be
base64.:base64
-
-
type: :inlineDefines an inline skill for this request.
:inline
-
-
Returns
-
class ContainerCreateResponse-
id: StringUnique identifier for the container.
-
created_at: IntegerUnix timestamp (in seconds) when the container was created.
-
name: StringName of the container.
-
object: StringThe type of this object.
-
status: StringStatus of the container (e.g., active, deleted).
-
expires_after: ExpiresAfter{ anchor, minutes}The container will expire after this time period. The anchor is the reference point for the expiration. The minutes is the number of minutes after the anchor before the container expires.
-
anchor: :last_active_atThe reference point for the expiration.
:last_active_at
-
minutes: IntegerThe number of minutes after the anchor before the container expires.
-
-
last_active_at: IntegerUnix timestamp (in seconds) when the container was last active.
-
memory_limit: :"1g" | :"4g" | :"16g" | :"64g"The memory limit configured for the container.
-
:"1g" -
:"4g" -
:"16g" -
:"64g"
-
-
network_policy: NetworkPolicy{ type, allowed_domains}Network access policy for the container.
-
type: :allowlist | :disabledThe network policy mode.
-
:allowlist -
:disabled
-
-
allowed_domains: Array[String]Allowed outbound domains when
typeisallowlist.
-
-
Example
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
container = openai.containers.create(name: "name")
puts(container)
Response
{
"id": "id",
"created_at": 0,
"name": "name",
"object": "object",
"status": "status",
"expires_after": {
"anchor": "last_active_at",
"minutes": 0
},
"last_active_at": 0,
"memory_limit": "1g",
"network_policy": {
"type": "allowlist",
"allowed_domains": [
"string"
]
}
}