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  }