Deployment strategy

Create deployment strategy

Creates a new deployment strategy

post/deployment_strategy

Request body

namestring required

The name of the deployment strategy.

descriptionstring

A brief description of the deployment strategy.

nrnstring required

The NRN of the entity that the deployment strategy is associated with.

dimensionsobject

Strategy dimensions for matching scopes.

parametersobject

JSON Schema for validating strategy parameters.

scope_type_idsinteger[]

List of scope type IDs associated with this strategy.

Example request

{
  "name": "Critical deployment strategy",
  "description": "Strategy for critical deployments that checks error rate and rollbacks if needed",
  "nrn": "organization=1:account=2:namespace=3:application=4",
  "dimensions": {
    "environment": "staging"
  },
  "scope_type_ids": [
    12345,
    67890
  ]
}

Response

Deployment strategy created successfully

idstring required

Unique identifier for the deployment strategy.

namestring required

Name of the deployment strategy.

descriptionstring

Description of the deployment strategy.

nrnstring required

The NRN of the entity that the deployment strategy is associated with.

dimensionsobject

Strategy dimensions for matching scopes.

parametersobject

JSON Schema for validating strategy parameters.

scope_type_idsstring[]

List of scope type IDs associated with this strategy.

created_bystring

ID of the user who created the strategy.

updated_bystring

ID of the user who last updated the strategy.

created_atstring date-time

Timestamp when the strategy was created.

updated_atstring date-time

Timestamp when the strategy was last updated.

Example response

{
  "id": "12345",
  "name": "Critical deployment strategy",
  "description": "Strategy for critical deployments that checks error rate and rollbacks if needed",
  "nrn": "organization=1:account=2:namespace=3:application=4",
  "dimensions": {
    "environment": "staging"
  },
  "parameters": {
    "type": "object",
    "title": "Deployment strategy parameters",
    "properties": {
      "metrics": {
        "type": "object",
        "description": "Configure metric-based rollback",
        "properties": {
          "enabled": {
            "type": "boolean",
            "default": true
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "examples": [
                    "http.error_rate"
                  ]
                },
                "threshold": {
                  "type": "number"
                },
                "operator": {
                  "type": "string",
                  "enum": [
                    "greater_than",
                    "less_than",
                    "equals"
                  ]
                }
              },
              "required": [
                "name",
                "threshold",
                "operator"
              ]
            },
            "default": [
              {
                "name": "http.error_rate",
                "threshold": 0.5,
                "operator": "less_than"
              }
            ]
          }
        },
        "required": [
          "enabled"
        ]
      },
      "traffic": {
        "type": "object",
        "description": "Configure traffic switching",
        "properties": {
          "enable_auto_switch": {
            "type": "boolean",
            "default": false
          },
          "interval": {
            "type": "integer",
            "default": 10
          },
          "step": {
            "oneOf": [
              {
                "const": 0.1,
                "title": "10%"
              },
              {
                "const": 0.5,
                "title": "50%"
              },
              {
                "const": 1,
                "title": "100%"
              }
            ],
            "default": 0.1
          }
        },
        "required": [
          "enable_auto_switch",
          "interval",
          "step"
        ]
      }
    },
    "required": [
      "metrics",
      "traffic"
    ]
  },
  "scope_type_ids": [
    "12345",
    "67890"
  ],
  "created_by": "123",
  "updated_by": "456",
  "created_at": "2023-10-01T12:34:56Z",
  "updated_at": "2023-10-01T12:34:56Z"
}

Changes