# Domain ```mermaid classDiagram class Devops { <> name module stage build_dir_name project_root_path } class Image { image_dockerhub_user image_dockerhub_password image_publish_tag image_build_dir_name image_use_package_common_files image_build_commons_path image_build_commons_dir_name } class C4k { c4k_executabel_name c4k_mixin_config c4k_mixin_auth } class DnsRecord { fqdn ipv4 ipv6 } class Release { release_type release_main_branch release_current_branch version } class Credentials { } class CredentialMapping { name gopass_path gopass_field gopass_type() name_for_input() name_for_environment () } class BuildFile { <> file_path [id] content build_file_type() get_version() set_version(version) } class Version { to_string() create_major() create_minor() create_patch() create_bump(snapshot_suffix) } Devops *-- "0..1" Image: spcialized_builds Devops *-- "0..1" C4k: spcialized_builds Devops *-- "0..1" Release: mixins Devops *-- "0..1" Credentials: mixins Release o-- "0..1" BuildFile: primary_build_file Release o-- "0..n" BuildFile: secondary_build_files BuildFile *-- "1" Version C4k *-- DnsRecord Credentials *-- "0..n" CredentialMapping: mappings ``` # Infrastructure ```mermaid classDiagram class ProjectRepository { get_devops(project): Devops set_devops(project, build) } ```