pulumi/developer-docs/providers/resource-lifecycle.uml
Pat Gavlin 98f73cf1ed
Start in on developer documentation. (#7839)
Developer documentation is written in Markdown and can be built into
HTML, PDF, etc. using Sphinx. Diagrams are written in PlantUML and
rendered as SVGs. All developer docs live in the `developer-docs` folder
under the root of the repository.
2021-08-25 15:18:13 -07:00

53 lines
2 KiB
Plaintext

@startuml
hide empty description
[*] --> Read: read existing resource
[*] --> Import: import existing resource
[*] --> Manage: manage resource
state Read {
state "Read(reg.URN, reg.ID, reg.State)" as read_read
read_read --> [*]
}
state Import {
state "Read(reg.URN, reg.ID)" as import_read
state "Check(reg.URN, reg.Inputs, read.Inputs)" as import_check
state "Diff(reg.URN, check.Inputs, read.State)" as import_diff
import_read --> import_check
import_check --> import_diff
import_diff --> [*]
}
state Manage {
state "Check(reg.URN, reg.Inputs, last?.Inputs)" as manage_check
state "Create(reg.URN, check.Inputs)" as manage_create
state "Diff(reg.URN, check.Inputs, last.ID, last.State)" as manage_diff
state "Update(reg.URN, last.ID, last.State)" as manage_update
state "Check(reg.URN, reg.Inputs)" as manage_replace_check
state "Create(reg.URN, reg.Inputs)" as manage_replace_create_before_delete
state "Delete(reg.URN, last.ID, last.State)" as manage_replace_delete_after_create
state "Delete dependents" as manage_replace_delete_dependents
state "Delete(reg.URN, last.ID, last.State)" as manage_replace_delete_before_create
state "Create(reg.URN, check.Inputs)" as manage_replace_create_after_delete
manage_replace_delete_after_create: note that this step happens once the Pulumi program has exited
manage_check --> manage_create: no last state
manage_check --> manage_diff: has last state
manage_diff --> manage_update: can be updated
manage_diff --> manage_replace_check: must be replaced
manage_replace_check --> manage_replace_create_before_delete: create before delete
manage_replace_check --> manage_replace_delete_dependents: delete after craete
manage_replace_create_before_delete --> manage_replace_delete_after_create
manage_replace_delete_dependents --> manage_replace_delete_before_create
manage_replace_delete_before_create --> manage_replace_create_after_delete
manage_create --> [*]
manage_update --> [*]
manage_replace_delete_after_create --> [*]
manage_replace_create_after_delete --> [*]
}
@enduml