This is a data structure for user credentials. Most calls have such
credentials in them, if not as an explicit parameter than as an
understood one. I'm planning to move this out of the body of most
calls into a common header, along with commonly used information like
transaction numbers, for clarity.
Currently the layout is a placeholder. I expect that keys and other
credentials will develop more complex structure.
- Sequence of:
- Element: <Name>
- type: xsd:string
- occurs: Once
- Element: <GID>
- type: xsd:string
- occurs: Once
- Element: <KeyID>
- type: xsd:string
- occurs: Once
This encapsulates a list of more than one user. I expect that more
than one will be attached to groups.
- Sequence of:
- Element: <users>
- type: tns:UserInfo
- occurs: One or more times
The Slicename is generated by a Naming authority and is, in principle,
unique across GENI. It is one of the results of a GetSlice call.
SliceNames, SliverNames and TicketNames are all basically simple strings
now, but they have distinct type names allocated to them. Again, these
names may become more complex, including a version number or an issuing
host.
Base Type: xsd:string
This name is agreed upon between the component and the user to refer to
this resource allocation. Multiple slivers on the same component may
be in the same slice, so a separate identifier is needed to manipulate
the slivers. When a ticket is made into a sliver the component assigns
a name. Because it is really scoped between the component and the user
who realizes the ticket, that scope might be good to include.
See the documentation of SliceName for notes on the current complexity.
Base Type: xsd:string
A ticket is a pre-realization sliver. Because the same two entities
who will agree on a ticket - the user and the component - agree on a
ticket name, it should be enough to send teh ticket name at realization
time. Even when realizing a derived ticket from a GrantTicket, sending
the whole ticket data structure back to the component which must keep
it around anyway seems unnecessary.
See the documentation of SliceName for notes on the current complexity.
Base Type: xsd:string
This is a placeholder for an errno-style GMC error descriptor. Most
operations would return this on a fault.
Base Type: xsd:int
Placeholder for at least part of an r?spec. This is the string
referring to a resource to allocate. That will certainly become more
rich.
Base Type: xsd:string
This is the description of the binding from "things on a component" to
"resoucres requested in a sliver." Right now just a string as a
placeholder.
Base Type: xsd:string
A resuest for resources. Right now this is an unordered list of one or
more Resource-typed objects. More complexity will undoubtedly ensue.
- Sequence of:
- Element: <ResourceRequest>
- type: tns:Resource
- occurs: One or more times
The description of a sliver, returned by CreateSliver. This includes
the name of the sliver created, the slice it's assigned to and a list
of resources and the bindings of component stuff to that realizes those
resources. The component issuing it and the user creating it agree on
its contents.
- Sequence of:
- Element: <SliverName>
- type: tns:SliverName
- occurs: Once
- Element: <SliceName>
- type: tns:SliceName
- occurs: Once
- Element: <Resources>
- type: tns:Resource
- occurs: One or more times
- Element: <Bindings>
- type: tns:ResourceBinding
- occurs: One or more times
A ticket is a promise to fulfill a resource request at some later time.
Because the binding that realizes that request may not be fully
resolvable until the request is made, the ticket just includes the
resources that will be provided and the slice to which they will be
bound. This will eventually be signed, etc. A name is included so
that the component and the user can refer to it without passing the
whole structure around.
- Sequence of:
- Element: <TicketName>
- type: tns:TicketName
- occurs: Once
- Element: <SliceName>
- type: tns:SliceName
- occurs: Once
- Element: <Resources>
- type: tns:Resource
- occurs: One or more times
This combination parameter - a union in C - allows some requests to
request either that a specific sliver be operated on or that the all
slivers associated with a given slice be operated on. The generated
call includes the typing of the parameter so a single interface can
accomplish both things. The parameter is either the sliver name
(agreed on between the component and the user) or the slice name (which
is globally unique).
- Choice between (choose 1):
- Element: <SliverName>
- type: tns:SliverName
- occurs: Once
- Element: <SliceName>
- type: tns:SliceName
- occurs: Once
This data structure is used when querying a component about currently
realized slices. For each slice active on the machine a list of sliver
names is provided. The intent is that these are the slivers associated
with that slice.
- Sequence of:
- Element: <Slice>
- type: tns:SliceName
- occurs: Once
- Element: <Slivers>
- type: tns:SliverName
- occurs: One or more times
A list of slice to sliver(s) bindings for a given component.
- Sequence of:
- Element: <Slice>
- type: tns:ComponentSlice
- occurs: Zero or more times
This is analogous to ComponentSlice, but with the binding reversed.
This lists the slice a sliver is currently bound to. It is used in
answering queries about allocated slivers on a component.
- Sequence of:
- Element: <Sliver>
- type: tns:SliverName
- occurs: Once
- Element: <Slice>
- type: tns:SliceName
- occurs: Once
A list of sliver to slice bindings for a given component.
- Sequence of:
- Element: <Sliver>
- type: tns:ComponentSliver
- occurs: Zero or more times