The concert service has 11 resource kinds, each listed below with its endpoints, fields, and dependencies. Values resolve late, so you reference another resource with ${kind.ref_name}. For defaults, validation rules, and examples, run wxctl explain <kind>.
  • Envelope: A config is one or more YAML documents separated by ---. Each has top-level kind and ref_name, then the fields below at the top level (not nested under spec).
  • ref_name: Unique handle for this resource within the config. Used to reference it from other resources, then stripped before the API call (not a schema field).
  • References: Reference another resource by its ref_name: ${<kind>.<ref_name>} resolves to its id, ${<kind>.<ref_name>.<field>} to a specific field. Values resolve late, at plan/apply time.

concert_application

A Concert application is the top-level managed entity in IBM Concert’s inventory, the unit Concert tracks for risk posture, vulnerabilities, dependencies, and resilience. Runs on Software · ID field id Endpoints
OperationMethodPath
CreatePOST/core/api/v1/applications
ReadGET/core/api/v1/applications/{id}
ListGET/core/api/v1/applications
UpdatePATCH/core/api/v1/applications/{id}
DeleteDELETE/core/api/v1/applications/{id}
Fields
FieldTypeRequiredDescription
namestringOptionalApplication display name.
versionstringOptionalApplication version label.
descriptionstringOptionalFree-text application description.
samplebooleanOptionalWhether this is a sample application.
criticalityintegerOptionalBusiness criticality score.
data_impact_riskintegerOptionalData-impact risk score.
business_namestringOptionalOwning business name.
tagsarray<string>OptionalApplication tags. Writable on create but enriched/reshaped by the API on read (EntityTags in, TagsPrototype out), so excluded from state_fields to avoid phantom drift.
business_unitsobjectOptionalBusiness-unit association object. Writable on create; server-augmented on read, so excluded from state_fields.
propertiesobjectOptionalApplication release properties object. Writable on create; server-augmented on read, so excluded from state_fields.
associationsobjectOptionalApplication associations object. Writable on create; server-augmented on read, so excluded from state_fields.
Computed outputs: id, status, created_on, last_updated_on, application_release_id. Consumers
  • concert_automation_rule.component_id (optional)
  • concert_compliance_profile.application_releases_ids (optional)

concert_automation_rule

A Concert automation rule fires an action (e.g. auto-create an ITSM ticket) when a use-case condition is met, the declarative half of Concert’s auto-ticketing. Runs on Software · ID field id Endpoints
OperationMethodPath
CreatePOST/core/api/v1/automation_rules
ReadGET/core/api/v1/automation_rules/{id}
ListGET/core/api/v1/automation_rules
UpdatePATCH/core/api/v1/automation_rules/{id}
DeleteDELETE/core/api/v1/automation_rules
Fields
FieldTypeRequiredDescription
namestringRequiredAutomation-rule display name (matched on during discovery).
use_casestringRequiredUse-case condition that triggers the rule (server-enforced enum).
actionstringRequiredAction taken when the rule fires (e.g. create a ticket).
descriptionstringOptionalFree-text automation-rule description.
statusstringOptionalRule status. Writable on create but server-managed on read (required in the read model), so excluded from state_fields to avoid phantom Update{} drift.
component_typestringOptionalType of the component the rule scopes to. Required (together with component_id) by the live API, a rule with neither set 400s (“This component type is invalid. Provide a valid component type.”). Both application and environment are accepted by create-time validation, but live-verified on 3.0.0.0: a rule scoped to application returns 201 and a real id, yet the resulting rule is then permanently unlistable/unretrievable (LIST always returns it empty, GET-by-id 400s “The automation rule can’t be retrieved.”), a Concert platform indexing gap, not a wxctl bug (confirmed via direct API calls, independent of wxctl). environment is the only value confirmed to round-trip cleanly (create, LIST, GET, and collection DELETE all see the rule), use it for a rule that must be planned/discovered.
component_idstringOptionalId of the component the rule scopes to. Required (together with component_type) by the live API and RBAC-checked, a syntactically-valid but nonexistent id 403s (live-verified on 3.0.0.0). This top-level reference produces the DAG edge → the referenced concert_application or concert_environment is ordered before the rule and ${<kind>.<ref>.id} resolves to the created id. Prefer a concert_environment reference (component_type: environment), a concert_application reference (component_type: application) creates successfully but leaves the rule permanently unlistable (see component_type’s description).
credential_idstringOptionalId of the concert_credential the rule’s action authenticates with (e.g. ITSM creds). This top-level reference produces the DAG edge → the credential is ordered before the rule and ${concert_credential.<ref>.id} resolves to the created id.
target_service_detailsobjectOptionalTarget ITSM service connection details (IngestionjobAutomationPrototypeDetail: repository, project_key, organization, assignee, channel_id, …). May carry connection secrets, so the whole object is marked sensitive → redacted at emission (sensitive_paths → target_service_details). Server-augmented on read, so excluded from state_fields to avoid phantom drift.
optionobjectOptionalRule option detail (AutomationRuleOptionPrototypeDetail: risk_score, cvss_score, priority, expires_in, …). Passed through on create; server-augmented on read, so excluded from state_fields.
Computed outputs: id, created_on, created_by. Depends on
  • component_idconcert_application (optional)
  • component_idconcert_environment (optional)
  • credential_idconcert_credential (optional)

concert_compliance_profile

A Concert compliance profile is a named, versioned set of controls (drawn from a pre-imported compliance catalog) that Concert evaluates applications against to score compliance posture, the declarative half of Concert’s compliance / AI-governance surface (sovereign, CSCF/ISCF, etc.). Runs on Software · ID field uuid Endpoints
OperationMethodPath
CreatePOST/compliance/api/v1/profiles
ReadGET/compliance/api/v1/profiles/{uuid}
ListGET/compliance/api/v1/profiles
UpdatePUT/compliance/api/v1/profiles/{uuid}
DeleteDELETE/compliance/api/v1/profiles/{uuid}
Fields
FieldTypeRequiredDescription
titlestringRequiredProfile title, the only required create field and the human label matched on during id recovery / discovery (ComplianceProfileHandler lists /profiles and matches title to recover the uuid). Assumed unique per instance (spec Q5).
descriptionstringOptionalFree-text profile description.
versionstringOptionalProfile version label.
allow_manual_assessmentbooleanOptionalWhether the profile permits manual assessment of its controls. Writable, but does NOT round-trip: Concert’s GET always reports false regardless of what create/PUT sent (live-verified on 3.0.0.0), so it is excluded from state_fields to avoid a phantom ~allow_manual_assessment Update on every re-plan.
controlsarray<object>OptionalProfile controls (ProfileControls: { catalog_id, control_ids[] }). control_ids reference control ids from a catalog imported out-of-band into Concert (/import_catalogs, a spec Non-Goal; the Phase 5 example supplies ids via ${env:…} placeholders). Server-augmented on read (catalog_info added), so excluded from state_fields to avoid phantom Update{} drift.
application_releases_idsarray<string>OptionalIds of the Concert applications (application releases) this profile scopes to. This top-level reference produces the DAG edge → each concert_application is ordered before the profile and ${concert_application.<ref>.application_release_id} resolves to the created application’s server-computed release id (spec AC4 intent). Sending the application’s own id here 500s (live-verified on 3.0.0.0); the release id succeeds. NOT echoed on read (absent from ProfileDetails), so excluded from state_fields to avoid phantom drift. (3.0.0.0 names this field application_releases_ids; the spec table’s application_ids maps onto it.)
Computed outputs: uuid, mapped_profile, last_updated_by, last_updated_on. Depends on
  • application_releases_idsconcert_application (optional)

concert_credential

A Concert credential is a named key/value secret bundle used by ingestion jobs to authenticate against source systems. Runs on Software · ID field id Endpoints
OperationMethodPath
CreatePOST/core/api/v1/credentials
ReadGET/core/api/v1/credentials/{id}
ListGET/core/api/v1/credentials
UpdatePATCH/core/api/v1/credentials/{id}
DeleteDELETE/core/api/v1/credentials
Fields
FieldTypeRequiredDescription
namestringOptionalCredential display name.
descriptionstringOptionalFree-text credential description.
typestringOptionalCredential type (the source-system connector this credential authenticates). Server-enforced enum (Concert 3.0.0.0): one of ec2, s3, jira, github, ecr, eks, service_now, kubernetes, iks, concert_workflows. NOTE: Concert validates the credential against the target system on create, so credentials[] must carry real, working keys for the chosen type (e.g. github expects access_token + base_url), a placeholder value is rejected with HTTP 400.
credentialsarray<object>OptionalKey/value credential properties. Each entry is { key, value }; value is secret and marked sensitive so it is redacted at emission (sensitive_paths → credentials.value). Excluded from state_fields: the API does not return value on read, so it cannot round-trip.
created_bystringOptionalCreator principal (audit; excluded from state_fields).
expiryintegerOptionalCredential expiry (epoch millis).
Computed outputs: id, created_on, last_updated_on. Consumers
  • concert_automation_rule.credential_id (optional)
  • concert_ingestion_job.credentials_id (optional)

concert_environment

A Concert environment is a deployment target (e.g. a cluster, region, or stage) tracked in IBM Concert’s inventory. Runs on Software · ID field id Endpoints
OperationMethodPath
CreatePOST/core/api/v1/environments
ReadGET/core/api/v1/environments/{id}
ListGET/core/api/v1/environments
UpdatePATCH/core/api/v1/environments/{id}
DeleteDELETE/core/api/v1/environments/{id}
Fields
FieldTypeRequiredDescription
namestringOptionalEnvironment display name.
descriptionstringOptionalFree-text environment description.
typestringOptionalEnvironment type. Server-enforced enum (Concert 3.0.0.0): one of ec2, eks, rosa, iks, roks, zOS, kubernetes, ocp, concert_workflows, Other.
regionstringOptionalEnvironment region.
purposestringOptionalEnvironment purpose (e.g. production, staging, dev).
tagsarray<string>OptionalEnvironment tags. Writable on create but enriched/reshaped by the API on read (EntityTags in, TagsPrototype out), so excluded from state_fields to avoid phantom drift.
Computed outputs: id, last_updated_on. Consumers
  • concert_automation_rule.component_id (optional)

concert_ingestion_job

A Concert ingestion job pulls data from a source system (authenticating with a concert_credential) into IBM Concert’s inventory on a schedule. Runs on Software · ID field id Endpoints
OperationMethodPath
CreatePOST/core/api/v1/ingestion_jobs
ReadGET/core/api/v1/ingestion_jobs/{id}
ListGET/core/api/v1/ingestion_jobs
UpdatePATCH/core/api/v1/ingestion_jobs/{id}
DeleteDELETE/core/api/v1/ingestion_jobs/{id}
Fields
FieldTypeRequiredDescription
namestringOptionalIngestion-job display name.
descriptionstringOptionalFree-text ingestion-job description.
typestringOptionalIngestion-job type (the source-system connector).
detailsobjectOptionalPolymorphic connector detail object (IngestionjobPrototypeDetails); shape varies by type. Passed through as-is on create; server-augmented on read, so excluded from state_fields to avoid phantom drift.
scheduledintegerOptionalSchedule cadence for the job (server-constrained to 0-10000; not epoch millis).
statusstringOptionalJob status. Server-derived operational state; excluded from state_fields (the API updates it independently of declared config).
enabledstringOptionalJob enablement state, the string “enabled” or “disabled” (not “true”/“false”).
credentials_idstringOptionalId of the concert_credential this job authenticates with. This top-level reference produces the DAG edge → the credential is ordered before the job and ${concert_credential.<ref>.id} resolves to the created id.
created_bystringOptionalCreator principal (audit; excluded from state_fields).
meta_dataobjectOptionalFree-form job metadata (IngestionjobMetadata). Passed through on create; server-augmented on read, so excluded from state_fields.
Computed outputs: id, created_on, last_updated_on. Depends on
  • credentials_idconcert_credential (optional)

concert_resilience_input_data_key

A Concert resilience input-data key (InputDataKeyRequest) defines a named metric input, its label, units, and data type, that resilience requirements evaluate against. Runs on Software · ID field input_data_key_id Endpoints
OperationMethodPath
CreatePOST/resilience/assessment/api/v1/input_data_keys
ReadGET/resilience/assessment/api/v1/input_data_keys/{input_data_key_id}
ListGET/resilience/assessment/api/v1/input_data_keys
UpdatePATCH/resilience/assessment/api/v1/input_data_keys/{input_data_key_id}
DeleteDELETE/resilience/assessment/api/v1/input_data_keys/{input_data_key_id}
Fields
FieldTypeRequiredDescription
namestringRequiredInput-data-key name (matched on during discovery).
labelstringRequiredHuman-readable label.
descriptionstringRequiredFree-text description (required by the API).
unitsstringRequiredMeasurement units for the metric input.
data_typestringRequiredData type of the metric input (server-enforced enum).
originstringOptionalOptional origin of the metric input.
assessment_querystringOptionalOptional query used to source the metric value.
aggregationstringOptionalOptional aggregation applied to the metric input.
metadataobjectOptionalOptional free-form metadata object. Passed through on create; server-augmented on read, so excluded from state_fields to avoid phantom Update{} drift.
Computed outputs: input_data_key_id, domain_id, is_oob, created_by, creation_ts. Consumers
  • concert_resilience_profile.input_data_keys (optional)

concert_resilience_library

A Concert resilience library (LibraryRequest) groups resilience requirements into a reusable set. Runs on Software · ID field id Endpoints
OperationMethodPath
CreatePOST/resilience/assessment/api/v1/library
ReadGET/resilience/assessment/api/v1/library/{id}
ListGET/resilience/assessment/api/v1/library
UpdatePUT/resilience/assessment/api/v1/library/{id}
DeleteDELETE/resilience/assessment/api/v1/library/{id}
Fields
FieldTypeRequiredDescription
namestringRequiredLibrary name (matched on during discovery).
labelstringRequiredHuman-readable label.
descriptionstringOptionalFree-text library description.
use_last_received_datastringOptionalComma-separated list of input-data-key NAMES evaluated against the last received data (live-verified on 3.0.0.0: a key name is required, a boolean-ish value like "true" 400s).
requirementsarray<object>OptionalResilience requirements (Requirement objects) bundled into the library. Passed through on create/PUT; server-augmented and paginated on read, so excluded from state_fields to avoid phantom Update{} drift.
Computed outputs: id, is_oob, nfr_count.

concert_resilience_posture

A Concert resilience assessment posture (GraderPostureRequest) binds a concert_resilience_profile to a target (application/deployment) and schedules its resilience assessment. Runs on Software · ID field id Endpoints
OperationMethodPath
CreatePOST/resilience/assessment/api/v1/posture
ReadGET/resilience/assessment/api/v1/posture/{id}
ListGET/resilience/assessment/api/v1/posture
UpdatePATCH/resilience/assessment/api/v1/posture/{id}
DeleteDELETE/resilience/assessment/api/v1/posture/{id}
Fields
FieldTypeRequiredDescription
namestringRequiredPosture name (matched on during discovery; immutable, PATCH cannot change it).
profile_namestringRequiredName of the concert_resilience_profile this posture assesses against. Bound BY NAME (not id), the API’s PostureRequest keys the profile by name (spec Q3). This top-level reference produces the DAG edge -> the profile is ordered before the posture and ${concert_resilience_profile.<ref>.name} resolves to the profile’s name. Immutable (create-only); on the discovered path it resolves to the literal profile name and round-trips, on the deferred path the unresolved template is skipped.
target_typestringRequiredTarget kind the posture scopes to (e.g. app_deployment). Server-enforced; not constrained here (concert convention, no allowed_values). Immutable (create-only).
target_namestringRequiredTarget name (e.g. the application) the posture assesses. Immutable (create-only).
environmentstringOptionalEnvironment name, required by the API when target_type is ‘app_deployment’. Echoed on read under the server key env_name (different key), so excluded from comparison to avoid phantom drift.
assessment_periodstringOptionalAssessment period (e.g. “week”, “day”, “latest”). One of only two fields the PATCH update verb (UpdatePostureRequest) can change -> a state_field.
commentsstringOptionalFree-text comments. One of only two fields the PATCH update verb (UpdatePostureRequest) can change -> a state_field.
Computed outputs: id, is_primary, app_name, env_name. Depends on
  • profile_nameconcert_resilience_profile (required)

concert_resilience_profile

A Concert resilience assessment profile (GraderProfileRequest) is a named set of resilience requirements, scored against metric input-data keys, that Concert evaluates to rate an application’s resilience posture. Runs on Software · ID field id Endpoints
OperationMethodPath
CreatePOST/resilience/assessment/api/v1/profile
ReadGET/resilience/assessment/api/v1/profile/{id}
ListGET/resilience/assessment/api/v1/profile
DeleteDELETE/resilience/assessment/api/v1/profile/{id}
Fields
FieldTypeRequiredDescription
namestringRequiredProfile name (matched on during discovery; immutable, no update verb).
labelstringRequiredHuman-readable label.
aggregate_criteria_typestringRequiredHow per-requirement scores aggregate into the profile score. Server-enforced enum (snippet_ref, average); not constrained here (concert convention, no allowed_values, the server validates).
requirementsarray<object>RequiredResilience requirements (ProfileRequirement objects: name, library_name, input_data_keys, criteria, …) the profile evaluates. Required by the API on create. Server-augmented and paginated on read, so excluded from comparison to avoid phantom Recreate.
descriptionstringOptionalFree-text profile description.
aggregate_criteriastringOptionalOptional aggregation snippet reference (used when aggregate_criteria_type is snippet_ref).
rating_thresholdsstringOptionalComma-separated rating thresholds (e.g. “50,75,95,100”).
expected_scorefloatOptionalOptional expected score (0-100). Excluded from comparison, a float round-trip is representation-sensitive; Phase 5 may add it once a live re-plan is verified clean.
use_last_received_datastringOptionalComma-separated list of input-data-key NAMES evaluated against the last received data (live-verified on 3.0.0.0: a key name is required, a boolean-ish value like "true" 400s).
input_data_keysstringOptionalComma-separated input-data-key NAMES the profile evaluates against. 3.0.0.0 models this as a STRING (e.g. “key_a,key_b”), NOT an array of ids, so the reference targets the key name. This top-level reference produces the DAG edge -> each concert_resilience_input_data_key is ordered before the profile (spec deliverable). Server-augmented on read (input_data_keys_count derived), so excluded from comparison to avoid phantom drift. A single ${concert_resilience_input_data_key.k.name} resolves for ordering; multi-key comma-joined refs are a Phase-5 example concern.
metadataobjectOptionalOptional free-form metadata object. Passed through on create; server-augmented on read, so excluded from comparison to avoid phantom drift.
Computed outputs: id, is_oob, nfr_count, input_data_keys_count, creation_ts, created_by. Depends on
  • input_data_keysconcert_resilience_input_data_key (optional)
Consumers
  • concert_resilience_posture.profile_name (required)

concert_source_repo

A Concert source repository is a version-controlled code repo tracked in IBM Concert’s inventory for SBOM, CVE, and dependency posture. Runs on Software · ID field id Endpoints
OperationMethodPath
CreatePOST/core/api/v1/source_repos
ReadGET/core/api/v1/source_repos/{id}
ListGET/core/api/v1/source_repos
UpdatePATCH/core/api/v1/source_repos/{id}
DeleteDELETE/core/api/v1/source_repos/{id}
Fields
FieldTypeRequiredDescription
namestringRequiredSource-repo display name.
repo_urlstringRequiredRepository URL, the stable identity used to match on discovery.
branchstringOptionalTracked branch.
commit_shastringOptionalPinned commit SHA.
tagsarray<string>OptionalRepo tags. Writable on create but enriched/reshaped by the API on read (TagsPrototype), so excluded from state_fields to avoid phantom drift.
associationsobjectOptionalRepo associations object. Writable on create; server-augmented on read, so excluded from state_fields.
propertiesarray<object>OptionalRepo inventory properties. Writable on create; server-augmented on read, so excluded from state_fields.
Computed outputs: id, created_on, last_updated_on.