github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/model/application.go (about) 1 package model 2 3 import ( 4 "encoding/json" 5 "time" 6 7 "github.com/kyma-incubator/compass/components/director/pkg/resource" 8 9 "github.com/kyma-incubator/compass/components/director/pkg/pagination" 10 ) 11 12 // Application missing godoc 13 type Application struct { 14 ProviderName *string 15 Name string 16 Description *string 17 Status *ApplicationStatus 18 HealthCheckURL *string 19 IntegrationSystemID *string 20 ApplicationTemplateID *string 21 TenantBusinessTypeID *string 22 SystemNumber *string 23 LocalTenantID *string 24 BaseURL *string `json:"baseUrl"` 25 ApplicationNamespace *string `json:"applicationNamespace"` 26 OrdLabels json.RawMessage `json:"labels"` 27 CorrelationIDs json.RawMessage `json:"correlationIds,omitempty"` 28 Type string `json:"-"` 29 // SystemStatus shows whether the on-premise system is reachable or unreachable 30 SystemStatus *string 31 Tags json.RawMessage `json:"tags"` 32 DocumentationLabels json.RawMessage `json:"documentationLabels"` 33 34 *BaseEntity 35 } 36 37 // GetType returns Type application 38 func (*Application) GetType() resource.Type { 39 return resource.Application 40 } 41 42 // SetFromUpdateInput missing godoc 43 func (app *Application) SetFromUpdateInput(update ApplicationUpdateInput, timestamp time.Time) { 44 if app.Status == nil { 45 app.Status = &ApplicationStatus{} 46 } 47 app.Status.Condition = getApplicationStatusConditionOrDefault(update.StatusCondition) 48 app.Status.Timestamp = timestamp 49 app.SetUpdatedAt(timestamp) 50 51 if update.Description != nil { 52 app.Description = update.Description 53 } 54 if update.HealthCheckURL != nil { 55 app.HealthCheckURL = update.HealthCheckURL 56 } 57 if update.IntegrationSystemID != nil { 58 app.IntegrationSystemID = update.IntegrationSystemID 59 } 60 if update.ProviderName != nil { 61 app.ProviderName = update.ProviderName 62 } 63 if update.BaseURL != nil { 64 app.BaseURL = update.BaseURL 65 } 66 if update.ApplicationNamespace != nil { 67 app.ApplicationNamespace = update.ApplicationNamespace 68 } 69 if update.OrdLabels != nil { 70 app.OrdLabels = update.OrdLabels 71 } 72 if update.CorrelationIDs != nil { 73 app.CorrelationIDs = update.CorrelationIDs 74 } 75 if update.SystemStatus != nil { 76 app.SystemStatus = update.SystemStatus 77 } 78 if update.LocalTenantID != nil { 79 app.LocalTenantID = update.LocalTenantID 80 } 81 if update.Tags != nil { 82 app.Tags = update.Tags 83 } 84 if update.DocumentationLabels != nil { 85 app.DocumentationLabels = update.DocumentationLabels 86 } 87 } 88 89 // ApplicationStatus missing godoc 90 type ApplicationStatus struct { 91 Condition ApplicationStatusCondition 92 Timestamp time.Time 93 } 94 95 // ApplicationStatusCondition missing godoc 96 type ApplicationStatusCondition string 97 98 const ( 99 // ApplicationStatusConditionInitial missing godoc 100 ApplicationStatusConditionInitial ApplicationStatusCondition = "INITIAL" 101 // ApplicationStatusConditionConnected missing godoc 102 ApplicationStatusConditionConnected ApplicationStatusCondition = "CONNECTED" 103 // ApplicationStatusConditionFailed missing godoc 104 ApplicationStatusConditionFailed ApplicationStatusCondition = "FAILED" 105 // ApplicationStatusConditionCreating missing godoc 106 ApplicationStatusConditionCreating ApplicationStatusCondition = "CREATING" 107 // ApplicationStatusConditionCreateFailed missing godoc 108 ApplicationStatusConditionCreateFailed ApplicationStatusCondition = "CREATE_FAILED" 109 // ApplicationStatusConditionCreateSucceeded missing godoc 110 ApplicationStatusConditionCreateSucceeded ApplicationStatusCondition = "CREATE_SUCCEEDED" 111 // ApplicationStatusConditionUpdating missing godoc 112 ApplicationStatusConditionUpdating ApplicationStatusCondition = "UPDATING" 113 // ApplicationStatusConditionUpdateFailed missing godoc 114 ApplicationStatusConditionUpdateFailed ApplicationStatusCondition = "UPDATE_FAILED" 115 // ApplicationStatusConditionUpdateSucceeded missing godoc 116 ApplicationStatusConditionUpdateSucceeded ApplicationStatusCondition = "UPDATE_SUCCEEDED" 117 // ApplicationStatusConditionDeleting missing godoc 118 ApplicationStatusConditionDeleting ApplicationStatusCondition = "DELETING" 119 // ApplicationStatusConditionDeleteFailed missing godoc 120 ApplicationStatusConditionDeleteFailed ApplicationStatusCondition = "DELETE_FAILED" 121 // ApplicationStatusConditionDeleteSucceeded missing godoc 122 ApplicationStatusConditionDeleteSucceeded ApplicationStatusCondition = "DELETE_SUCCEEDED" 123 // ApplicationStatusConditionUnpairing Status condition when an application is being unpairing 124 ApplicationStatusConditionUnpairing ApplicationStatusCondition = "UNPAIRING" 125 // ApplicationStatusConditionUnpairFailed Status condition when an application has failed to unpair 126 ApplicationStatusConditionUnpairFailed ApplicationStatusCondition = "UNPAIR_FAILED" 127 ) 128 129 // ApplicationPage missing godoc 130 type ApplicationPage struct { 131 Data []*Application 132 PageInfo *pagination.Page 133 TotalCount int 134 } 135 136 // ApplicationRegisterInput missing godoc 137 type ApplicationRegisterInput struct { 138 Name string 139 ProviderName *string 140 Description *string 141 Labels map[string]interface{} 142 HealthCheckURL *string 143 Webhooks []*WebhookInput 144 Bundles []*BundleCreateInput 145 IntegrationSystemID *string 146 TenantBusinessTypeID *string 147 StatusCondition *ApplicationStatusCondition 148 BaseURL *string 149 ApplicationNamespace *string 150 SystemNumber *string 151 OrdLabels json.RawMessage 152 CorrelationIDs json.RawMessage 153 SystemStatus *string 154 Tags json.RawMessage 155 DocumentationLabels json.RawMessage 156 LocalTenantID *string 157 } 158 159 // ApplicationRegisterInputWithTemplate missing godoc 160 type ApplicationRegisterInputWithTemplate struct { 161 ApplicationRegisterInput 162 TemplateID string 163 } 164 165 // ToApplication missing godoc 166 func (i *ApplicationRegisterInput) ToApplication(timestamp time.Time, id string) *Application { 167 if i == nil { 168 return nil 169 } 170 171 return &Application{ 172 Name: i.Name, 173 Description: i.Description, 174 HealthCheckURL: i.HealthCheckURL, 175 IntegrationSystemID: i.IntegrationSystemID, 176 TenantBusinessTypeID: i.TenantBusinessTypeID, 177 ProviderName: i.ProviderName, 178 Status: &ApplicationStatus{ 179 Condition: getApplicationStatusConditionOrDefault(i.StatusCondition), 180 Timestamp: timestamp, 181 }, 182 BaseURL: i.BaseURL, 183 ApplicationNamespace: i.ApplicationNamespace, 184 OrdLabels: i.OrdLabels, 185 CorrelationIDs: i.CorrelationIDs, 186 SystemNumber: i.SystemNumber, 187 LocalTenantID: i.LocalTenantID, 188 SystemStatus: i.SystemStatus, 189 Tags: i.Tags, 190 DocumentationLabels: i.DocumentationLabels, 191 BaseEntity: &BaseEntity{ 192 ID: id, 193 Ready: true, 194 }, 195 } 196 } 197 198 func getApplicationStatusConditionOrDefault(in *ApplicationStatusCondition) ApplicationStatusCondition { 199 statusCondition := ApplicationStatusConditionInitial 200 if in != nil { 201 statusCondition = *in 202 } 203 204 return statusCondition 205 } 206 207 // ApplicationUpdateInput missing godoc 208 type ApplicationUpdateInput struct { 209 ProviderName *string 210 Description *string 211 HealthCheckURL *string 212 IntegrationSystemID *string 213 StatusCondition *ApplicationStatusCondition 214 BaseURL *string 215 ApplicationNamespace *string 216 OrdLabels json.RawMessage 217 CorrelationIDs json.RawMessage 218 SystemStatus *string 219 Tags json.RawMessage 220 DocumentationLabels json.RawMessage 221 LocalTenantID *string 222 } 223 224 // ApplicationWithLabel missing godoc 225 type ApplicationWithLabel struct { 226 App *Application 227 SccLabel *Label 228 }