项目 API
项目 API 的参考指南
摘要
第 1 章 项目 API 复制链接链接已复制到粘贴板!
1.1. Project [project.openshift.io/v1] 复制链接链接已复制到粘贴板!
- 描述
项目是 OpenShift 中的隔离和协作单元。项目具有一个或多个成员,针对项目可能会消耗的资源的配额,以及对项目中资源的安全控制。在一个项目中,成员可能具有不同的角色 - 项目管理员可以设置成员资格,编辑器可以创建和管理资源,并且查看者可以访问正在运行的容器。在普通的集群管理员中,管理员无法更改其配额,仅限于集群管理员。
列出或监视项目将仅返回用户具有 reader 角色的项目。
OpenShift 项目是 Kubernetes 命名空间的替代表示。在命名空间不是时,项目会作为可编辑的最终用户公开。直接创建项目通常仅限于管理员,而最终用户应使用 requestproject 资源。
兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
对象
1.2. ProjectRequest [project.openshift.io/v1] 复制链接链接已复制到粘贴板!
- 描述
projectrequest 是完全限定项目请求所需的一组选项
兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
对象
第 2 章 Project [project.openshift.io/v1] 复制链接链接已复制到粘贴板!
- 描述
项目是 OpenShift 中的隔离和协作单元。项目具有一个或多个成员,针对项目可能会消耗的资源的配额,以及对项目中资源的安全控制。在一个项目中,成员可能具有不同的角色 - 项目管理员可以设置成员资格,编辑器可以创建和管理资源,并且查看者可以访问正在运行的容器。在普通的集群管理员中,管理员无法更改其配额,仅限于集群管理员。
列出或监视项目将仅返回用户具有 reader 角色的项目。
OpenShift 项目是 Kubernetes 命名空间的替代表示。在命名空间不是时,项目会作为可编辑的最终用户公开。直接创建项目通常仅限于管理员,而最终用户应使用 requestproject 资源。
兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
对象
2.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| ||
|
| ProjectSpec 描述了项目的属性 |
|
| ProjectStatus 是基于项目的当前状态的信息 |
2.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- ProjectSpec 描述了项目的属性
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| finalizers 是必须为空的值的不透明列表,才能从存储中永久删除对象 |
2.1.2. .status 复制链接链接已复制到粘贴板!
- 描述
- ProjectStatus 是基于项目的当前状态的信息
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| 代表项目当前状态的最新可用影响。 | |
|
| phase 是项目的当前生命周期阶段
可能枚举值: - |
2.2. API 端点 复制链接链接已复制到粘贴板!
可用的 API 端点如下:
/apis/project.openshift.io/v1/projects
-
GET
: 列出或监视类型为 Project 的对象 -
POST
:创建项目
-
/apis/project.openshift.io/v1/watch/projects
-
GET
: 观察单个对项目列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
-
/apis/project.openshift.io/v1/projects/{name}
-
DELETE
:删除项目 -
GET
:读取指定的项目 -
PATCH
: 部分更新指定的项目 -
PUT
:替换指定的项目
-
/apis/project.openshift.io/v1/watch/projects/{name}
-
GET
: 观察对类型为 Project 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
-
2.2.1. /apis/project.openshift.io/v1/projects 复制链接链接已复制到粘贴板!
参数 | 类型 | 描述 |
---|---|---|
|
| 如果为 'true',则输出会经过 pretty print 处理。 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 Project 的对象
参数 | 类型 | 描述 |
---|---|---|
|
| allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。不实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。 |
|
| 从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须重启其列表,而无需 continue 字段。否则,客户端可能会发送另一个带有 410 错误接收的令牌的列表请求,服务器将以从下一个密钥开始开始的列表响应,但从最新的快照开始,这与上一个列表结果中不一致 - 在第一个列表请求后将包含在响应中,只要它们的密钥位于 "next key" 后。 当 watch 为 true 时不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值开始监视,而不丢失任何修改。 |
|
| 一个选择器,用于限制其字段返回的对象列表。默认为任何内容。 |
|
| 一个选择器,用于限制其标签返回的对象列表。默认为任何内容。 |
|
|
limit 是列表调用返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的 服务器保证,在使用时返回的对象将与在没有限制限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后没有创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制来接收非常大结果的较小的块的客户端可确保它们看到所有可能的对象。如果在块列表中更新对象,则返回第一个列表结果时存在的对象版本。 |
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
|
| resourceVersionMatch 决定如何将 resourceVersion 应用到列表调用。强烈建议您为设置 resourceVersion 的 list 调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions。 默认为未设置 |
|
| 列表/watch 调用的超时。这限制了调用的持续时间,无论任何活动或不活跃。 |
|
| 观察对所描述资源的更改,并将它们作为添加、更新和删除通知的流返回。指定 resourceVersion。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建一个项目
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
|
|
fieldValidation 指示服务器如何处理请求(POST/PUT/PATCH)中包含未知或重复字段的对象,只要 |
参数 | 类型 | 描述 |
---|---|---|
|
|
2.2.2. /apis/project.openshift.io/v1/watch/projects 复制链接链接已复制到粘贴板!
参数 | 类型 | 描述 |
---|---|---|
|
| allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。不实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。 |
|
| 从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须重启其列表,而无需 continue 字段。否则,客户端可能会发送另一个带有 410 错误接收的令牌的列表请求,服务器将以从下一个密钥开始开始的列表响应,但从最新的快照开始,这与上一个列表结果中不一致 - 在第一个列表请求后将包含在响应中,只要它们的密钥位于 "next key" 后。 当 watch 为 true 时不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值开始监视,而不丢失任何修改。 |
|
| 一个选择器,用于限制其字段返回的对象列表。默认为任何内容。 |
|
| 一个选择器,用于限制其标签返回的对象列表。默认为任何内容。 |
|
|
limit 是列表调用返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的 服务器保证,在使用时返回的对象将与在没有限制限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后没有创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制来接收非常大结果的较小的块的客户端可确保它们看到所有可能的对象。如果在块列表中更新对象,则返回第一个列表结果时存在的对象版本。 |
|
| 如果为 'true',则输出会经过 pretty print 处理。 |
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
|
| resourceVersionMatch 决定如何将 resourceVersion 应用到列表调用。强烈建议您为设置 resourceVersion 的 list 调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions。 默认为未设置 |
|
| 列表/watch 调用的超时。这限制了调用的持续时间,无论任何活动或不活跃。 |
|
| 观察对所描述资源的更改,并将它们作为添加、更新和删除通知的流返回。指定 resourceVersion。 |
- HTTP 方法
-
GET
- 描述
- 观察单个对项目列表的更改。已弃用:改为使用 'watch' 参数和列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
2.2.3. /apis/project.openshift.io/v1/projects/{name} 复制链接链接已复制到粘贴板!
参数 | 类型 | 描述 |
---|---|---|
|
| 项目的名称 |
参数 | 类型 | 描述 |
---|---|---|
|
| 如果为 'true',则输出会经过 pretty print 处理。 |
- HTTP 方法
-
DELETE
- 描述
- 删除项目
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| 应该删除对象前的持续时间(以秒为单位)。值必须是非负整数。值为零表示立即删除。如果这个值是 nil,则会使用指定类型的默认宽限期。如果没有指定,则默认为每个对象值。零表示立即删除。 |
|
| 弃用:请使用 PropagationPolicy,此字段将在 1.7 中弃用。如果依赖对象是孤立的。如果为 true/false,则 "orphan" finalizer 将添加到对象的终结器列表中。可以设置此字段或 PropagationPolicy,但不能同时设置。 |
|
| 是否执行垃圾回收。可以设置此字段或 OrphanDependents,但不能同时设置两者。默认策略由 metadata.finalizers 和特定于资源的默认策略中设置的现有终结器决定。可接受的值有: 'Orphan' - 孤立的依赖项; 'Background' - 允许垃圾收集器删除依赖项,"Foreground' - 删除前台所有依赖的级联策略。 |
参数 | 类型 | 描述 |
---|---|---|
|
- HTTP 方法
-
GET
- 描述
- 读取指定的项目
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的项目
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。应用请求(application/apply-patch)需要此字段,但对非应用补丁类型(JsonPatch、MergePatch、MergePatch)是可选的。 |
|
|
fieldValidation 指示服务器如何处理请求(POST/PUT/PATCH)中包含未知或重复字段的对象,只要 |
|
| 强制要"强制"应用请求。这意味着用户将重新分配由其他人员拥有的冲突字段。对于非应用补丁请求,必须取消设置 force 标志。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
- HTTP 方法
-
PUT
- 描述
- 替换指定的项目
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
|
|
fieldValidation 指示服务器如何处理请求(POST/PUT/PATCH)中包含未知或重复字段的对象,只要 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| 项目的名称 |
参数 | 类型 | 描述 |
---|---|---|
|
| allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。不实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。 |
|
| 从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须重启其列表,而无需 continue 字段。否则,客户端可能会发送另一个带有 410 错误接收的令牌的列表请求,服务器将以从下一个密钥开始开始的列表响应,但从最新的快照开始,这与上一个列表结果中不一致 - 在第一个列表请求后将包含在响应中,只要它们的密钥位于 "next key" 后。 当 watch 为 true 时不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值开始监视,而不丢失任何修改。 |
|
| 一个选择器,用于限制其字段返回的对象列表。默认为任何内容。 |
|
| 一个选择器,用于限制其标签返回的对象列表。默认为任何内容。 |
|
|
limit 是列表调用返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的 服务器保证,在使用时返回的对象将与在没有限制限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后没有创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制来接收非常大结果的较小的块的客户端可确保它们看到所有可能的对象。如果在块列表中更新对象,则返回第一个列表结果时存在的对象版本。 |
|
| 如果为 'true',则输出会经过 pretty print 处理。 |
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
|
| resourceVersionMatch 决定如何将 resourceVersion 应用到列表调用。强烈建议您为设置 resourceVersion 的 list 调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions。 默认为未设置 |
|
| 列表/watch 调用的超时。这限制了调用的持续时间,无论任何活动或不活跃。 |
|
| 观察对所描述资源的更改,并将它们作为添加、更新和删除通知的流返回。指定 resourceVersion。 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 Project 的对象的更改。已弃用:使用带有列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
第 3 章 ProjectRequest [project.openshift.io/v1] 复制链接链接已复制到粘贴板!
- 描述
projectrequest 是完全限定项目请求所需的一组选项
兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
对象
3.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| description 是应用到项目的描述 |
|
| displayName 是要应用到项目的显示名称 |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
3.2. API 端点 复制链接链接已复制到粘贴板!
可用的 API 端点如下:
/apis/project.openshift.io/v1/projectrequests
-
GET
: 列出类型为 ProjectRequest 的对象 -
POST
:创建一个 ProjectRequest
-
3.2.1. /apis/project.openshift.io/v1/projectrequests 复制链接链接已复制到粘贴板!
参数 | 类型 | 描述 |
---|---|---|
|
| 如果为 'true',则输出会经过 pretty print 处理。 |
- HTTP 方法
-
GET
- 描述
- 列出类型为 ProjectRequest 的对象
参数 | 类型 | 描述 |
---|---|---|
|
| allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。不实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。 |
|
| 从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须重启其列表,而无需 continue 字段。否则,客户端可能会发送另一个带有 410 错误接收的令牌的列表请求,服务器将以从下一个密钥开始开始的列表响应,但从最新的快照开始,这与上一个列表结果中不一致 - 在第一个列表请求后将包含在响应中,只要它们的密钥位于 "next key" 后。 当 watch 为 true 时不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值开始监视,而不丢失任何修改。 |
|
| 一个选择器,用于限制其字段返回的对象列表。默认为任何内容。 |
|
| 一个选择器,用于限制其标签返回的对象列表。默认为任何内容。 |
|
|
limit 是列表调用返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的 服务器保证,在使用时返回的对象将与在没有限制限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后没有创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制来接收非常大结果的较小的块的客户端可确保它们看到所有可能的对象。如果在块列表中更新对象,则返回第一个列表结果时存在的对象版本。 |
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
|
| resourceVersionMatch 决定如何将 resourceVersion 应用到列表调用。强烈建议您为设置 resourceVersion 的 list 调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions。 默认为未设置 |
|
| 列表/watch 调用的超时。这限制了调用的持续时间,无论任何活动或不活跃。 |
|
| 观察对所描述资源的更改,并将它们作为添加、更新和删除通知的流返回。指定 resourceVersion。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建一个 ProjectRequest
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
|
|
fieldValidation 指示服务器如何处理请求(POST/PUT/PATCH)中包含未知或重复字段的对象,只要 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
Legal Notice
复制链接链接已复制到粘贴板!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.