| <a name="input_config"></a> [config](#input\_config) | Provider-owned webhook values supplied from `orchestration_provider.webhook`. The parent resolves inherited input values before calling this module; this provider still resolves the documented JIT, artifact, and tag-precedence fallbacks.<br/><br/>- `runner`: Runner lifecycle, boot timeout, and capacity settings owned by webhook orchestration.<br/>- `runner.boot_time_in_minutes`: Expected runner boot duration used by scale-down and pool controls.<br/>- `runner.ephemeral`: Registers runners in ephemeral mode.<br/>- `runner.jit_config_enabled`: Explicitly enables or disables just-in-time configuration. Null follows `runner.ephemeral`.<br/>- `runner.maximum_count`: Maximum number of runners managed for this runner configuration.<br/>- `github.organization_runners`: Registers runners at organization scope when true; otherwise registration is repository-scoped.<br/>- `queue.build.arn`: ARN of the runner configuration's build queue.<br/>- `queue.build.url`: URL of the runner configuration's build queue.<br/>- `queue.kms_key_id`: Optional KMS key ARN encrypting the build queue. This is independent from the Parameter Store KMS key.<br/>- `queue.tags`: Tags inherited by queue-related provider resources before component-specific overrides.<br/>- `lambda.artifact`: Runner-control artifact shared by scale, pool, and job-retry components. At most one of `zip` or `s3` may be selected; no selection uses the packaged runner archive.<br/>- `lambda.artifact.zip`: Optional local path to the runner-control Lambda archive.<br/>- `lambda.artifact.s3`: Optional S3 object selector in the common `lambda.artifact.s3.bucket`. Wrapper presence must be known during planning and selecting it requires a non-null common bucket.<br/>- `lambda.artifact.s3.key`: Object key of the runner-control Lambda archive.<br/>- `lambda.artifact.s3.object_version`: Optional object version of the runner-control Lambda archive.<br/>- `lambda.scale.up.memory_size`: Memory allocated to the scale-up Lambda in MB.<br/>- `lambda.scale.up.timeout`: Scale-up Lambda timeout in seconds.<br/>- `lambda.scale.up.reserved_concurrent_executions`: Reserved concurrency for scale-up. Use `-1` for unreserved concurrency.<br/>- `lambda.scale.up.job_queued_check_enabled`: Enables queued-job verification before scaling. Null follows the resolved runner mode.<br/>- `lambda.scale.up.event_source_mapping.batch_size`: Maximum build-queue records delivered per scale-up invocation.<br/>- `lambda.scale.up.event_source_mapping.maximum_batching_window_in_seconds`: Maximum batching window for build-queue records.<br/>- `lambda.scale.up.tags`: Tags applied within scale-up resource scopes after common provider tags.<br/>- `lambda.scale.down.memory_size`: Memory allocated to the scale-down Lambda in MB.<br/>- `lambda.scale.down.timeout`: Scale-down Lambda timeout in seconds.<br/>- `lambda.scale.down.schedule_expression`: EventBridge schedule expression that invokes scale-down.<br/>- `lambda.scale.down.minimum_running_time_in_minutes`: Optional minimum runner age before scale-down may terminate it. Null selects the operating-system default.<br/>- `lambda.scale.down.idle_config`: Time-based desired idle-runner configurations.<br/>- `lambda.scale.down.idle_config[].cron`: Cron expression identifying when the idle configuration applies.<br/>- `lambda.scale.down.idle_config[].timeZone`: IANA time zone used to evaluate the cron expression.<br/>- `lambda.scale.down.idle_config[].idleCount`: Number of idle runners retained during the matching period.<br/>- `lambda.scale.down.idle_config[].evictionStrategy`: Selection strategy used when excess idle runners are removed.<br/>- `lambda.scale.down.tags`: Tags applied within scale-down resource scopes after common provider tags.<br/>- `lambda.pool.memory_size`: Memory allocated to the pool Lambda in MB.<br/>- `lambda.pool.timeout`: Pool Lambda timeout in seconds.<br/>- `lambda.pool.reserved_concurrent_executions`: Reserved concurrency for the pool Lambda. Use `-1` for unreserved concurrency.<br/>- `lambda.pool.config`: Scheduled target pool sizes. An empty list disables the pool component.<br/>- `lambda.pool.config[].schedule_expression`: Scheduler expression that activates the target size.<br/>- `lambda.pool.config[].schedule_expression_timezone`: Optional IANA time zone used to evaluate the schedule.<br/>- `lambda.pool.config[].size`: Desired number of runners for the schedule.<br/>- `lambda.pool.include_busy_runners`: Includes busy runners when reconciling scheduled pool capacity.<br/>- `lambda.pool.runner_owner`: Optional GitHub organization or repository owner used for pooled runners.<br/>- `lambda.pool.tags`: Tags applied within pool resource scopes after common provider tags.<br/>- `job_retry.enabled`: Creates the retry queue, Lambda function, event-source mapping, and related IAM resources.<br/>- `job_retry.delay_in_seconds`: Initial delay before a queued-job retry check.<br/>- `job_retry.delay_backoff`: Multiplier applied to the delay after each unsuccessful check.<br/>- `job_retry.max_attempts`: Maximum retry-check attempts before the message is no longer republished.<br/>- `job_retry.tags`: Tags applied within job-retry resource scopes after common provider tags.<br/>- `job_retry.lambda.memory_size`: Memory allocated to the job-retry Lambda in MB.<br/>- `job_retry.lambda.reserved_concurrent_executions`: Reserved concurrency for job retry. Use `-1` for unreserved concurrency.<br/>- `job_retry.lambda.timeout`: Job-retry Lambda timeout in seconds and visibility timeout for its retry queue. | <pre>object({<br/> runner = object({<br/> boot_time_in_minutes = number<br/> ephemeral = bool<br/> jit_config_enabled = optional(bool, null)<br/> maximum_count = number<br/> })<br/> github = object({<br/> organization_runners = bool<br/> })<br/> queue = object({<br/> build = object({<br/> arn = string<br/> url = string<br/> })<br/> kms_key_id = optional(string, null)<br/> tags = optional(map(string), {})<br/> })<br/> lambda = object({<br/> artifact = object({<br/> zip = optional(string, null)<br/> s3 = optional(object({<br/> key = string<br/> object_version = optional(string, null)<br/> }), null)<br/> })<br/> scale = object({<br/> up = object({<br/> memory_size = number<br/> timeout = number<br/> reserved_concurrent_executions = number<br/> job_queued_check_enabled = optional(bool, null)<br/> event_source_mapping = object({<br/> batch_size = number<br/> maximum_batching_window_in_seconds = number<br/> })<br/> tags = optional(map(string), {})<br/> })<br/> down = object({<br/> memory_size = number<br/> timeout = number<br/> schedule_expression = string<br/> minimum_running_time_in_minutes = optional(number, null)<br/> idle_config = list(object({<br/> cron = string<br/> timeZone = string<br/> idleCount = number<br/> evictionStrategy = string<br/> }))<br/> tags = optional(map(string), {})<br/> })<br/> })<br/> pool = object({<br/> memory_size = number<br/> timeout = number<br/> reserved_concurrent_executions = number<br/> config = list(object({<br/> schedule_expression = string<br/> schedule_expression_timezone = optional(string)<br/> size = number<br/> }))<br/> include_busy_runners = bool<br/> runner_owner = optional(string, null)<br/> tags = optional(map(string), {})<br/> })<br/> })<br/> job_retry = object({<br/> enabled = bool<br/> delay_in_seconds = number<br/> delay_backoff = number<br/> max_attempts = number<br/> tags = optional(map(string), {})<br/> lambda = object({<br/> memory_size = number<br/> reserved_concurrent_executions = number<br/> timeout = number<br/> })<br/> })<br/> })</pre> | n/a | yes |
0 commit comments