Open navClose nav

Object Types

The following type objects exist within the configuration store. Each type object is constructed and stored as a JSON document and requires the following mandatory key/value pairs:

  • Type: defines the types of the object
  • Name: defines the name of the object. The name property must be unique within the tree structure.
  • Description: defined the description of the object

The purpose of an object type is to describes its uniqueness in terms of configuration data. Configuration data is stored as key-value pairs within the document. Values can be strings, integers, booleans, arrays and complex types (objects).

Complex Types as value.

STACKL.IO does not enforce a schema model. Complex objects can be used as value, but remember you need to able to read or convert the value on the automation tool repsonible for the exection

common

The common object type is the object at the root of the tree model. It should contain key/values pairs that are common or applicable to overall tree.

Example

{
"name": "common",
"type": "common",
"description": "Common Object Type",
"key": "value"
}

environment

The environment object type represents an environment used within your IT infrastructure. Multple environments can exists like Production, Development, Staging. Each object type should contain values unique to the environment.

Example

{
"name": "production",
"type": "environment",
"description": "Production Environment",
"key": "value"
}

location

The location object type represents a logical (or physical) location used within your IT infrastructure and serve a target platform for provisioned resources. Multuple location can exist like aws-eu-west-01, dc1-vmw-clu-01, etc. Each object type should contain values unique to its location.

Example

{
"name": "aws-eu-west-01",
"type": "location",
"description": "Location AWS eu-west-01",
"key": "value"
}

zone

The zone object type represents a logical network or security zone used within your IT infrastructure. Zones can represent subnetss. security groups, etc. Multuple zones can exist. Each object type should contain values unique to its zone.

Example

{
"name": "subnet-f0123456",
"type": "zone",
"description": "Zone aws eu-west-1a, subnet inner",
"key": "value"
}

roles

The role object type represents the configuration for a particular role and has a many-to-one relation with a clientcert, example: a clientcert can only have one role assigned. It contains key/value pairs describing the role.

Example

{
"name": "db-srv-postgress",
"type": "role",
"description": "Standard configuration for a postgres database server",
"key": "value"
}

shape

The shape object type defines the compute resources of resources.

Example

{
"name": "micro",
"type": "shape",
"description": "Micro shape",
"key": "value"
}

stack-template

The stack template object type defines the configuration for a stack. Stacks are common definitions that are composed out of parameters, resources and or resource groups.

Example

{
"name": "demo app",
"type": "stack-template",
"description": "Demo Application",
"parameters": {
  "app_count":2,
  "key": "value"
  },
 "resources": {
   "app": {
     "type": "Spot::ResourceGroup",
     "properties": {
       "count": "<<app_count>>",
       "key": "value"
     }
   }
   {
     "db": {
       "type": "Spot::Server",
       "properties": {
         "key": "value"
         }       
     }
   }

 }
}

stack-instance

The stack instance object type represents an instantiated stack. Stack instances, when initiated take the configuration over from the stack-template from where they are instantiated from. After they are instantiated they are no longer are linked to the stack-template and maintain their own configuration.

Example

{
"name": "demo app 01",
"type": "stack-instance",
"description": "Demo Application 01",
}

Last updated on August 5, 2018