Skip to content

Models

Structure application models

classDiagram
    direction TB
    class OrganizationGroup {
        +int id [PK]
        +string name
        +string uuid
        +OrganizationGroup parent [FK]
    }
    class Customer {
        +int id [PK]
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +image image
        +string description
        +string name
        +string slug
        +string uuid
        +float latitude
        +float longitude
        +string vat_code
        +string vat_name
        +string vat_address
        +string country
        +string native_name
        +string abbreviation
        +string contact_details
        +string agreement_number
        +int sponsor_number
        +string email
        +string phone_number
        +string access_subnets
        +string backend_id
        +string registration_code
        +string homepage
        +string domain
        +string address
        +string postal
        +string bank_name
        +string bank_account
        +int max_service_accounts
        +datetime accounting_start_date
        +decimal default_tax_percent
        +bool blocked
        +bool archived
        +Checklist project_metadata_checklist [FK]
        +OrganizationGroup organization_groups
    }
    class ProjectType {
        +int id [PK]
        +string description
        +string name
        +string uuid
    }
    class Project {
        +int id [PK]
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +bool is_removed
        +image image
        +string description
        +string slug
        +string uuid
        +string backend_id
        +int max_service_accounts
        +string oecd_fos_2007_code
        +string name
        +date start_date
        +date end_date
        +User end_date_requested_by [FK]
        +ProjectType type [FK]
        +bool is_industry
        +Customer customer [FK]
        +string kind
    }
    Customer "*" -- "*" OrganizationGroup : organization_groups
    OrganizationGroup "*" -- "1" OrganizationGroup : parent
    Project "*" -- "1" Customer : customer
    Project "*" -- "1" ProjectType : type
    Project "*" -- "1" User : end_date_requested_by

Permissions application models

classDiagram
    direction TB
    class Role {
        +int id [PK]
        +string description
        +string uuid
        +string name
        +bool is_system_role
        +bool is_active
        +ContentType content_type [FK]
    }
    class UserRole {
        +int id [PK]
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +string uuid
        +ContentType content_type [FK]
        +int object_id
        +User user [FK]
        +Role role [FK]
        +User created_by [FK]
        +datetime expiration_time
        +bool is_active
    }
    class RolePermission {
        +int id [PK]
        +Role role [FK]
        +string permission
    }
    RolePermission "*" -- "1" Role : role
    UserRole "*" -- "1" Role : role
    UserRole "*" -- "1" User : created_by
    UserRole "*" -- "1" User : user

Marketplace category models

classDiagram
    direction TB
    class CategoryGroup {
        +int id [PK]
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +string uuid
        +string title
        +file icon
        +string description
    }
    class Category {
        +int id [PK]
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +string uuid
        +string backend_id
        +string title
        +file icon
        +string description
        +bool default_vm_category
        +bool default_volume_category
        +bool default_tenant_category
        +CategoryGroup group [FK]
    }
    class CategoryColumn {
        +int id [PK]
        +string uuid
        +Category category [FK]
        +int index
        +string title
        +string attribute
        +string widget
    }
    class CategoryComponent {
        +int id [PK]
        +string description
        +string uuid
        +string name
        +string type
        +string measured_unit
        +Category category [FK]
    }
    class CategoryComponentUsage {
        +int id [PK]
        +ContentType content_type [FK]
        +int object_id
        +CategoryComponent component [FK]
        +date date
        +BigIntegerField reported_usage
        +BigIntegerField fixed_usage
    }
    Category "*" -- "1" CategoryGroup : group
    CategoryColumn "*" -- "1" Category : category
    CategoryComponent "*" -- "1" Category : category
    CategoryComponentUsage "*" -- "1" CategoryComponent : component

Marketplace catalog models

classDiagram
    direction TB
    class Section {
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +string key [PK]
        +string title
        +Category category [FK]
        +bool is_standalone
    }
    class Attribute {
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +string key [PK]
        +string title
        +Section section [FK]
        +string type
        +bool required
        +JSONField default
    }
    class AttributeOption {
        +int id [PK]
        +Attribute attribute [FK]
        +string key
        +string title
    }
    class Offering {
        +int id [PK]
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +image image
        +string description
        +string name
        +string slug
        +string uuid
        +string backend_id
        +ContentType content_type [FK]
        +int object_id
        +JSONField backend_metadata
        +float latitude
        +float longitude
        +string datacite_doi
        +int citation_count
        +string error_message
        +file thumbnail
        +string remote_image_uuid
        +string full_description
        +string vendor_details
        +string getting_started
        +string integration_guide
        +Category category [FK]
        +Checklist compliance_checklist [FK]
        +Customer customer [FK]
        +Project project [FK]
        +Offering parent [FK]
        +JSONField attributes
        +JSONField options
        +JSONField resource_options
        +JSONField plugin_options
        +JSONField secret_options
        +string privacy_policy_link
        +string country
        +string type
        +FSMIntegerField state
        +string paused_reason
        +bool shared
        +bool billable
        +bool support_per_user_consumption_limitation
        +string access_url
        +OrganizationGroup organization_groups
    }
    class OfferingComponent {
        +int id [PK]
        +string description
        +string uuid
        +string backend_id
        +ContentType content_type [FK]
        +int object_id
        +string article_code
        +string name
        +string type
        +string measured_unit
        +Offering offering [FK]
        +CategoryComponent parent [FK]
        +string billing_type
        +string limit_period
        +int limit_amount
        +int unit_factor
        +int max_value
        +int min_value
        +int max_available_limit
        +bool is_boolean
        +int default_limit
    }
    Attribute "*" -- "1" Section : section
    AttributeOption "*" -- "1" Attribute : attribute
    Offering "*" -- "1" Offering : parent
    OfferingComponent "*" -- "1" Offering : offering

Marketplace provisioning models

classDiagram
    direction TB
    class Plan {
        +int id [PK]
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +string description
        +string name
        +string uuid
        +string backend_id
        +ContentType content_type [FK]
        +int object_id
        +decimal unit_price
        +string unit
        +string article_code
        +Offering offering [FK]
        +bool archived
        +int max_amount
        +OrganizationGroup organization_groups
    }
    class PlanComponent {
        +int id [PK]
        +Plan plan [FK]
        +OfferingComponent component [FK]
        +int amount
        +decimal price
        +decimal future_price
    }
    class Resource {
        +int id [PK]
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +string description
        +string name
        +string slug
        +string uuid
        +string error_message
        +string error_traceback
        +datetime last_sync
        +string backend_id
        +ContentType content_type [FK]
        +int object_id
        +JSONField backend_metadata
        +decimal cost
        +Plan plan [FK]
        +JSONField limits
        +Offering offering [FK]
        +JSONField attributes
        +date end_date
        +User end_date_requested_by [FK]
        +FSMIntegerField state
        +Project project [FK]
        +Resource parent [FK]
        +JSONField report
        +JSONField options
        +JSONField current_usages
        +string effective_id
        +bool downscaled
        +bool restrict_member_access
        +bool paused
    }
    class Order {
        +int id [PK]
        +AutoCreatedField created
        +AutoLastModifiedField modified
        +string uuid
        +string error_message
        +string error_traceback
        +string backend_id
        +decimal cost
        +Plan plan [FK]
        +JSONField limits
        +int type
        +Offering offering [FK]
        +JSONField attributes
        +Plan old_plan [FK]
        +Project project [FK]
        +Resource resource [FK]
        +FSMIntegerField state
        +string output
        +User created_by [FK]
        +User consumer_reviewed_by [FK]
        +datetime consumer_reviewed_at
        +User provider_reviewed_by [FK]
        +datetime provider_reviewed_at
        +string callback_url
        +string termination_comment
        +datetime completed_at
    }
    Order "*" -- "1" Plan : old_plan
    Order "*" -- "1" Plan : plan
    Order "*" -- "1" Resource : resource
    PlanComponent "*" -- "1" Plan : plan
    Resource "*" -- "1" Plan : plan
    Resource "*" -- "1" Resource : parent