1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package types
import (
smithydocument "github.com/aws/smithy-go/document"
)
// An assertion rule enforces that, when you change a routing control state, that
// the criteria that you set in the rule configuration is met. Otherwise, the
// change to the routing control is not accepted. For example, the criteria might
// be that at least one routing control state is On after the transaction so that
// traffic continues to flow to at least one cell for the application. This ensures
// that you avoid a fail-open scenario.
type AssertionRule struct {
// The routing controls that are part of transactions that are evaluated to
// determine if a request to change a routing control state is allowed. For
// example, you might include three routing controls, one for each of three Amazon
// Web Services Regions.
//
// This member is required.
AssertedControls []string
// The Amazon Resource Name (ARN) of the control panel.
//
// This member is required.
ControlPanelArn *string
// Name of the assertion rule. You can use any non-white space character in the
// name.
//
// This member is required.
Name *string
// The criteria that you set for specific assertion routing controls
// (AssertedControls) that designate how many routing control states must be ON as
// the result of a transaction. For example, if you have three assertion routing
// controls, you might specify ATLEAST 2 for your rule configuration. This means
// that at least two assertion routing control states must be ON, so that at least
// two Amazon Web Services Regions have traffic flowing to them.
//
// This member is required.
RuleConfig *RuleConfig
// The Amazon Resource Name (ARN) of the assertion rule.
//
// This member is required.
SafetyRuleArn *string
// The deployment status of an assertion rule. Status can be one of the following:
// PENDING, DEPLOYED, PENDING_DELETION.
//
// This member is required.
Status Status
// An evaluation period, in milliseconds (ms), during which any request against
// the target routing controls will fail. This helps prevent "flapping" of state.
// The wait period is 5000 ms by default, but you can choose a custom value.
//
// This member is required.
WaitPeriodMs *int32
// The Amazon Web Services account ID of the assertion rule owner.
Owner *string
noSmithyDocumentSerde
}
// An update to an assertion rule. You can update the name or the evaluation
// period (wait period). If you don't specify one of the items to update, the item
// is unchanged.
type AssertionRuleUpdate struct {
// The name of the assertion rule. You can use any non-white space character in
// the name.
//
// This member is required.
Name *string
// The Amazon Resource Name (ARN) of the assertion rule.
//
// This member is required.
SafetyRuleArn *string
// An evaluation period, in milliseconds (ms), during which any request against
// the target routing controls will fail. This helps prevent "flapping" of state.
// The wait period is 5000 ms by default, but you can choose a custom value.
//
// This member is required.
WaitPeriodMs *int32
noSmithyDocumentSerde
}
// A set of five redundant Regional endpoints against which you can execute API
// calls to update or get the state of routing controls. You can host multiple
// control panels and routing controls on one cluster.
type Cluster struct {
// The Amazon Resource Name (ARN) of the cluster.
ClusterArn *string
// Endpoints for a cluster. Specify one of these endpoints when you want to set or
// retrieve a routing control state in the cluster. To get or update the routing
// control state, see the Amazon Route 53 Application Recovery Controller Routing
// Control Actions.
ClusterEndpoints []ClusterEndpoint
// The name of the cluster.
Name *string
// The Amazon Web Services account ID of the cluster owner.
Owner *string
// Deployment status of a resource. Status can be one of the following: PENDING,
// DEPLOYED, PENDING_DELETION.
Status Status
noSmithyDocumentSerde
}
// A cluster endpoint. Specify an endpoint when you want to set or retrieve a
// routing control state in the cluster.
type ClusterEndpoint struct {
// A cluster endpoint. Specify an endpoint and Amazon Web Services Region when you
// want to set or retrieve a routing control state in the cluster. To get or update
// the routing control state, see the Amazon Route 53 Application Recovery
// Controller Routing Control Actions.
Endpoint *string
// The Amazon Web Services Region for a cluster endpoint.
Region *string
noSmithyDocumentSerde
}
// A control panel represents a group of routing controls that can be changed
// together in a single transaction.
type ControlPanel struct {
// The Amazon Resource Name (ARN) of the cluster that includes the control panel.
ClusterArn *string
// The Amazon Resource Name (ARN) of the control panel.
ControlPanelArn *string
// A flag that Amazon Route 53 Application Recovery Controller sets to true to
// designate the default control panel for a cluster. When you create a cluster,
// Amazon Route 53 Application Recovery Controller creates a control panel, and
// sets this flag for that control panel. If you create a control panel yourself,
// this flag is set to false.
DefaultControlPanel *bool
// The name of the control panel. You can use any non-white space character in the
// name.
Name *string
// The Amazon Web Services account ID of the control panel owner.
Owner *string
// The number of routing controls in the control panel.
RoutingControlCount *int32
// The deployment status of control panel. Status can be one of the following:
// PENDING, DEPLOYED, PENDING_DELETION.
Status Status
noSmithyDocumentSerde
}
// A gating rule verifies that a gating routing control or set of gating routing
// controls, evaluates as true, based on a rule configuration that you specify,
// which allows a set of routing control state changes to complete. For example, if
// you specify one gating routing control and you set the Type in the rule
// configuration to OR, that indicates that you must set the gating routing control
// to On for the rule to evaluate as true; that is, for the gating control "switch"
// to be "On". When you do that, then you can update the routing control states for
// the target routing controls that you specify in the gating rule.
type GatingRule struct {
// The Amazon Resource Name (ARN) of the control panel.
//
// This member is required.
ControlPanelArn *string
// An array of gating routing control Amazon Resource Names (ARNs). For a simple
// "on/off" switch, specify the ARN for one routing control. The gating routing
// controls are evaluated by the rule configuration that you specify to determine
// if the target routing control states can be changed.
//
// This member is required.
GatingControls []string
// The name for the gating rule. You can use any non-white space character in the
// name.
//
// This member is required.
Name *string
// The criteria that you set for gating routing controls that designate how many
// of the routing control states must be ON to allow you to update target routing
// control states.
//
// This member is required.
RuleConfig *RuleConfig
// The Amazon Resource Name (ARN) of the gating rule.
//
// This member is required.
SafetyRuleArn *string
// The deployment status of a gating rule. Status can be one of the following:
// PENDING, DEPLOYED, PENDING_DELETION.
//
// This member is required.
Status Status
// An array of target routing control Amazon Resource Names (ARNs) for which the
// states can only be updated if the rule configuration that you specify evaluates
// to true for the gating routing control. As a simple example, if you have a
// single gating control, it acts as an overall "on/off" switch for a set of target
// routing controls. You can use this to manually override automated failover, for
// example.
//
// This member is required.
TargetControls []string
// An evaluation period, in milliseconds (ms), during which any request against
// the target routing controls will fail. This helps prevent "flapping" of state.
// The wait period is 5000 ms by default, but you can choose a custom value.
//
// This member is required.
WaitPeriodMs *int32
// The Amazon Web Services account ID of the gating rule owner.
Owner *string
noSmithyDocumentSerde
}
// Update to a gating rule. You can update the name or the evaluation period (wait
// period). If you don't specify one of the items to update, the item is unchanged.
type GatingRuleUpdate struct {
// The name for the gating rule. You can use any non-white space character in the
// name.
//
// This member is required.
Name *string
// The Amazon Resource Name (ARN) of the gating rule.
//
// This member is required.
SafetyRuleArn *string
// An evaluation period, in milliseconds (ms), during which any request against
// the target routing controls will fail. This helps prevent "flapping" of state.
// The wait period is 5000 ms by default, but you can choose a custom value.
//
// This member is required.
WaitPeriodMs *int32
noSmithyDocumentSerde
}
// A new assertion rule for a control panel.
type NewAssertionRule struct {
// The routing controls that are part of transactions that are evaluated to
// determine if a request to change a routing control state is allowed. For
// example, you might include three routing controls, one for each of three Amazon
// Web Services Regions.
//
// This member is required.
AssertedControls []string
// The Amazon Resource Name (ARN) for the control panel.
//
// This member is required.
ControlPanelArn *string
// The name of the assertion rule. You can use any non-white space character in
// the name.
//
// This member is required.
Name *string
// The criteria that you set for specific assertion controls (routing controls)
// that designate how many control states must be ON as the result of a
// transaction. For example, if you have three assertion controls, you might
// specify ATLEAST 2 for your rule configuration. This means that at least two
// assertion controls must be ON, so that at least two Amazon Web Services Regions
// have traffic flowing to them.
//
// This member is required.
RuleConfig *RuleConfig
// An evaluation period, in milliseconds (ms), during which any request against
// the target routing controls will fail. This helps prevent "flapping" of state.
// The wait period is 5000 ms by default, but you can choose a custom value.
//
// This member is required.
WaitPeriodMs *int32
noSmithyDocumentSerde
}
// A new gating rule for a control panel.
type NewGatingRule struct {
// The Amazon Resource Name (ARN) of the control panel.
//
// This member is required.
ControlPanelArn *string
// The gating controls for the new gating rule. That is, routing controls that are
// evaluated by the rule configuration that you specify.
//
// This member is required.
GatingControls []string
// The name for the new gating rule.
//
// This member is required.
Name *string
// The criteria that you set for specific gating controls (routing controls) that
// designate how many control states must be ON to allow you to change (set or
// unset) the target control states.
//
// This member is required.
RuleConfig *RuleConfig
// Routing controls that can only be set or unset if the specified RuleConfig
// evaluates to true for the specified GatingControls. For example, say you have
// three gating controls, one for each of three Amazon Web Services Regions. Now
// you specify ATLEAST 2 as your RuleConfig. With these settings, you can only
// change (set or unset) the routing controls that you have specified as
// TargetControls if that rule evaluates to true. In other words, your ability to
// change the routing controls that you have specified as TargetControls is gated
// by the rule that you set for the routing controls in GatingControls.
//
// This member is required.
TargetControls []string
// An evaluation period, in milliseconds (ms), during which any request against
// the target routing controls will fail. This helps prevent "flapping" of state.
// The wait period is 5000 ms by default, but you can choose a custom value.
//
// This member is required.
WaitPeriodMs *int32
noSmithyDocumentSerde
}
// A routing control has one of two states: ON and OFF. You can map the routing
// control state to the state of an Amazon Route 53 health check, which can be used
// to control traffic routing.
type RoutingControl struct {
// The Amazon Resource Name (ARN) of the control panel that includes the routing
// control.
ControlPanelArn *string
// The name of the routing control.
Name *string
// The Amazon Web Services account ID of the routing control owner.
Owner *string
// The Amazon Resource Name (ARN) of the routing control.
RoutingControlArn *string
// The deployment status of a routing control. Status can be one of the following:
// PENDING, DEPLOYED, PENDING_DELETION.
Status Status
noSmithyDocumentSerde
}
// A safety rule. A safety rule can be an assertion rule or a gating rule.
type Rule struct {
// An assertion rule enforces that, when a routing control state is changed, the
// criteria set by the rule configuration is met. Otherwise, the change to the
// routing control state is not accepted. For example, the criteria might be that
// at least one routing control state is On after the transaction so that traffic
// continues to flow to at least one cell for the application. This ensures that
// you avoid a fail-open scenario.
ASSERTION *AssertionRule
// A gating rule verifies that a gating routing control or set of gating routing
// controls, evaluates as true, based on a rule configuration that you specify,
// which allows a set of routing control state changes to complete. For example, if
// you specify one gating routing control and you set the Type in the rule
// configuration to OR, that indicates that you must set the gating routing control
// to On for the rule to evaluate as true; that is, for the gating control "switch"
// to be "On". When you do that, then you can update the routing control states for
// the target routing controls that you specify in the gating rule.
GATING *GatingRule
noSmithyDocumentSerde
}
// The rule configuration for an assertion rule. That is, the criteria that you
// set for specific assertion controls (routing controls) that specify how many
// control states must be ON after a transaction completes.
type RuleConfig struct {
// Logical negation of the rule. If the rule would usually evaluate true, it's
// evaluated as false, and vice versa.
//
// This member is required.
Inverted *bool
// The value of N, when you specify an ATLEAST rule type. That is, Threshold is
// the number of controls that must be set when you specify an ATLEAST type.
//
// This member is required.
Threshold *int32
// A rule can be one of the following: ATLEAST, AND, or OR.
//
// This member is required.
Type RuleType
noSmithyDocumentSerde
}
type noSmithyDocumentSerde = smithydocument.NoSerde
|