@startuml
skinparam shadowing false
skinparam backgroundColor #fcfcfd
skinparam defaultFontName Helvetica
skinparam defaultFontSize 14
skinparam arrowColor #0f172a
skinparam noteBackgroundColor #fff7d6
skinparam noteBorderColor #b45309
skinparam noteFontColor #334155
skinparam roundcorner 16
title Activity - licensemanager/LicenseManagerProductLicense
skinparam activity {
  backgroundColor #f8fafc
  borderColor #0f172a
  fontColor #0f172a
  diamondBackgroundColor #e2e8f0
  diamondBorderColor #1d4ed8
  diamondFontColor #0f172a
  startColor #1d4ed8
  endColor #0f172a
  barColor #1d4ed8
}
start
:Start from shared flow\nshared/diagrams/shared-reconcile-activity.svg;
:Load desired LicenseManagerProductLicense spec\nand status from Kubernetes;
:Resolve OCI state via\nGetLicenseManagerProductLicense with\nListLicenseManagerProductLicense fallback;
:Use\nscaffold_licensemanager_licensemanagerproductlicense\nfilters compartment_id, state when OCID lookup\nor bind-versus-create needs list resolution;
if (Resource exists?) then (yes)
:Update path calls\nUpdateLicenseManagerProductLicense;
:Guard mutable fields display_name and\nforce-new fields compartment_id;
else (no)
:Create path calls\nCreateLicenseManagerProductLicense;
endif
:Run provider helper hooks\ncreate=tfresource.CreateResource,\ntfresource.WaitForWorkRequestWithErrorHandling\nentity=template action=CREATED;\nupdate=tfresource.UpdateResource;\ndelete=tfresource.DeleteResource;
:Apply repo-authored secret policy none;
:Delete path uses\nDeleteLicenseManagerProductLicense with\nrequired via GetLicenseManagerProductLicense\nor ListLicenseManagerProductLicense to DELETED\nconfirmation;
:Project required status and finalizer policy\nretain-until-confirmed-delete;
:Requeue on provisioning, updating, terminating;
stop
note right
shared diagram:
shared/diagrams/shared-reconcile-activity.svg
Start from the shared reconcile activity and
specialize provider-backed CRUD, wait, and
status-projection details here.
Controller-local activity diagrams add
list-lookup hints, secret policies, delete
handling, and open formal gaps.
archetype batch: Generated service-manager
controllers specialize the shared reconcile path
with formal runtime ownership.
service: licensemanager
slug: licensemanagerproductlicense
kind: LicenseManagerProductLicense
archetype: generated-service-manager
status/finalizer: required /
retain-until-confirmed-delete
requeue: provisioning, updating, terminating
provider states: create PROVISIONING; update
UPDATING; delete DELETING
mutable/forceNew: display_name / compartment_id
open gaps: none
Scaffold metadata only; replace with
controller-specific runtime states before
promotion.
end note
@enduml
