Assistant: codex Assistant-Model: gpt-5.6-luna Assistant-Session: 01a087b0-7b1e-7531-8ef3-6525ebaf7ee7
252 lines
7.2 KiB
YAML
252 lines
7.2 KiB
YAML
fiam_version: '0.2'
|
|
instance:
|
|
id: adversarial.element-on-object-shape
|
|
kind: model
|
|
title: Kubernetes Pod collection and object
|
|
status: provisional
|
|
intent: Test API resource collection/object modeling while keeping representation kind/schema distinct from resource identity.
|
|
nodes:
|
|
- id: node.kubectl
|
|
kind: system-node
|
|
name: kubectl / API client
|
|
node_type: fiam.node-type.application
|
|
- id: node.apiserver
|
|
kind: system-node
|
|
name: Kubernetes API Server
|
|
node_type: fiam.node-type.service
|
|
ports:
|
|
- id: port.apiserver.api
|
|
owner: node.apiserver
|
|
participations:
|
|
- contract: contract.k8s-api
|
|
mode: offers
|
|
- id: port.kubectl.api
|
|
owner: node.kubectl
|
|
participations:
|
|
- contract: contract.k8s-api
|
|
mode: requires
|
|
contracts:
|
|
- id: contract.k8s-api
|
|
kind: interface-contract
|
|
purpose:
|
|
- fiam.purpose.transactional-data-access
|
|
- fiam.purpose.mutation
|
|
operations:
|
|
- id: operation.k8s.list-pods
|
|
name: list pods
|
|
effect: fiam.effect.read
|
|
- id: operation.k8s.watch-pods
|
|
name: watch pods
|
|
interaction_style: fiam.interaction-style.subscribe
|
|
- id: operation.k8s.patch-pod
|
|
name: patch pod
|
|
effect: fiam.effect.write
|
|
endpoints:
|
|
- id: endpoint.apiserver
|
|
kind: endpoint
|
|
address: https://cluster.example.invalid
|
|
address_scheme: fiam.address-scheme.https-url
|
|
bindings:
|
|
- id: binding.k8s-api
|
|
contract: contract.k8s-api
|
|
provider_port: port.apiserver.api
|
|
consumer_ports:
|
|
- port.kubectl.api
|
|
endpoints:
|
|
- endpoint.apiserver
|
|
communication_stack:
|
|
- role: fiam.stack-role.application-transfer-protocol
|
|
term: fiam.protocol.http
|
|
- role: fiam.stack-role.security-protocol
|
|
term: fiam.protocol.tls
|
|
information_resources:
|
|
- id: resource.k8s.default-pods
|
|
kind: information-resource
|
|
name: default namespace Pods collection
|
|
resource_kind: fiam.information-resource.api-resource-collection
|
|
resource_scope: fiam.resource-scope.concrete-collection
|
|
owner: node.apiserver
|
|
selectors:
|
|
- kind: fiam.resource-selector.kubernetes-resource-path
|
|
value: /api/v1/namespaces/default/pods
|
|
facets:
|
|
durability: fiam.durability.persistent
|
|
mutability: fiam.mutability.mutable
|
|
- id: resource.k8s.pod.demo
|
|
kind: information-resource
|
|
name: Pod default/demo
|
|
resource_kind: fiam.information-resource.api-resource-object
|
|
resource_scope: fiam.resource-scope.concrete-instance
|
|
owner: node.apiserver
|
|
selectors:
|
|
- kind: fiam.resource-selector.kubernetes-object-ref
|
|
value:
|
|
apiVersion: v1
|
|
kind: Pod
|
|
namespace: default
|
|
name: demo
|
|
facets:
|
|
durability: fiam.durability.persistent
|
|
mutability: fiam.mutability.mutable
|
|
interactions:
|
|
- id: interaction.k8s.list
|
|
kind: interaction
|
|
operation: operation.k8s.list-pods
|
|
binding: binding.k8s-api
|
|
- id: interaction.k8s.watch
|
|
kind: interaction
|
|
operation: operation.k8s.watch-pods
|
|
binding: binding.k8s-api
|
|
temporal_semantics: fiam.temporal.asynchronous
|
|
- id: interaction.k8s.patch
|
|
kind: interaction
|
|
operation: operation.k8s.patch-pod
|
|
binding: binding.k8s-api
|
|
assertions:
|
|
- id: assertion.pod.in-collection
|
|
assertion_kind: relation
|
|
subject: resource.k8s.pod.demo
|
|
predicate: fiam.relation.contained-in
|
|
polarity: asserted
|
|
object_ref: resource.k8s.default-pods
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: modeling specimen
|
|
confidence: 0.98
|
|
- id: assertion.list.reads
|
|
assertion_kind: relation
|
|
subject: interaction.k8s.list
|
|
predicate: fiam.relation.reads-from
|
|
polarity: asserted
|
|
object_ref: resource.k8s.default-pods
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: modeling specimen
|
|
confidence: 0.98
|
|
- id: assertion.watch.watches
|
|
assertion_kind: relation
|
|
subject: interaction.k8s.watch
|
|
predicate: fiam.relation.watches
|
|
polarity: asserted
|
|
object_ref: resource.k8s.default-pods
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: modeling specimen
|
|
confidence: 0.98
|
|
- id: assertion.patch.writes
|
|
assertion_kind: relation
|
|
subject: interaction.k8s.patch
|
|
predicate: fiam.relation.writes-to
|
|
polarity: asserted
|
|
object_ref: resource.k8s.pod.demo
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: modeling specimen
|
|
confidence: 0.98
|
|
- id: assertion.k8s.collection-conforms
|
|
assertion_kind: relation
|
|
subject: resource.k8s.default-pods
|
|
predicate: fiam.relation.conforms-to-shape
|
|
polarity: asserted
|
|
object_ref: shape.k8s.pod-list
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
- id: assertion.k8s.collection-element
|
|
assertion_kind: relation
|
|
subject: resource.k8s.default-pods
|
|
predicate: fiam.relation.element-shape
|
|
polarity: asserted
|
|
object_ref: shape.k8s.pod
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.element
|
|
slot: items
|
|
- id: assertion.k8s.listshape-element
|
|
assertion_kind: relation
|
|
subject: shape.k8s.pod
|
|
predicate: fiam.relation.element-shape
|
|
polarity: asserted
|
|
object_ref: shape.k8s.pod
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.element
|
|
slot: items
|
|
- id: assertion.k8s.object-conforms
|
|
assertion_kind: relation
|
|
subject: resource.k8s.pod.demo
|
|
predicate: fiam.relation.conforms-to-shape
|
|
polarity: asserted
|
|
object_ref: shape.k8s.pod
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
- id: assertion.k8s.list-produces
|
|
assertion_kind: relation
|
|
subject: operation.k8s.list-pods
|
|
predicate: fiam.relation.produces-shape
|
|
polarity: asserted
|
|
object_ref: shape.k8s.pod-list
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.response
|
|
- id: assertion.k8s.list-binding-json
|
|
assertion_kind: relation
|
|
subject: binding.k8s-api
|
|
predicate: fiam.relation.produces-shape
|
|
polarity: asserted
|
|
object_ref: shape.k8s.pod-list
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.response
|
|
representation: fiam.representation.json
|
|
operation_ref: operation.k8s.list-pods
|
|
- id: assertion.k8s.list-interaction-json
|
|
assertion_kind: relation
|
|
subject: interaction.k8s.list
|
|
predicate: fiam.relation.produces-shape
|
|
polarity: asserted
|
|
object_ref: shape.k8s.pod-list
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.response
|
|
representation: fiam.representation.json
|
|
x-references:
|
|
- https://kubernetes.io/docs/reference/using-api/api-concepts/
|
|
- https://kubernetes.io/docs/reference/kubernetes-api/definitions/api-resource-v1-meta/
|
|
information_shapes:
|
|
- id: shape.k8s.pod
|
|
kind: information-shape
|
|
name: Kubernetes Pod
|
|
shape_kind: fiam.information-shape.object
|
|
- id: shape.k8s.pod-list
|
|
kind: information-shape
|
|
name: Kubernetes Pod collection representation
|
|
shape_kind: fiam.information-shape.collection
|
|
artifacts:
|
|
- id: artifact.k8s.openapi
|
|
kind: artifact
|
|
name: Kubernetes OpenAPI schema/discovery
|
|
artifact_type: fiam.artifact.api-description
|
|
describes:
|
|
- contract.k8s-api
|
|
- shape.k8s.pod
|
|
- shape.k8s.pod-list
|
|
locator: cluster://openapi
|