...

Source file src/edge-infra.dev/pkg/edge/api/graph/model/models_gen.go

Documentation: edge-infra.dev/pkg/edge/api/graph/model

     1  // Code generated by github.com/99designs/gqlgen, DO NOT EDIT.
     2  
     3  package model
     4  
     5  import (
     6  	"fmt"
     7  	"io"
     8  	"strconv"
     9  
    10  	"github.com/google/uuid"
    11  )
    12  
    13  // Define base interface for CombinedStatus for cluster(s)
    14  // To-do: @qh185008 Add appliedVersion and
    15  //
    16  //	@kz250070 add clusterStatus
    17  type ICombinedStatus interface {
    18  	IsICombinedStatus()
    19  	GetInfraStatus() *InfraStatus
    20  	GetClusterStatus() *ClusterStatus
    21  	GetEvents() []*Event
    22  }
    23  
    24  // Define base interface for status messages for cluster(s)
    25  type IStatus interface {
    26  	IsIStatus()
    27  	GetMessage() string
    28  	GetStatus() string
    29  }
    30  
    31  // APIStatusSummary is the value type of GetAPIHealthStatus query
    32  type APIStatusSummary struct {
    33  	BspAPI  *bool `json:"bspAPI,omitempty"`
    34  	KubeAPI *bool `json:"kubeAPI,omitempty"`
    35  	Bff     *bool `json:"bff,omitempty"`
    36  }
    37  
    38  // APIVersion is the response for the apiVersion api
    39  type APIVersion struct {
    40  	// downloadLinks is a map of available downloads for the cli
    41  	DownloadLinks map[string]interface{} `json:"downloadLinks"`
    42  	// downloadCommands is a map of available gsutil download command for cli
    43  	DownloadCommands map[string]interface{} `json:"downloadCommands"`
    44  	// commit is commit this version of the api was built on
    45  	Commit string `json:"commit"`
    46  	// semVar is the semVar of the api build
    47  	SemVar string `json:"semVar"`
    48  	// releaseCandidate is boolean that if marked true means this api version is a release candidate
    49  	ReleaseCandidate bool `json:"releaseCandidate"`
    50  	// timestamp is the time the api was build
    51  	Timestamp string `json:"timestamp"`
    52  }
    53  
    54  type Action struct {
    55  	ActionID      string       `json:"actionID"`
    56  	Action        string       `json:"action"`
    57  	Time          string       `json:"time"`
    58  	Status        ActionStatus `json:"status"`
    59  	TenantEdgeID  string       `json:"tenantEdgeID"`
    60  	BannerEdgeID  *string      `json:"bannerEdgeID,omitempty"`
    61  	ClusterEdgeID *string      `json:"clusterEdgeID,omitempty"`
    62  	Username      string       `json:"username"`
    63  	Input         string       `json:"input"`
    64  	BatchID       *string      `json:"batchID,omitempty"`
    65  	Error         *string      `json:"error,omitempty"`
    66  }
    67  
    68  type Actions struct {
    69  	Edges    []*Action `json:"edges,omitempty"`
    70  	PageInfo *PageInfo `json:"pageInfo"`
    71  }
    72  
    73  // Address is the value type of Address of a site
    74  type Address struct {
    75  	// city value of Address of the site
    76  	City *string `json:"city,omitempty"`
    77  	// country value of Address of the site
    78  	Country *string `json:"country,omitempty"`
    79  	// postalCode value of Address of the site
    80  	PostalCode *string `json:"postalCode,omitempty"`
    81  	// state value of Address of the site
    82  	State *string `json:"state,omitempty"`
    83  	// street value of Address of the site
    84  	Street *string `json:"street,omitempty"`
    85  }
    86  
    87  // AddressInput is the input type of Address of a site
    88  type AddressInput struct {
    89  	// city value of Address of the site
    90  	City *string `json:"city,omitempty"`
    91  	// country value of Address of the site
    92  	Country *string `json:"country,omitempty"`
    93  	// postalCode value of Address of the site
    94  	PostalCode *string `json:"postalCode,omitempty"`
    95  	// state value of Address of the site
    96  	State *string `json:"state,omitempty"`
    97  	// street value of Address of the site
    98  	Street *string `json:"street,omitempty"`
    99  }
   100  
   101  // ArtifactCompatibility is a list of compatible artifacts and backwards compatibility for a given artifact
   102  type ArtifactCompatibility struct {
   103  	// Artifact name and version
   104  	Artifact *ArtifactVersion `json:"artifact"`
   105  	// Backwards compatibility for an artifact
   106  	NthIndex int `json:"nthIndex"`
   107  	// List of compatible artifacts and their respective versions
   108  	CompatibleArtifacts []*ArtifactVersion `json:"compatibleArtifacts"`
   109  }
   110  
   111  // ArtifactCompatibilityPayload is the input list of compatible artifacts and backwards compatibility for a given artifact
   112  type ArtifactCompatibilityPayload struct {
   113  	// Input payload for artifact name and version
   114  	Artifact *ArtifactInput `json:"artifact"`
   115  	// Backwards compatibility for an artifact
   116  	NthIndex *int `json:"nthIndex,omitempty"`
   117  	// Input list of compatible artifacts and their respective versions
   118  	CompatibleArtifacts []*ArtifactInput `json:"compatibleArtifacts"`
   119  }
   120  
   121  // ArtifactInput is a reference to an OCI artifact
   122  type ArtifactInput struct {
   123  	// Input payload for artifact name
   124  	Name string `json:"name"`
   125  	// Input payload for artifact version
   126  	Version string `json:"version"`
   127  }
   128  
   129  // ArtifactRegistry represents an artifact registry in a banner
   130  type ArtifactRegistry struct {
   131  	// The unique identifier for the artifact registry
   132  	RegistryEdgeID string `json:"registryEdgeId"`
   133  	// The ID of the banner the artifact registry is a part of
   134  	BannerEdgeID string `json:"bannerEdgeId"`
   135  	// Description of the artifact registry
   136  	Description *string `json:"description,omitempty"`
   137  	// URL of the artifact registry
   138  	URL string `json:"url"`
   139  }
   140  
   141  // ArtifactRegistryCreateInput is the input type for the createArtifactRegistry mutation
   142  type ArtifactRegistryCreateInput struct {
   143  	// The ID of the banner the artifact registry is a part of
   144  	BannerEdgeID string `json:"bannerEdgeId"`
   145  	// Description of the artifact registry
   146  	Description *string `json:"description,omitempty"`
   147  	// URL of the artifact registry
   148  	URL string `json:"url"`
   149  }
   150  
   151  // ArtifactRegistryUpdateInput is the input type for the updateArtifactRegistry mutation
   152  type ArtifactRegistryUpdateInput struct {
   153  	// Description of the artifact registry
   154  	Description *string `json:"description,omitempty"`
   155  	// URL of the artifact registry
   156  	URL string `json:"url"`
   157  }
   158  
   159  // Artifact is a reference to an OCI artifact
   160  type ArtifactVersion struct {
   161  	Name    string `json:"name"`
   162  	Version string `json:"version"`
   163  }
   164  
   165  // Attributes is the value type of Attributes of a site
   166  type Attributes struct {
   167  	// key value of Attributes of the site
   168  	Key *string `json:"key,omitempty"`
   169  	// value of Attributes of the site
   170  	Value *string `json:"value,omitempty"`
   171  }
   172  
   173  // AttributesInput is the input type of Attributes of a site
   174  type AttributesInput struct {
   175  	// key value of Attributes of the site
   176  	Key *string `json:"key,omitempty"`
   177  	// value of Attributes of the site
   178  	Value *string `json:"value,omitempty"`
   179  }
   180  
   181  // AuthPayload is the value type of Login mutation
   182  type AuthPayload struct {
   183  	// access token from bsl used when making service calls
   184  	Token string `json:"token"`
   185  	// first name of the user to login
   186  	FirstName *string `json:"firstName,omitempty"`
   187  	// full name of the user to login
   188  	FullName string `json:"fullName"`
   189  	// roles that have been granted to the user
   190  	Roles []string `json:"roles,omitempty"`
   191  	// All banners that the user is allowed to access. This includes all banners in
   192  	// an org if a user is an org admin
   193  	Banners []*Banner `json:"banners,omitempty"`
   194  	// a boolean indicating whether the credentials are expired and must be reset
   195  	CredentialsExpired bool `json:"credentialsExpired"`
   196  	// maximum time, in minutes, before the token expires
   197  	SessionTime float64 `json:"sessionTime"`
   198  	// organization user is logged into
   199  	Organization string `json:"organization"`
   200  }
   201  
   202  // Organization is the value type of the GetOrganizations and Organization queries
   203  type Banner struct {
   204  	// Name is the name of the banner
   205  	Name string `json:"name"`
   206  	// Description is the description of the banner in bsl
   207  	Description *string `json:"description,omitempty"`
   208  	// id is the bsl id of the banner
   209  	BannerBSLId string `json:"bannerBSLId"`
   210  	// id is the edge id of the banner
   211  	BannerEdgeID string `json:"bannerEdgeId"`
   212  	// Type corresponds to the BSP type i.e either an enterprise unit type eu or sub organization
   213  	BannerType   string `json:"bannerType"`
   214  	ProjectID    string `json:"projectId"`
   215  	TenantEdgeID string `json:"tenantEdgeId"`
   216  	// Mismatch information about the Banner
   217  	MismatchInfo []string `json:"mismatchInfo,omitempty"`
   218  	// IP for accessing touchpoints via VNC
   219  	RemoteAccessIP string `json:"remoteAccessIp"`
   220  	// Status of the banner
   221  	BannerStatus *BannerStatus `json:"bannerStatus"`
   222  	// bsl data has synced to the banner
   223  	BslDataSynced *bool `json:"bslDataSynced,omitempty"`
   224  	// bsl data entity types that were synced
   225  	BslEntityTypes []string `json:"bslEntityTypes,omitempty"`
   226  	// banner opt in security compliance setting
   227  	OptInEdgeSecurityCompliance bool `json:"optInEdgeSecurityCompliance"`
   228  }
   229  
   230  type BannerConfig struct {
   231  	VncReadWriteAuthRequired         bool `json:"vncReadWriteAuthRequired"`
   232  	VncReadWriteAuthRequiredOverride bool `json:"vncReadWriteAuthRequiredOverride"`
   233  	VncReadAuthRequired              bool `json:"vncReadAuthRequired"`
   234  	VncReadAuthRequiredOverride      bool `json:"vncReadAuthRequiredOverride"`
   235  }
   236  
   237  // BannerInfo is the value type of assignedBanners in UserData type
   238  type BannerInfo struct {
   239  	BannerBSLId  string `json:"bannerBSLId"`
   240  	BannerEdgeID string `json:"bannerEdgeId"`
   241  	Name         string `json:"name"`
   242  	BannerType   string `json:"bannerType"`
   243  }
   244  
   245  // BannerStatus represents the state of a banner
   246  type BannerStatus struct {
   247  	// Additional details for the banner's current status
   248  	Message string `json:"message"`
   249  	// Short reasoning for the banner's current status
   250  	Reason string `json:"reason"`
   251  	// Whether a banner is ready or not
   252  	Ready bool `json:"ready"`
   253  	// The last time a banner's status was updated
   254  	LastUpdatedAt string `json:"lastUpdatedAt"`
   255  }
   256  
   257  // Input for bootstrapping api
   258  type BootstrapPayload struct {
   259  	// The cluster id returned by the registration api
   260  	ClusterEdgeID string `json:"clusterEdgeId"`
   261  	// Force bootstrapping when cluster is already active
   262  	Force *bool `json:"force,omitempty"`
   263  	// cluster ca hash
   264  	ClusterCaHash *string `json:"clusterCaHash,omitempty"`
   265  }
   266  
   267  // The response from the bootstrap api
   268  type BootstrapResponse struct {
   269  	// The project id of the banner project
   270  	ProjectID *string `json:"projectId,omitempty"`
   271  	// The secrets that need to be applied to the cluster
   272  	Secrets []string `json:"secrets,omitempty"`
   273  	// The flux configuration files that need to be applied to the cluster
   274  	FluxConfig *FluxBootstrapResponse `json:"fluxConfig,omitempty"`
   275  	// Installation Manifests from pallets
   276  	InstallManifests []string `json:"installManifests,omitempty"`
   277  	// Any pre bootstrap manifests to apply
   278  	PreBootstrapManifests []*string `json:"preBootstrapManifests,omitempty"`
   279  	// Any pre bootstrap static manifests to apply
   280  	PreBootstrapStaticManifests []string `json:"preBootstrapStaticManifests,omitempty"`
   281  }
   282  
   283  // The response from the bootstrap api
   284  type BootstrapResponseBwc struct {
   285  	// The project id of the banner project
   286  	ProjectID *string `json:"projectId,omitempty"`
   287  	// The secrets that need to be applied to the cluster
   288  	Secrets []string `json:"secrets,omitempty"`
   289  	// The flux configuration files that need to be applied to the cluster
   290  	FluxConfig *FluxBootstrapResponse `json:"fluxConfig,omitempty"`
   291  }
   292  
   293  // BucketStatusInformation is the value type of bucketStatus in the StoreStatusInfo type
   294  type BucketStatusInformation struct {
   295  	// paths that are excluded in the bucket
   296  	Excludes string `json:"excludes"`
   297  	// the name of the object storage bucket
   298  	BucketName string `json:"bucketName"`
   299  	// information about the resource status
   300  	FluxStatus *FluxStatusInformation `json:"fluxStatus"`
   301  }
   302  
   303  type CaBundle struct {
   304  	CaBundle string   `json:"caBundle"`
   305  	CaCerts  []string `json:"caCerts"`
   306  }
   307  
   308  type Capability struct {
   309  	UUID        string  `json:"uuid"`
   310  	Name        string  `json:"name"`
   311  	Description *string `json:"description,omitempty"`
   312  }
   313  
   314  type CapabilityBannerMappingInput struct {
   315  	Capabilityid string `json:"capabilityid"`
   316  	BannerEdgeID string `json:"bannerEdgeId"`
   317  }
   318  
   319  type CapabilityInput struct {
   320  	Name        string  `json:"name"`
   321  	Description *string `json:"description,omitempty"`
   322  }
   323  
   324  type CapabilityUpdateInput struct {
   325  	UUID        string  `json:"uuid"`
   326  	Name        *string `json:"name,omitempty"`
   327  	Description *string `json:"description,omitempty"`
   328  }
   329  
   330  type Channel struct {
   331  	ChannelID                uuid.UUID `json:"channel_id"`
   332  	Name                     string    `json:"name"`
   333  	Description              string    `json:"description"`
   334  	Team                     string    `json:"team"`
   335  	ExpirationBufferDuration string    `json:"expirationBufferDuration"`
   336  	RotationIntervalDuration string    `json:"rotationIntervalDuration"`
   337  }
   338  
   339  type ChannelIAMPolicy struct {
   340  	ChannelSaID string `json:"channel_sa_id"`
   341  	ChannelID   string `json:"channel_id"`
   342  	SaEmail     string `json:"sa_email"`
   343  	CreatedAt   string `json:"created_at"`
   344  }
   345  
   346  type ChannelInput struct {
   347  	Name        string `json:"name"`
   348  	Description string `json:"description"`
   349  }
   350  
   351  type ClassDeviceMap struct {
   352  	// name of the device class
   353  	Name string `json:"name"`
   354  	// list of devices associated with the device class
   355  	Devices []*Device `json:"devices,omitempty"`
   356  }
   357  
   358  // Close is the value type of close hours of a store site
   359  type Close struct {
   360  	// closing day hours of the site
   361  	Day *string `json:"day,omitempty"`
   362  	// closing time hours of the site
   363  	Time *string `json:"time,omitempty"`
   364  }
   365  
   366  // CloseInput is the input type of close hours of a store site
   367  type CloseInput struct {
   368  	// closing day hours of the site
   369  	Day *string `json:"day,omitempty"`
   370  	// closing time hours of the site
   371  	Time *string `json:"time,omitempty"`
   372  }
   373  
   374  // Cluster is the value type of GetClusters query
   375  type Cluster struct {
   376  	// UUID of the cluster in sql database
   377  	ClusterEdgeID string `json:"clusterEdgeId"`
   378  	// name of the cluster
   379  	Name string `json:"name"`
   380  	// ID of the project that the cluster belongs to
   381  	ProjectID string `json:"projectId"`
   382  	// edge id of the banner the cluster exists in
   383  	BannerEdgeID string `json:"bannerEdgeId"`
   384  	// a boolean value, if the cluster is registered
   385  	Registered *bool `json:"registered,omitempty"`
   386  	// a boolean value, if the cluster is active
   387  	Active *bool `json:"active,omitempty"`
   388  	// a list of labels of the cluster
   389  	Labels []*Label `json:"labels,omitempty"`
   390  	// bsl site id of the cluster
   391  	BslSiteID *string `json:"bslSiteID,omitempty"`
   392  	// cluster network services contains network configuration for cluster. I.e. DNS and NTP servers
   393  	ClusterNetworkServices []*ClusterNetworkServiceInfo `json:"clusterNetworkServices"`
   394  	// cluster config contains configuration for the bootstrap process of a cluster
   395  	ClusterConfig *ClusterConfig `json:"clusterConfig"`
   396  	// fleetVersion is the version of fleet-specific Edge pallets to apply to the cluster
   397  	FleetVersion string `json:"fleetVersion"`
   398  	// Status and version information
   399  	Status *CombinedStatus `json:"status"`
   400  }
   401  
   402  // ClusterArtifactRegistry represents an artifact registry used by a store, referencing a registry in the store's banner
   403  type ClusterArtifactRegistry struct {
   404  	// The unique identifier for the cluster artifact registry
   405  	ClusterRegistryEdgeID string `json:"clusterRegistryEdgeId"`
   406  	// The ID of the store the cluster artifact registry is for
   407  	ClusterEdgeID string `json:"clusterEdgeId"`
   408  	// The ID of the artifact registry
   409  	RegistryEdgeID string `json:"registryEdgeId"`
   410  }
   411  
   412  // ClusterArtifactRegistryCreateInput is the input type for the createClusterArtifactRegistry mutation
   413  type ClusterArtifactRegistryCreateInput struct {
   414  	// The ID of the store the cluster artifact registry is for
   415  	ClusterEdgeID string `json:"clusterEdgeId"`
   416  	// The ID of the artifact registry
   417  	RegistryEdgeID string `json:"registryEdgeId"`
   418  }
   419  
   420  // The configuration of a cluster for the bootstrap process
   421  type ClusterConfig struct {
   422  	// unique identifier for the cluster the config applies to
   423  	ClusterEdgeID string `json:"clusterEdgeId"`
   424  	// Controls the activation code pass-through functionality
   425  	AcRelay bool `json:"acRelay"`
   426  	// Controls PxE booting
   427  	PxeEnabled bool `json:"pxeEnabled"`
   428  	// Acknowledgement of the bootstrap
   429  	BootstrapAck bool `json:"bootstrapAck"`
   430  	// VPN Enablement
   431  	VpnEnabled bool `json:"vpnEnabled"`
   432  	// Thick POS Topology
   433  	ThickPos bool `json:"thickPos"`
   434  	// Enable Egress Gateway
   435  	EgressGatewayEnabled bool `json:"egressGatewayEnabled"`
   436  	// Gateway Rate Limiting Enabled
   437  	GatewayRateLimitingEnabled bool `json:"gatewayRateLimitingEnabled"`
   438  	// Uplink Rate Limit
   439  	UplinkRateLimit string `json:"uplinkRateLimit"`
   440  	// Downlink Rate Limit
   441  	DownlinkRateLimit string `json:"downlinkRateLimit"`
   442  	// Cluster Log Level
   443  	ClusterLogLevel string `json:"clusterLogLevel"`
   444  	// Cluster Namespace Log Levels
   445  	NamespaceLogLevels []*NamespaceLogLevel `json:"namespaceLogLevels"`
   446  	// Maximum LAN Outage Hours
   447  	MaximumLanOutageHours int `json:"maximumLanOutageHours"`
   448  	// Deprecated: linkerd fields are deprecated
   449  	// Linkerd Identity Issuer Certificate Duration Hours
   450  	LinkerdIdentityIssuerCertDuration int `json:"linkerdIdentityIssuerCertDuration"`
   451  	// Deprecated: linkerd fields are deprecated
   452  	// Linkerd Identity Issuer Certificate Renew Before Hours
   453  	LinkerdIdentityIssuerCertRenewBefore int `json:"linkerdIdentityIssuerCertRenewBefore"`
   454  	// Whether or not packages scheduled to the cluster will be automatically updated
   455  	AutoUpdateEnabled bool `json:"autoUpdateEnabled"`
   456  	// Whether Authorization is required for accessing VNC in Read/Write mode.
   457  	// Indicates banner configuration takes precendence if null
   458  	VncReadWriteAuthRequired *bool `json:"vncReadWriteAuthRequired,omitempty"`
   459  	// Whether Authorization is required for accessing VNC in Read Only mode.
   460  	// Indicates banner configuration takes precendence if null
   461  	VncReadAuthRequired *bool `json:"vncReadAuthRequired,omitempty"`
   462  }
   463  
   464  // ClusterDefaultSecret is not implemented anywhere
   465  type ClusterDefaultSecret struct {
   466  	Secret         string `json:"secret"`
   467  	RedactedSecret string `json:"redactedSecret"`
   468  }
   469  
   470  // clusterInfo is the information required to schedule a gke cluster
   471  type ClusterInfo struct {
   472  	// gke location the cluster will be created in
   473  	Location string `json:"location"`
   474  	// node version will be the gke version we set the cluster to
   475  	NodeVersion *string `json:"nodeVersion,omitempty"`
   476  	// machine type is the type of machine that will be used to create the cluster nodes
   477  	MachineType string `json:"machineType"`
   478  	// number nodes will be the initial node count for the cluster. If autoscaling is not provided this will be the static size of the cluster
   479  	NumNodes int `json:"numNodes"`
   480  	// autoscale is a boolean for whether or not the cluster should use autoscaling. If set to true minNodes and maxNodes are required.
   481  	Autoscale bool `json:"autoscale"`
   482  	// minNodes is the minimum cluster size
   483  	MinNodes *int `json:"minNodes,omitempty"`
   484  	// maxNodes is the max cluster size
   485  	MaxNodes *int `json:"maxNodes,omitempty"`
   486  }
   487  
   488  // ClusterKubeconfig is not implemented anywhere
   489  type ClusterKubeconfig struct {
   490  	ClusterKubeConfig         string `json:"clusterKubeConfig"`
   491  	RedactedClusterKubeConfig string `json:"redactedClusterKubeConfig"`
   492  }
   493  
   494  // Output of cluster labels
   495  type ClusterLabel struct {
   496  	// cluster id is the id of the cluster the label is attached to
   497  	ClusterEdgeID string `json:"clusterEdgeId"`
   498  	// label id is the id of the label added to a cluster
   499  	LabelEdgeID string `json:"labelEdgeId"`
   500  }
   501  
   502  // Clusters' network service info. Contains cluster-scoped network configuration (DNS and NTP servers)
   503  type ClusterNetworkServiceInfo struct {
   504  	// id of the network service
   505  	NetworkServiceID string `json:"networkServiceId"`
   506  	// service type enum (dns, ntp or kube-vip)
   507  	ServiceType string `json:"serviceType"`
   508  	// ip address of the network service
   509  	IP string `json:"ip"`
   510  	// network family inet (ipv4) or inet6 (ipv6)
   511  	Family string `json:"family"`
   512  	// priority of the network service (default 100)
   513  	Priority *int `json:"priority,omitempty"`
   514  }
   515  
   516  // Response for cluster secret leases
   517  type ClusterSecretLease struct {
   518  	Owner       string   `json:"owner"`
   519  	ExpiresAt   string   `json:"expiresAt"`
   520  	SecretTypes []string `json:"secretTypes"`
   521  }
   522  
   523  type ClusterSecretVersionInfo struct {
   524  	Version   string `json:"version"`
   525  	ExpiresAt string `json:"expiresAt"`
   526  }
   527  
   528  // ClusterStatus is the value type status in the Store type
   529  type ClusterStatus struct {
   530  	Status  string `json:"status"`
   531  	Message string `json:"message"`
   532  }
   533  
   534  func (ClusterStatus) IsIStatus()              {}
   535  func (this ClusterStatus) GetMessage() string { return this.Message }
   536  func (this ClusterStatus) GetStatus() string  { return this.Status }
   537  
   538  // ClusterStatusResponse is the value type of GetClusterStatus service query
   539  type ClusterStatusResponse struct {
   540  	// status contains the status and message information of the store
   541  	Status *ClusterStatus `json:"status,omitempty"`
   542  	// kubeVeriosn is the the KubeletVersion of the node resources of the store
   543  	KubeVersion *string `json:"kubeVersion,omitempty"`
   544  	// kustomizationStatus is a list of kustomization statuses of the store
   545  	KustomizationStatus []*KustomizationStatusInformation `json:"kustomizationStatus,omitempty"`
   546  	// bucketStatus is a list of bucket statuses of the store
   547  	BucketStatus []*BucketStatusInformation `json:"bucketStatus,omitempty"`
   548  }
   549  
   550  // Combined Statuses for Clusters
   551  type CombinedStatus struct {
   552  	ClusterEdgeID string       `json:"clusterEdgeID"`
   553  	Active        bool         `json:"active"`
   554  	InfraStatus   *InfraStatus `json:"infraStatus,omitempty"`
   555  	// activeVersion is the active Edge version in the cluster
   556  	ActiveVersion string `json:"activeVersion"`
   557  	// events are the Kubernetes events being reported in the cluster
   558  	Events []*Event `json:"events"`
   559  	// Combined Statuses reported by kinform and cluster infra statuses
   560  	ClusterStatus *ClusterStatus `json:"clusterStatus,omitempty"`
   561  	// couchdb replication status is the status of the couchdb replications
   562  	ReplicationStatus []*ReplicationStatus `json:"replicationStatus,omitempty"`
   563  	// The status of each component (Kustomization, Bucket, and Shipment)
   564  	ComponentStatus []*ComponentStatus `json:"componentStatus,omitempty"`
   565  	// The support status of edge OS and edge Infra
   566  	SupportStatus *SupportStatus `json:"supportStatus,omitempty"`
   567  }
   568  
   569  func (CombinedStatus) IsICombinedStatus()                    {}
   570  func (this CombinedStatus) GetInfraStatus() *InfraStatus     { return this.InfraStatus }
   571  func (this CombinedStatus) GetClusterStatus() *ClusterStatus { return this.ClusterStatus }
   572  func (this CombinedStatus) GetEvents() []*Event {
   573  	if this.Events == nil {
   574  		return nil
   575  	}
   576  	interfaceSlice := make([]*Event, 0, len(this.Events))
   577  	for _, concrete := range this.Events {
   578  		interfaceSlice = append(interfaceSlice, concrete)
   579  	}
   580  	return interfaceSlice
   581  }
   582  
   583  // command represents an OS-level command that can be executed by the Remote CLI
   584  type Command struct {
   585  	Name string `json:"name"`
   586  }
   587  
   588  // Object to hold the status and name of an individual component in the cluster
   589  type ComponentStatus struct {
   590  	// The status of the component
   591  	Status *ClusterStatus `json:"status,omitempty"`
   592  	// The component name
   593  	Component string `json:"component"`
   594  }
   595  
   596  // ConfigmapData key value pair representing a configmap
   597  type ConfigmapData struct {
   598  	// key of configmap data
   599  	Key *string `json:"key,omitempty"`
   600  	// key of configmap data
   601  	Value *string `json:"value,omitempty"`
   602  }
   603  
   604  // ConfigurationSetId is the value type of configuration set id of a site
   605  type ConfigurationSetID struct {
   606  	// name value of Configuration set id of the site
   607  	Name *string `json:"name,omitempty"`
   608  }
   609  
   610  // ConfigurationSetIdInput is the input type of configuration set id of a site
   611  type ConfigurationSetIDInput struct {
   612  	// name value of Configuration set id of the site
   613  	Name *string `json:"name,omitempty"`
   614  }
   615  
   616  // ConfigurationSettings is the value type of configuration settings of a site
   617  type ConfigurationSettings struct {
   618  	// key value of Configuration Settings of the site
   619  	Key *string `json:"key,omitempty"`
   620  	// value of Configuration Settings of the site
   621  	Value *string `json:"value,omitempty"`
   622  }
   623  
   624  // ConfigurationSettingsInput is the input type of configuration settings of a site
   625  type ConfigurationSettingsInput struct {
   626  	// key value of Configuration Settings of the site
   627  	Key *string `json:"key,omitempty"`
   628  	// value of Configuration Settings of the site
   629  	Value *string `json:"value,omitempty"`
   630  }
   631  
   632  // Contact is the value type of Contact of a site
   633  type Contact struct {
   634  	// contactPerson of the site
   635  	ContactPerson *string `json:"contactPerson,omitempty"`
   636  	// email address of the site
   637  	Email *string `json:"email,omitempty"`
   638  	// phoneNumber of the site
   639  	PhoneNumber *string `json:"phoneNumber,omitempty"`
   640  	// phoneNumberCountryCode of the site
   641  	PhoneNumberCountryCode *string `json:"phoneNumberCountryCode,omitempty"`
   642  }
   643  
   644  // ContactInput is the input type of Contact of a site
   645  type ContactInput struct {
   646  	// contactPerson for the site
   647  	ContactPerson *string `json:"contactPerson,omitempty"`
   648  	// email address for the site
   649  	Email *string `json:"email,omitempty"`
   650  	// phoneNumber for the site
   651  	PhoneNumber *string `json:"phoneNumber,omitempty"`
   652  	// phoneNumberCountryCode for the site
   653  	PhoneNumberCountryCode *string `json:"phoneNumberCountryCode,omitempty"`
   654  }
   655  
   656  type Contacts struct {
   657  	Identifier string   `json:"identifier"`
   658  	Details    *Contact `json:"details"`
   659  }
   660  
   661  // ContactsInput
   662  type ContactsInput struct {
   663  	// Identifier
   664  	Identifier string `json:"Identifier"`
   665  	// Contact
   666  	Contact *ContactInput `json:"Contact"`
   667  }
   668  
   669  // Coordinates is the value type of Coordinates of a store site
   670  type Coordinates struct {
   671  	// latitude of the store
   672  	Latitude float64 `json:"latitude"`
   673  	// longitude of the store
   674  	Longitude float64 `json:"longitude"`
   675  }
   676  
   677  // CoordinatesInput is the input type for Coordinates of a store site
   678  type CoordinatesInput struct {
   679  	// latitude of the store
   680  	Latitude float64 `json:"latitude"`
   681  	// longitude of the store
   682  	Longitude float64 `json:"longitude"`
   683  }
   684  
   685  type CreateBannerConfig struct {
   686  	VncReadWriteAuthRequired         *bool `json:"vncReadWriteAuthRequired,omitempty"`
   687  	VncReadWriteAuthRequiredOverride *bool `json:"vncReadWriteAuthRequiredOverride,omitempty"`
   688  	VncReadAuthRequired              *bool `json:"vncReadAuthRequired,omitempty"`
   689  	VncReadAuthRequiredOverride      *bool `json:"vncReadAuthRequiredOverride,omitempty"`
   690  }
   691  
   692  // Input object for creating log classifications
   693  // TODO: TO BE DEPRECATED IN 0.25 @RS185722
   694  type CreateClassificationInput struct {
   695  	// description is a brief overview of the classification
   696  	Description string `json:"description"`
   697  	// pod name to be targeted
   698  	Pod string `json:"pod"`
   699  	// container name to be targeted
   700  	Container string `json:"container"`
   701  	// log grouping for the log
   702  	Type string `json:"type"`
   703  	// class identifying for the log
   704  	Class LogClassSelection `json:"class"`
   705  	// pattern is the sub string to identify the log
   706  	Pattern string `json:"pattern"`
   707  }
   708  
   709  type CreateClusterConfig struct {
   710  	AcRelay                    *bool                       `json:"acRelay,omitempty"`
   711  	PxeEnabled                 *bool                       `json:"pxeEnabled,omitempty"`
   712  	BootstrapAck               *bool                       `json:"bootstrapAck,omitempty"`
   713  	VpnEnabled                 *bool                       `json:"vpnEnabled,omitempty"`
   714  	ThickPos                   *bool                       `json:"thickPos,omitempty"`
   715  	EgressGatewayEnabled       *bool                       `json:"egressGatewayEnabled,omitempty"`
   716  	GatewayRateLimitingEnabled *bool                       `json:"gatewayRateLimitingEnabled,omitempty"`
   717  	UplinkRateLimit            *string                     `json:"uplinkRateLimit,omitempty"`
   718  	DownlinkRateLimit          *string                     `json:"downlinkRateLimit,omitempty"`
   719  	ClusterLogLevel            *string                     `json:"clusterLogLevel,omitempty"`
   720  	NamespaceLogLevels         []*NamespaceLogLevelPayload `json:"namespaceLogLevels,omitempty"`
   721  	MaximumLanOutageHours      *int                        `json:"maximumLanOutageHours,omitempty"`
   722  	AutoUpdateEnabled          *bool                       `json:"autoUpdateEnabled,omitempty"`
   723  	// Deprecated: linkerd fields are deprecated
   724  	LinkerdIdentityIssuerCertDuration *int `json:"linkerdIdentityIssuerCertDuration,omitempty"`
   725  	// Deprecated: linkerd fields are deprecated
   726  	LinkerdIdentityIssuerCertRenewBefore *int  `json:"linkerdIdentityIssuerCertRenewBefore,omitempty"`
   727  	VncReadWriteAuthRequired             *bool `json:"vncReadWriteAuthRequired,omitempty"`
   728  	VncReadAuthRequired                  *bool `json:"vncReadAuthRequired,omitempty"`
   729  }
   730  
   731  // input object for log replay options
   732  type CreateLogReplayPayload struct {
   733  	// List of Namespaces
   734  	Namespaces []string `json:"namespaces"`
   735  	// Start Time to grab logs
   736  	StartTime string `json:"startTime"`
   737  	// End Time to grab logs
   738  	EndTime string `json:"endTime"`
   739  	// lowest log Level to send up the GCP
   740  	LogLevel LogLevels `json:"logLevel"`
   741  }
   742  
   743  type CreateNetworkServiceInfo struct {
   744  	// service type enum (dns, ntp or kube-vip)
   745  	ServiceType string `json:"serviceType"`
   746  	// ip address of the network service
   747  	IP string `json:"ip"`
   748  	// network family inet (ipv4) or inet6 (ipv6)
   749  	Family string `json:"family"`
   750  	// priority of the network service (default 100)
   751  	Priority *int `json:"priority,omitempty"`
   752  }
   753  
   754  // CreateOperatorInterventionCommandResponse is the response type of the createOperatorInterventionCommands mutation.
   755  type CreateOperatorInterventionCommandResponse struct {
   756  	// errors indicate if any of the commands referenced in the OperatorInterventionCommandInput
   757  	// are invalid. If any errors are present, no commands will be added
   758  	Errors []*OperatorInterventionErrorResponse `json:"errors,omitempty"`
   759  }
   760  
   761  // Represents the response for creating an operator intervention privilege.
   762  type CreateOperatorInterventionPrivilegeResponse struct {
   763  	// List of errors that occurred during the deletion process.
   764  	Errors []*OperatorInterventionErrorResponse `json:"errors,omitempty"`
   765  }
   766  
   767  // CustomAttributeSets is the value type of Custom Attribute Sets of a site
   768  type CustomAttributeSets struct {
   769  	// typeName of Custom Attribute Sets of the site
   770  	TypeName *string `json:"typeName,omitempty"`
   771  	// attributes of the site
   772  	Attributes []*Attributes `json:"attributes,omitempty"`
   773  }
   774  
   775  // CustomAttributeSetsInput is the input type of Custom Attribute Sets of a site
   776  type CustomAttributeSetsInput struct {
   777  	// typeName of Custom Attribute Sets of the site
   778  	TypeName *string `json:"typeName,omitempty"`
   779  	// attributes of the site
   780  	Attributes []*AttributesInput `json:"attributes,omitempty"`
   781  }
   782  
   783  // Dayparts is the value type of Dayparts of a site
   784  type Dayparts struct {
   785  	// day value of Dayparts of the site
   786  	Day *string `json:"day,omitempty"`
   787  	// description value of Dayparts of the site
   788  	Description *string `json:"description,omitempty"`
   789  	// endTime value of Dayparts of the site
   790  	EndTime *string `json:"endTime,omitempty"`
   791  	// name value of Dayparts of the site
   792  	Name *string `json:"name,omitempty"`
   793  	// startTime value of Dayparts of the site
   794  	StartTime *string `json:"startTime,omitempty"`
   795  }
   796  
   797  // DaypartsInput is the value type of Dayparts of a site
   798  type DaypartsInput struct {
   799  	// day value of Dayparts of the site
   800  	Day *string `json:"day,omitempty"`
   801  	// description value of Dayparts of the site
   802  	Description *string `json:"description,omitempty"`
   803  	// endTime value of Dayparts of the site
   804  	EndTime *string `json:"endTime,omitempty"`
   805  	// name value of Dayparts of the site
   806  	Name *string `json:"name,omitempty"`
   807  	// startTime value of Dayparts of the site
   808  	StartTime *string `json:"startTime,omitempty"`
   809  }
   810  
   811  // DeleteOperatorInterventionCommandResponse is the response type of the deleteOperatorInterventionCommand mutation.
   812  type DeleteOperatorInterventionCommandResponse struct {
   813  	// errors indicate if any of the commands referenced in the OperatorInterventionCommandInput
   814  	// are invalid. If any errors are present, no changes will be made
   815  	Errors []*OperatorInterventionErrorResponse `json:"errors,omitempty"`
   816  }
   817  
   818  // DeleteOperatorInterventionMappingInput allows deleting a single Edge Role to
   819  // privilege mapping from the DB
   820  type DeleteOperatorInterventionMappingInput struct {
   821  	Role      string                              `json:"role"`
   822  	Privilege *OperatorInterventionPrivilegeInput `json:"privilege"`
   823  }
   824  
   825  // Represents the response for deleting operator intervention privilege.
   826  type DeleteOperatorInterventionPrivilegeResponse struct {
   827  	// List of errors that occurred during the deletion process.
   828  	Errors []*OperatorInterventionErrorResponse `json:"errors,omitempty"`
   829  }
   830  
   831  // DeleteOperatorInterventionResponse is the response type of the deleteOperatorInterventionRoleMapping mutation.
   832  type DeleteOperatorInterventionResponse struct {
   833  	// errors indicate if there was any issues during the mutation. If any errors
   834  	// are present, no changes will be made
   835  	Errors []*OperatorInterventionErrorResponse `json:"errors,omitempty"`
   836  }
   837  
   838  type DeleteOperatorInterventionRuleInput struct {
   839  	Privilege string `json:"privilege"`
   840  	Command   string `json:"command"`
   841  }
   842  
   843  type DeleteOperatorInterventionRuleResponse struct {
   844  	// List of errors that occurred during the deletion process.
   845  	Errors []*OperatorInterventionErrorResponse `json:"errors,omitempty"`
   846  }
   847  
   848  type Device struct {
   849  	// friendly name for the device
   850  	Name string `json:"name"`
   851  }
   852  
   853  // EdgeOsSupportStatus represents whether or not a cluster's edge os version is out/going out of support
   854  type EdgeOsSupportStatus struct {
   855  	Status  string `json:"status"`
   856  	Message string `json:"message"`
   857  }
   858  
   859  func (EdgeOsSupportStatus) IsIStatus()              {}
   860  func (this EdgeOsSupportStatus) GetMessage() string { return this.Message }
   861  func (this EdgeOsSupportStatus) GetStatus() string  { return this.Status }
   862  
   863  // EdgeResponsePayload is the value type of UpdateUserPassword, CreateOrganization, UpdateOrganization, DeleteOrganization, AssignUserToBanner, AssignRolesToUser and ReplaceAdditionalPermissions mutations
   864  type EdgeResponsePayload struct {
   865  	StatusCode int    `json:"statusCode"`
   866  	Message    string `json:"message"`
   867  }
   868  
   869  type EdgeRoles struct {
   870  	EdgeSuperAdmin *EdgeSuperAdmin `json:"EDGE_SUPER_ADMIN,omitempty"`
   871  }
   872  
   873  // EnterpriseSettings is the value type of enterprise settings of a site
   874  type EnterpriseSettings struct {
   875  	// enterpriseUnitId of the site
   876  	EnterpriseUnitID *string `json:"enterpriseUnitId,omitempty"`
   877  	// configurationSetId of the site
   878  	ConfigurationSetID *ConfigurationSetID `json:"configurationSetId,omitempty"`
   879  	// configurationSettings of the site
   880  	ConfigurationSettings []*ConfigurationSettings `json:"configurationSettings,omitempty"`
   881  }
   882  
   883  // EnterpriseSettingsInput is the input type of enterprise settings of a site
   884  type EnterpriseSettingsInput struct {
   885  	// enterpriseUnitId of the site
   886  	EnterpriseUnitID *string `json:"enterpriseUnitId,omitempty"`
   887  	// configurationSetId of the site
   888  	ConfigurationSetID *ConfigurationSetIDInput `json:"configurationSetId,omitempty"`
   889  	// configurationSettings of the site
   890  	ConfigurationSettings []*ConfigurationSettingsInput `json:"configurationSettings,omitempty"`
   891  }
   892  
   893  // Event is a reference to a Kubernetes Event
   894  type Event struct {
   895  	// Edge ID of the event
   896  	EventEdgeID string `json:"eventEdgeID"`
   897  	// Name of the event
   898  	Name string `json:"name"`
   899  	// Edge ID of the cluster the event was reported in
   900  	ClusterEdgeID string `json:"clusterEdgeID"`
   901  	// ID of the terminal the event was reported in
   902  	TerminalID *string `json:"terminalID,omitempty"`
   903  	// Annotations of the event
   904  	Annotations *string `json:"annotations,omitempty"`
   905  	// Information about the involved object
   906  	InvolvedObject *InvolvedObject `json:"involvedObject"`
   907  	// Short description of why the event was reported
   908  	Reason string `json:"reason"`
   909  	// Extra information for the reason
   910  	Message string `json:"message"`
   911  	// The event's type
   912  	Status string `json:"status"`
   913  	// Component that reported the event
   914  	Source string `json:"source"`
   915  	// Creation timestamp
   916  	CreatedAt string `json:"createdAt"`
   917  }
   918  
   919  // The flux configuration files that need to be applied to the cluster
   920  type FluxBootstrapResponse struct {
   921  	// Flux bucket configurations that need to be applied to the cluster
   922  	FluxBucket []string `json:"fluxBucket,omitempty"`
   923  	// Kustomizations that need to be applied to the cluster
   924  	FluxKustomize []string `json:"fluxKustomize,omitempty"`
   925  }
   926  
   927  // FluxStatusInformation is the value type of flux status shared by kustomizationStatus and bucketStatus in the StoreStatusInfo type
   928  type FluxStatusInformation struct {
   929  	// name of the resource
   930  	Name string `json:"name"`
   931  	// whether there is any error in the resource
   932  	Error bool `json:"error"`
   933  	// the last time the condition transitioned from one status to another
   934  	LastUpdated string `json:"lastUpdated"`
   935  	// the revision of the last reconciliation attempt
   936  	Revision string `json:"revision"`
   937  	// a message indicating details about the transition
   938  	StatusMessage string `json:"statusMessage"`
   939  	// suspended is whether the controller should suspend the resource or not
   940  	Suspended bool `json:"suspended"`
   941  }
   942  
   943  // HelmChart is the value of the HelmCharts query. Includes all information stored about a helm chart in the helm repository.
   944  type HelmChart struct {
   945  	// Name of the helm chart
   946  	Name string `json:"name"`
   947  	// Provided description of the helm chart
   948  	Description string `json:"description"`
   949  	// Version of the helm chart
   950  	Version string `json:"version"`
   951  	// Application version the helm chart deploys
   952  	AppVersion string `json:"appVersion"`
   953  	// Link to icon is available of helm chart
   954  	Icon string `json:"icon"`
   955  	// Keywords for helm chart for search
   956  	Keywords []string `json:"keywords,omitempty"`
   957  	// Source provided for the helm chart in helm repository
   958  	Sources []string `json:"sources,omitempty"`
   959  	// URLs for the helm chart
   960  	Urls []string `json:"urls,omitempty"`
   961  	// Creation time for the helm chart
   962  	Created string `json:"created"`
   963  }
   964  
   965  // HelmChartResponse is the value type of the GetHelmChartVersion query. Is a map of name and available version.
   966  type HelmChartResponse struct {
   967  	// Name of helm chart
   968  	Name string `json:"name"`
   969  	// Available versions
   970  	Versions []*string `json:"versions,omitempty"`
   971  }
   972  
   973  // HelmCondition is the value type of InstallCondition and ReadyCondition in the HelmRelease type
   974  type HelmCondition struct {
   975  	// Last time the helm release status changed on the cluster
   976  	LastTransitionTime *string `json:"lastTransitionTime,omitempty"`
   977  	// Status message on the helm release
   978  	Message *string `json:"message,omitempty"`
   979  	// Kubernetes status reason on the helm release
   980  	Reason *string `json:"reason,omitempty"`
   981  	// Status bool provided by kubernetes on the helm release
   982  	Status *string `json:"status,omitempty"`
   983  	// The type of status provided on the helm release
   984  	Type *string `json:"type,omitempty"`
   985  	// Boolean for whether the helm workload is installed
   986  	Installed *bool `json:"installed,omitempty"`
   987  	// Boolean for the kubernetes ready condition of the helm release
   988  	Ready *bool `json:"ready,omitempty"`
   989  }
   990  
   991  // HelmConfig is the return value type of DefaultSchemaConfig query. Contains information about the helm config schema.
   992  type HelmConfig struct {
   993  	// Default values for helm config.
   994  	ConfigVals *string `json:"configVals,omitempty"`
   995  	// The validation schema for helm config values for the requested helm chart
   996  	ConfigSchema *string `json:"configSchema,omitempty"`
   997  }
   998  
   999  // HelmRelease is the value type of GetHelmReleases query
  1000  type HelmRelease struct {
  1001  	Name                  string         `json:"name"`
  1002  	HelmChart             string         `json:"helmChart"`
  1003  	LastActionTime        string         `json:"lastActionTime"`
  1004  	StatusType            string         `json:"statusType"`
  1005  	VersionInstalled      string         `json:"versionInstalled"`
  1006  	VersionRequested      string         `json:"versionRequested"`
  1007  	InstallCondition      *HelmCondition `json:"installCondition,omitempty"`
  1008  	ReadyCondition        *HelmCondition `json:"readyCondition,omitempty"`
  1009  	ConfigValues          *string        `json:"configValues,omitempty"`
  1010  	Namespace             string         `json:"namespace"`
  1011  	UpdateAvailable       *bool          `json:"updateAvailable,omitempty"`
  1012  	UpgradeableVersions   []*HelmVersion `json:"upgradeableVersions,omitempty"`
  1013  	DowngradeableVersions []*HelmVersion `json:"downgradeableVersions,omitempty"`
  1014  }
  1015  
  1016  // HelmReleaseStatus is the helm release resources status data, value type of GetHelmReleases query
  1017  type HelmReleaseStatus struct {
  1018  	// name of the helm release
  1019  	Name string `json:"name"`
  1020  	// last time the change was made on this helm release
  1021  	LastActionTime string `json:"lastActionTime"`
  1022  	// status of the helm release
  1023  	StatusType string `json:"statusType"`
  1024  	// installed version of helm release
  1025  	VersionInstalled string `json:"versionInstalled"`
  1026  	// version requested for helm release
  1027  	VersionRequested string `json:"versionRequested"`
  1028  	// install condition of the helm release
  1029  	InstallCondition *HelmCondition `json:"installCondition,omitempty"`
  1030  	// ready condition of the helm release
  1031  	ReadyCondition *HelmCondition `json:"readyCondition,omitempty"`
  1032  	// config values for the helm release
  1033  	ConfigValues *string `json:"configValues,omitempty"`
  1034  }
  1035  
  1036  // HelmRepository is the value type of the HelmRepositories query. Information about a helm repository.
  1037  type HelmRepository struct {
  1038  	// Name of the helm repository
  1039  	Name string `json:"name"`
  1040  	// URL to interact with helm repository
  1041  	URL string `json:"url"`
  1042  	// Secret stored by edge to interact with helm repository
  1043  	Secret string `json:"secret"`
  1044  	// The type of the helm repository
  1045  	Workload string `json:"workload"`
  1046  	// When the helm repository was created
  1047  	CreatedOn string `json:"createdOn"`
  1048  }
  1049  
  1050  // HelmRepositoryInfo is the value type of the HelmRepositoryInfo query
  1051  type HelmRepositoryInfo struct {
  1052  	// The readme provided by the helm repository for the helm chart
  1053  	Readme *string `json:"readme,omitempty"`
  1054  	// The metadata provided by the helm repository for the helm chart
  1055  	Metadata []*string `json:"metadata,omitempty"`
  1056  }
  1057  
  1058  // Helm secret are the secrets attached to the helm workload
  1059  type HelmSecrets struct {
  1060  	// edge id of the secret
  1061  	SecretEdgeID string `json:"secretEdgeID"`
  1062  	// name of the secret
  1063  	Name string `json:"name"`
  1064  	// created at in the edge db of the secret
  1065  	CreatedAt string `json:"createdAt"`
  1066  	// Helm workload is the data available in the edge db about the helm workload
  1067  	UpdatedAt string `json:"updatedAt"`
  1068  }
  1069  
  1070  // The status of the helm workload
  1071  type HelmStatus struct {
  1072  	// The overall status of the workloads, a combination of helm release, chart, repo and workload pods in the target namepsace
  1073  	Status string `json:"status"`
  1074  	// The message describing status of the helm workload
  1075  	Message string `json:"message"`
  1076  	// The status of the pods from k8s for the workload
  1077  	Pods []*Pods `json:"pods"`
  1078  }
  1079  
  1080  // HelmVersion is the value type of UpgradeableVersions and DowngradeableVersions in the HelmRelease type
  1081  type HelmVersion struct {
  1082  	Version string `json:"version"`
  1083  }
  1084  
  1085  // Helm workload is the data available in the edge db about the helm workload.
  1086  type HelmWorkload struct {
  1087  	// Edge id for the helm workload.
  1088  	HelmEdgeID string `json:"helmEdgeID"`
  1089  	// Name of the helm workload.
  1090  	Name string `json:"name"`
  1091  	// Helm chart used by the helm workloads.
  1092  	HelmChart string `json:"helmChart"`
  1093  	// Helm repository used by the helm workload.
  1094  	HelmRepository string `json:"helmRepository"`
  1095  	// Created at timestamp.
  1096  	CreatedAt string `json:"createdAt"`
  1097  	// Last updated timestamp.
  1098  	UpdatedAt string `json:"updatedAt"`
  1099  	// Deployed helm chart version.
  1100  	HelmChartVersion string `json:"helmChartVersion"`
  1101  	// Config values for the helm workload.
  1102  	ConfigValues *string `json:"configValues,omitempty"`
  1103  	// Namespace is the namespace helm release targets.
  1104  	Namespace string `json:"namespace"`
  1105  	// Cluster Edge ID for the helm workload.
  1106  	ClusterEdgeID string `json:"clusterEdgeID"`
  1107  	// Banner Edge ID for the helm workload.
  1108  	BannerEdgeID string `json:"bannerEdgeID"`
  1109  	// Helm repo secret is the name for the helm repository secret stored by edge.
  1110  	HelmRepoSecret string `json:"helmRepoSecret"`
  1111  	// Installed by is the user id that install this workload.
  1112  	InstalledBy *string `json:"installedBy,omitempty"`
  1113  	// Bool for whether an update is available for the helm release.
  1114  	UpdateAvailable *bool `json:"updateAvailable,omitempty"`
  1115  	// Deleted indicates if a workload has been deleted.
  1116  	Deleted *bool `json:"deleted,omitempty"`
  1117  	// Available helm chart version able to upgrade to.
  1118  	UpgradeableVersions []*HelmVersion `json:"upgradeableVersions,omitempty"`
  1119  	// Available helm chart version able to downgrade to.
  1120  	DowngradeableVersions []*HelmVersion `json:"downgradeableVersions,omitempty"`
  1121  	// List of secrets attached to the helm workload.
  1122  	Secrets []*HelmSecrets `json:"secrets,omitempty"`
  1123  	// Type of installation. Check the enum for full list. Default: ANY .
  1124  	InstallationType *WorkloadInstallationType `json:"installationType,omitempty"`
  1125  	// Edge Labels.
  1126  	Labels []*Label `json:"labels"`
  1127  	// Injected Configmaps.
  1128  	Configmaps []*HelmWorkloadConfigmaps `json:"configmaps"`
  1129  	// A combined status from helmWorkload, helmChart, helmRepo and pods.
  1130  	WorkloadStatus *HelmStatus `json:"workloadStatus"`
  1131  }
  1132  
  1133  type HelmWorkloadConfigmaps struct {
  1134  	// Edge id for the helm workload configmap.
  1135  	HelmWorkloadConfigmapEdgeID string `json:"helmWorkloadConfigmapEdgeID"`
  1136  	// Edge id for the helm workload.
  1137  	HelmEdgeID string `json:"helmEdgeID"`
  1138  	// namespace in which to inject the configmap.
  1139  	Namespace string `json:"namespace"`
  1140  	// config map that is injected.
  1141  	ConfigMap string `json:"config_map"`
  1142  	// Created at timestamp.
  1143  	CreatedAt string `json:"createdAt"`
  1144  	// Last updated timestamp.
  1145  	UpdatedAt string `json:"updatedAt"`
  1146  	// @deprecated: Workloads are now child of banner(s).
  1147  	// This is for backwards compatibility, to be removed.
  1148  	ClusterEdgeID string `json:"clusterEdgeID"`
  1149  }
  1150  
  1151  // Hours is the value type of hours of a store site
  1152  type Hours struct {
  1153  	// closing hours of the site
  1154  	Close *Close `json:"close,omitempty"`
  1155  	// open hours of the site
  1156  	Open *Open `json:"open,omitempty"`
  1157  }
  1158  
  1159  // HoursInput is the input type of hours of a store site
  1160  type HoursInput struct {
  1161  	// closing hours of the site
  1162  	Close *CloseInput `json:"close,omitempty"`
  1163  	// open hours of the site
  1164  	Open *OpenInput `json:"open,omitempty"`
  1165  }
  1166  
  1167  type InfraStatus struct {
  1168  	Message string `json:"message"`
  1169  	Status  string `json:"status"`
  1170  }
  1171  
  1172  func (InfraStatus) IsIStatus()              {}
  1173  func (this InfraStatus) GetMessage() string { return this.Message }
  1174  func (this InfraStatus) GetStatus() string  { return this.Status }
  1175  
  1176  // InfraSupportStatus represents whether or not a cluster's infra version is out/going out of support
  1177  type InfraSupportStatus struct {
  1178  	Status  string `json:"status"`
  1179  	Message string `json:"message"`
  1180  }
  1181  
  1182  func (InfraSupportStatus) IsIStatus()              {}
  1183  func (this InfraSupportStatus) GetMessage() string { return this.Message }
  1184  func (this InfraSupportStatus) GetStatus() string  { return this.Status }
  1185  
  1186  // InvolvedObject contains information about an object that is referenced by an Event
  1187  type InvolvedObject struct {
  1188  	// The involved object's kind
  1189  	Kind string `json:"kind"`
  1190  	// Name of the involved object
  1191  	Name string `json:"name"`
  1192  	// Namespace of the involved object
  1193  	Namespace *string `json:"namespace,omitempty"`
  1194  }
  1195  
  1196  // KustomizationStatusInformation is the value type of kustomizationStatus in the StoreStatusInfo type
  1197  type KustomizationStatusInformation struct {
  1198  	// path to the directory containing the kustomization file
  1199  	Path string `json:"path"`
  1200  	// reference of the source where the kustomization file is
  1201  	Source string `json:"source"`
  1202  	// information about the resource status
  1203  	FluxStatus *FluxStatusInformation `json:"fluxStatus"`
  1204  }
  1205  
  1206  // Output of labels apis
  1207  type Label struct {
  1208  	// ID of the label
  1209  	LabelEdgeID string `json:"labelEdgeId"`
  1210  	// key is the string label dispalyed to user
  1211  	Key string `json:"key"`
  1212  	// color is the color in the ui the label will be shown as in hex
  1213  	Color string `json:"color"`
  1214  	// visible is whether to show the label to the user in the ui
  1215  	Visible bool `json:"visible"`
  1216  	// editable is whether the label is editable through the ui
  1217  	Editable bool `json:"editable"`
  1218  	// unique is whether this label type must be unique for each cluster e.g. For a label type of region a cluster can only have one region type label
  1219  	Unique bool `json:"unique"`
  1220  	// banner id is the banner the label will be attached to
  1221  	BannerEdgeID *string `json:"bannerEdgeId,omitempty"`
  1222  	// description is the description of the label
  1223  	Description string `json:"description"`
  1224  	// type is a grouping of labels
  1225  	Type string `json:"type"`
  1226  }
  1227  
  1228  // Input object for create and update labels apis
  1229  type LabelInput struct {
  1230  	// key is the string label dispalyed to user
  1231  	Key string `json:"key"`
  1232  	// color is the color in the ui the label will be shown as in hex
  1233  	Color string `json:"color"`
  1234  	// visible is whether to show the label to the user in the ui
  1235  	Visible bool `json:"visible"`
  1236  	// editable is whether the label is editable through the ui
  1237  	Editable bool `json:"editable"`
  1238  	// unique is whether this label type must be unique for each cluster e.g. For a label type of region a cluster can only have one region type label
  1239  	Unique bool `json:"unique"`
  1240  	// banner id is the banner the label will be attached to
  1241  	BannerEdgeID string `json:"bannerEdgeId"`
  1242  	// description is the description of the label
  1243  	Description string `json:"description"`
  1244  	// type is a grouping of labels
  1245  	Type string `json:"type"`
  1246  }
  1247  
  1248  // Input for updating labels
  1249  type LabelUpdateInput struct {
  1250  	// ID of the labels
  1251  	LabelEdgeID string `json:"labelEdgeId"`
  1252  	// Values to be update
  1253  	LabelValues *LabelInput `json:"labelValues"`
  1254  }
  1255  
  1256  // Type object for log classifications
  1257  // TODO: TO BE DEPRECATED IN 0.25 @RS185722
  1258  type LogClassification struct {
  1259  	// Log Classification Edge ID
  1260  	BannerEdgeID string `json:"bannerEdgeID"`
  1261  	// Log Classification Edge ID
  1262  	LogClassificationEdgeID string `json:"logClassificationEdgeID"`
  1263  	// description is a brief overview of the classification
  1264  	Description string `json:"description"`
  1265  	// pod name to be targeted
  1266  	Pod string `json:"pod"`
  1267  	// container name to be targeted
  1268  	Container string `json:"container"`
  1269  	// log grouping for the log
  1270  	Type string `json:"type"`
  1271  	// class identifying for the log
  1272  	Class string `json:"class"`
  1273  	// pattern is the sub string to identify the log
  1274  	Pattern string `json:"pattern"`
  1275  }
  1276  
  1277  // return object for log classification labels
  1278  // TODO: TO BE DEPRECATED IN 0.25 @RS185722
  1279  type LogClassificationLabel struct {
  1280  	// log classification label edge id for classification
  1281  	LogClassificationLabelEdgeID string `json:"logClassificationLabelEdgeID"`
  1282  	// classification edge id is for the row in the db
  1283  	ClassificationEdgeID string `json:"classificationEdgeID"`
  1284  	// banner edge id is for the target classification
  1285  	BannerEdgeID string `json:"bannerEdgeID"`
  1286  	// label edge id for target label
  1287  	LabelEdgeID string `json:"labelEdgeId"`
  1288  	// label name (label_key in db) is the name for target label
  1289  	LabelName string `json:"labelName"`
  1290  	// description is a brief overview of the classification
  1291  	Description string `json:"description"`
  1292  	// pod name to be targeted
  1293  	Pod string `json:"pod"`
  1294  	// container name to be targeted
  1295  	Container string `json:"container"`
  1296  	// log grouping for the log
  1297  	Type string `json:"type"`
  1298  	// class identifying for the log
  1299  	Class string `json:"class"`
  1300  	// pattern is the sub string to identify the log
  1301  	Pattern string `json:"pattern"`
  1302  }
  1303  
  1304  // type object for log replay
  1305  type LogReplay struct {
  1306  	// Log Replay ID for the replay to be referenced
  1307  	LogReplayID string `json:"logReplayId"`
  1308  	// Cluster's Edge ID for the cluster to be replayed
  1309  	ClusterEdgeID string `json:"clusterEdgeId"`
  1310  	// List of Namespaces
  1311  	Namespaces []string `json:"namespaces,omitempty"`
  1312  	// Start Time to grab logs
  1313  	StartTime string `json:"startTime"`
  1314  	// End Time to grab logs
  1315  	EndTime string `json:"endTime"`
  1316  	// lowest log Level to send up the GCP
  1317  	LogLevel string `json:"logLevel"`
  1318  	// job is queued or not
  1319  	Queued bool `json:"queued"`
  1320  	// job is executed or not
  1321  	Executed bool `json:"executed"`
  1322  	// jobs status
  1323  	Status string `json:"status"`
  1324  	// last updated time
  1325  	UpdatedAt string `json:"updatedAt"`
  1326  }
  1327  
  1328  // type object to grab combined data of kinform log replay jobs and log replays
  1329  type LogReplayJob struct {
  1330  	// Log Replay ID for the replay to be referenced
  1331  	LogReplayID string `json:"logReplayId"`
  1332  	// job is queued or not
  1333  	Queued bool `json:"queued"`
  1334  	// job is executed or not
  1335  	Executed bool `json:"executed"`
  1336  	// jobs status
  1337  	Status string `json:"status"`
  1338  	// Json path of the job status
  1339  	Jsonpath string `json:"jsonpath"`
  1340  	// value of the json path
  1341  	Value string `json:"value"`
  1342  	// is value missing
  1343  	Missing bool `json:"missing"`
  1344  	// name of job
  1345  	Name string `json:"name"`
  1346  	// updated at timestamp
  1347  	UpdatedAt string `json:"updatedAt"`
  1348  }
  1349  
  1350  // LogRequest is the value type for input in GetLogs
  1351  type LoqRequest struct {
  1352  	Kind             string  `json:"kind"`
  1353  	Group            string  `json:"group"`
  1354  	Version          string  `json:"version"`
  1355  	Name             *string `json:"name,omitempty"`
  1356  	Namespace        *string `json:"namespace,omitempty"`
  1357  	GetClusterEdgeID bool    `json:"getClusterEdgeID"`
  1358  }
  1359  
  1360  // MachineTypeInfo is the value type of GetMachineType and GetMachineTypes queries
  1361  type MachineTypeInfo struct {
  1362  	Name      string `json:"name"`
  1363  	GuestCPUs int    `json:"guestCPUs"`
  1364  	MemoryGb  int    `json:"memoryGB"`
  1365  }
  1366  
  1367  type Mutation struct {
  1368  }
  1369  
  1370  // Return type for queries (bannerNamespaces) and mutations (createNamespace)
  1371  type Namespace struct {
  1372  	// unique identifier for a Namespace
  1373  	NamespaceEdgeID string `json:"namespaceEdgeId"`
  1374  	// unique identifier for the Banner the Namespace is in
  1375  	BannerEdgeID string `json:"bannerEdgeId"`
  1376  	// name of the Namespace
  1377  	Name string `json:"name"`
  1378  	// Namespace workload type (platform or tenant)
  1379  	Workload WorkloadType `json:"workload"`
  1380  }
  1381  
  1382  // Input type for the createNamespace mutation
  1383  type NamespaceCreateInput struct {
  1384  	// unique identifier for the Banner the Namespace is in
  1385  	BannerEdgeID string `json:"bannerEdgeId"`
  1386  	// name of the Namespace
  1387  	Name string `json:"name"`
  1388  	// Namespace workload type (platform or tenant)
  1389  	Workload WorkloadType `json:"workload"`
  1390  }
  1391  
  1392  // NamespaceLogLevel is the type namespace and level
  1393  type NamespaceLogLevel struct {
  1394  	// namespace for the level wanted
  1395  	Namespace string `json:"namespace"`
  1396  	// log level
  1397  	Level string `json:"level"`
  1398  }
  1399  
  1400  // NamespaceLogLevelPayload is the input namespace and level
  1401  type NamespaceLogLevelPayload struct {
  1402  	// namespace for the level wanted
  1403  	Namespace *string `json:"namespace,omitempty"`
  1404  	// log level
  1405  	Level *string `json:"level,omitempty"`
  1406  }
  1407  
  1408  // Input for creating a new label to cluster mapping
  1409  type NewClusterLabelInput struct {
  1410  	// cluster id is the id of the cluster the label is attached to
  1411  	ClusterEdgeID string `json:"clusterEdgeId"`
  1412  	// label id is the id of the label we are adding to a cluster
  1413  	LabelEdgeID string `json:"labelEdgeId"`
  1414  }
  1415  
  1416  // Input for creating a new label to terminals mapping
  1417  type NewTerminalLabelInput struct {
  1418  	// terminal id is the id of the terminal the label is attached to
  1419  	TerminalID string `json:"terminalId"`
  1420  	// label id is the id of the label we are adding to a terminal
  1421  	LabelEdgeID string `json:"labelEdgeId"`
  1422  }
  1423  
  1424  // NodeStatus is not implemented anywhere
  1425  type NodeStatus struct {
  1426  	Name       string  `json:"name"`
  1427  	ExternalIP string  `json:"externalIP"`
  1428  	InternalIP string  `json:"internalIP"`
  1429  	Source     *string `json:"source,omitempty"`
  1430  	Status     *string `json:"status,omitempty"`
  1431  }
  1432  
  1433  // NodeStatusInput is not implemented anywhere
  1434  type NodeStatusInput struct {
  1435  	Name       string  `json:"name"`
  1436  	ExternalIP string  `json:"externalIP"`
  1437  	InternalIP string  `json:"internalIP"`
  1438  	Source     *string `json:"source,omitempty"`
  1439  	Status     *string `json:"status,omitempty"`
  1440  }
  1441  
  1442  // Represents an entry into the status.conditions array of a k8s resource
  1443  // recorded by kinform
  1444  type ObjStatusCondition struct {
  1445  	Message            *string `json:"message,omitempty"`
  1446  	Reason             *string `json:"reason,omitempty"`
  1447  	Type               string  `json:"type"`
  1448  	Status             bool    `json:"status"`
  1449  	LastTransitionTime *string `json:"lastTransitionTime,omitempty"`
  1450  }
  1451  
  1452  // OiRole represents a single edge Role and all privileges mapped to the role
  1453  type OiRoleMapping struct {
  1454  	Role       Role         `json:"role"`
  1455  	Privileges []*Privilege `json:"privileges,omitempty"`
  1456  }
  1457  
  1458  // OktaAuthPayload is the value type of Login mutation
  1459  type OktaAuthPayload struct {
  1460  	// access token from bsl used when making service calls
  1461  	Token string `json:"token"`
  1462  	// okta refresh token
  1463  	RefreshToken string `json:"refreshToken"`
  1464  	// first name of the user to login
  1465  	FirstName *string `json:"firstName,omitempty"`
  1466  	// last name of the user to login
  1467  	LastName *string `json:"lastName,omitempty"`
  1468  	// full name of the user to login
  1469  	FullName string `json:"fullName"`
  1470  	// username of the user
  1471  	Username string `json:"username"`
  1472  	// roles that have been granted to the user
  1473  	Roles []string `json:"roles,omitempty"`
  1474  	// All banners that the user is allowed to access. This includes all banners in
  1475  	// an org if a user is an org admin
  1476  	Banners []*Banner `json:"banners,omitempty"`
  1477  	// email of the user to login
  1478  	Email string `json:"email"`
  1479  	// a boolean indicating whether the okta token is valid and not expired
  1480  	Valid bool `json:"valid"`
  1481  	// maximum time, in minutes, before the token expires
  1482  	SessionTime float64 `json:"sessionTime"`
  1483  	// organization user is logged into
  1484  	Organization string `json:"organization"`
  1485  }
  1486  
  1487  // Open is the value type of open hours of a store site
  1488  type Open struct {
  1489  	// opening day hours of the site
  1490  	Day *string `json:"day,omitempty"`
  1491  	// opening time hours of the site
  1492  	Time *string `json:"time,omitempty"`
  1493  }
  1494  
  1495  // OpenInput is the input type of open hours of a store site
  1496  type OpenInput struct {
  1497  	// opening day hours of the site
  1498  	Day *string `json:"day,omitempty"`
  1499  	// opening time hours of the site
  1500  	Time *string `json:"time,omitempty"`
  1501  }
  1502  
  1503  // Input type for createOperatorInterventionCommands query
  1504  type OperatorInterventionCommandInput struct {
  1505  	Name string `json:"name"`
  1506  }
  1507  
  1508  // OperatorInterventionErrorResponse is a type returned from the oi configuration mutations. It is
  1509  // used to indicate issues with the supplied data
  1510  type OperatorInterventionErrorResponse struct {
  1511  	// type is the type of the input data that caused an issue, e.g. role, privilege etc
  1512  	Type OperatorInterventionErrorType `json:"type"`
  1513  	// command is the value of the command that caused an issue
  1514  	Command *string `json:"command,omitempty"`
  1515  	// privilege is the value of the privilege that caused an issue
  1516  	Privilege *string `json:"privilege,omitempty"`
  1517  	// role is the value of the role that caused an issue
  1518  	Role *string `json:"role,omitempty"`
  1519  }
  1520  
  1521  // Input type for update, read and delete operator intervention privilege.
  1522  type OperatorInterventionPrivilegeInput struct {
  1523  	// The name of the privilege.
  1524  	Name string `json:"name"`
  1525  }
  1526  
  1527  type PageInfo struct {
  1528  	PreviousCursor string `json:"previousCursor"`
  1529  	CurrentCursor  string `json:"currentCursor"`
  1530  	NextCursor     string `json:"nextCursor"`
  1531  	HasNextPage    bool   `json:"hasNextPage"`
  1532  	TotalCount     int    `json:"totalCount"`
  1533  }
  1534  
  1535  // The status of the pods for the helm workload
  1536  type Pods struct {
  1537  	// The status of the component of the pod directly from k8s
  1538  	Status string `json:"status"`
  1539  	// The name of the pod
  1540  	Name string `json:"name"`
  1541  	// The status message of the pod directly from k8s
  1542  	Message string `json:"message"`
  1543  }
  1544  
  1545  // privilege represents a single oi privilege
  1546  type Privilege struct {
  1547  	Name string `json:"name"`
  1548  }
  1549  
  1550  type Provider struct {
  1551  	ProviderSettingsID string `json:"providerSettingsID"`
  1552  	PinAttempts        int    `json:"pinAttempts"`
  1553  	PinExpire          string `json:"pinExpire"`
  1554  	PinHistory         int    `json:"pinHistory"`
  1555  	PinLength          int    `json:"pinLength"`
  1556  	BarcodeExpire      string `json:"barcodeExpire"`
  1557  	BarcodePrefix      string `json:"barcodePrefix"`
  1558  	BarcodeLength      int    `json:"barcodeLength"`
  1559  	BcryptCost         int    `json:"bcryptCost"`
  1560  	ProfileExpire      string `json:"profileExpire"`
  1561  }
  1562  
  1563  type ProviderInput struct {
  1564  	PinAttempts   *int    `json:"pinAttempts,omitempty"`
  1565  	PinExpire     *string `json:"pinExpire,omitempty"`
  1566  	PinHistory    *int    `json:"pinHistory,omitempty"`
  1567  	PinLength     *int    `json:"pinLength,omitempty"`
  1568  	BarcodeExpire *string `json:"barcodeExpire,omitempty"`
  1569  	BarcodePrefix *string `json:"barcodePrefix,omitempty"`
  1570  	BarcodeLength *int    `json:"barcodeLength,omitempty"`
  1571  	BcryptCost    *int    `json:"bcryptCost,omitempty"`
  1572  	ProfileExpire *string `json:"profileExpire,omitempty"`
  1573  }
  1574  
  1575  // Query returns generated.QueryResolver implementation.
  1576  type Query struct {
  1577  }
  1578  
  1579  // RegistrationPayload is the value type of payload in the registerCluster mutation
  1580  type RegistrationPayload struct {
  1581  	// name of the store/cluster
  1582  	Name string `json:"name"`
  1583  	// clusterType is the type of cluster we are registering sds, gke ect. Will be represented as a label in sql
  1584  	ClusterType string `json:"clusterType"`
  1585  	// banner name is the name of the banner the cluster will be registered in
  1586  	BannerName string `json:"bannerName"`
  1587  	// banner edge is the optional edge id of the banner that should be used to be more exact. Banner name provided for connect cli command.
  1588  	BannerEdgeID *string `json:"bannerEdgeID,omitempty"`
  1589  	// fleet is the type of cluster we are registering store, basic-store, cluster-infra etc. Will be represented as a label in sql
  1590  	Fleet string `json:"fleet"`
  1591  	// fleetVersion is the version of the cluster fleet manifests to apply. Matches the tag on the fleet pallet, e.g. store. Defaults to latest
  1592  	FleetVersion *string `json:"fleetVersion,omitempty"`
  1593  	// autoUpdateEnabled determines whether the cluster's fleetVersion will be automatically kept up-to-date with new versions
  1594  	AutoUpdateEnabled *bool `json:"autoUpdateEnabled,omitempty"`
  1595  	// store info is information about the cluster relating to store
  1596  	StoreInfo *StoreInfo `json:"storeInfo,omitempty"`
  1597  	// Cluster info is the description of the cluster
  1598  	ClusterInfo *ClusterInfo `json:"clusterInfo,omitempty"`
  1599  }
  1600  
  1601  type RegistrationResponse struct {
  1602  	// cluster edge id is the id created by edge for the cluster
  1603  	ClusterEdgeID string `json:"clusterEdgeId"`
  1604  	// site id is the bsl site id attached to the cluster. Should be the same as site id that is provided
  1605  	SiteID *string `json:"siteId,omitempty"`
  1606  }
  1607  
  1608  // ReplicationStatus represents the status of a replication for couchdb
  1609  type ReplicationStatus struct {
  1610  	Name   string `json:"name"`
  1611  	Status string `json:"status"`
  1612  }
  1613  
  1614  type Rule struct {
  1615  	Privilege *Privilege `json:"privilege"`
  1616  	Commands  []*Command `json:"commands,omitempty"`
  1617  }
  1618  
  1619  // Input for finding mapings of labels to clusters
  1620  type SearchClusterLabelInput struct {
  1621  	// cluster id is the id of the cluster we are looking for labels on
  1622  	ClusterEdgeID *string `json:"clusterEdgeId,omitempty"`
  1623  	// label id is the id of the labels we are looking for
  1624  	LabelEdgeID *string `json:"labelEdgeId,omitempty"`
  1625  }
  1626  
  1627  // Input for finding mapings of labels to terminals. All fields optional but one required to be set for a successful api call.
  1628  type SearchTerminalLabelInput struct {
  1629  	// terminal id is the id of the terminal we are looking for labels on
  1630  	TerminalID *string `json:"terminalId,omitempty"`
  1631  	// label edge id is the id of the labels we are looking for
  1632  	LabelEdgeID *string `json:"labelEdgeId,omitempty"`
  1633  	// cluster edge id is the edge id of the cluster we are looking for labels on
  1634  	ClusterEdgeID *string `json:"clusterEdgeId,omitempty"`
  1635  }
  1636  
  1637  // Secret is the value type of GetSecrets query
  1638  type Secret struct {
  1639  	Name            string  `json:"name"`
  1640  	Description     *string `json:"description,omitempty"`
  1641  	FullDescription *string `json:"fullDescription,omitempty"`
  1642  	Namespace       string  `json:"namespace"`
  1643  	CreatedOn       string  `json:"createdOn"`
  1644  }
  1645  
  1646  // SecretManagerResponse is the value type of SecretManagerSecrets query. Includes information about a secret.
  1647  type SecretManagerResponse struct {
  1648  	// Name of the secret.
  1649  	Name string `json:"name"`
  1650  	// GCP project where the secret is stored.
  1651  	Project string `json:"project"`
  1652  	// When the secret was created.
  1653  	Created *string `json:"created,omitempty"`
  1654  	// When the secret was last updated.
  1655  	Updated *string `json:"updated,omitempty"`
  1656  	// Values in the secret.
  1657  	Values []*KeyValuesOutput `json:"values,omitempty"`
  1658  	// The type of the secret (helm-repository, k8s, docker pull).
  1659  	Type *string `json:"type,omitempty"`
  1660  	// Whether the secret is synced to the clusters in the banner.
  1661  	Workload *string `json:"workload,omitempty"`
  1662  	// Owner of the secret.
  1663  	Owner *string `json:"owner,omitempty"`
  1664  }
  1665  
  1666  // ServiceAccount is not implemented anywhere
  1667  type ServiceAccount struct {
  1668  	ProjectID    *string `json:"Project_Id,omitempty"`
  1669  	PrivateKeyID *string `json:"Private_Key_Id,omitempty"`
  1670  	PrivateKey   *string `json:"Private_Key,omitempty"`
  1671  	ClientEmail  *string `json:"Client_Email,omitempty"`
  1672  	TokenURI     *string `json:"Token_Uri,omitempty"`
  1673  }
  1674  
  1675  type Site struct {
  1676  	// siteName of the store
  1677  	SiteName *string `json:"siteName,omitempty"`
  1678  	// status of the store site
  1679  	Status *string `json:"status,omitempty"`
  1680  	// enterpriseUnitName of the store site
  1681  	EnterpriseUnitName *string `json:"enterpriseUnitName,omitempty"`
  1682  	// coordinates of the store site
  1683  	Coordinates *CoordinatesInput `json:"coordinates,omitempty"`
  1684  	// description of the site
  1685  	Description *string `json:"description,omitempty"`
  1686  	// referenceId of the site
  1687  	ReferenceID *string `json:"referenceId,omitempty"`
  1688  	// timeZone of the site
  1689  	TimeZone *string `json:"timeZone,omitempty"`
  1690  	// parentEnterpriseUnitId of the site
  1691  	ParentEnterpriseUnitID *string `json:"parentEnterpriseUnitId,omitempty"`
  1692  	// locked status of the site
  1693  	Locked *bool `json:"locked,omitempty"`
  1694  	// currency of the site
  1695  	Currency *string `json:"currency,omitempty"`
  1696  	// contact of the site
  1697  	Contact *ContactInput `json:"contact,omitempty"`
  1698  	// contacts for the site
  1699  	Contacts []*ContactsInput `json:"contacts,omitempty"`
  1700  	// address of the site
  1701  	Address *AddressInput `json:"address,omitempty"`
  1702  	// dayParts of the site
  1703  	Dayparts []*DaypartsInput `json:"dayparts,omitempty"`
  1704  	// customAttributeSets of the site
  1705  	CustomAttributeSets []*CustomAttributeSetsInput `json:"customAttributeSets,omitempty"`
  1706  	// enterpriseSettings of the site
  1707  	EnterpriseSettings []*EnterpriseSettingsInput `json:"enterpriseSettings,omitempty"`
  1708  	// hours of the site
  1709  	Hours []*HoursInput `json:"hours,omitempty"`
  1710  }
  1711  
  1712  // Store is the value type of GetStores query
  1713  type Store struct {
  1714  	Name           string         `json:"name"`
  1715  	ClusterEdgeID  string         `json:"clusterEdgeId"`
  1716  	ClusterType    string         `json:"clusterType"`
  1717  	BannerEdgeID   string         `json:"bannerEdgeId"`
  1718  	CreatedOn      string         `json:"createdOn"`
  1719  	Endpoint       *string        `json:"endpoint,omitempty"`
  1720  	IsClusterReady bool           `json:"isClusterReady"`
  1721  	Status         *ClusterStatus `json:"status,omitempty"`
  1722  	MachineType    *string        `json:"machineType,omitempty"`
  1723  	KubeVersion    *string        `json:"kubeVersion,omitempty"`
  1724  }
  1725  
  1726  // StoreInfo is the value type of storeInfo in the RegistrationPayload input
  1727  type StoreInfo struct {
  1728  	// StoreID is currently unused but was thought to be am id provided by zynstra
  1729  	StoreID *string `json:"storeID,omitempty"`
  1730  	// SiteID is the site id from bsl we will try to attach to the cluster. If the site does not exist an error will be returned
  1731  	SiteID *string `json:"siteID,omitempty"`
  1732  	// createSite will create a new site in bsl. both siteID and createSite should not be set
  1733  	CreateSite *bool `json:"createSite,omitempty"`
  1734  	// latitude for the site being created optional
  1735  	Latitude *float64 `json:"latitude,omitempty"`
  1736  	// longitude for the site being created optional
  1737  	Longitude *float64 `json:"longitude,omitempty"`
  1738  	// reference id for the site being created
  1739  	ReferenceID *string `json:"referenceID,omitempty"`
  1740  	// bsl organization if not provided in the token
  1741  	BslOrganization *string `json:"bslOrganization,omitempty"`
  1742  }
  1743  
  1744  // StoreSiteInfo is the value type of site query
  1745  type StoreSiteInfo struct {
  1746  	// siteName of the store
  1747  	SiteName string `json:"siteName"`
  1748  	// status of the store site
  1749  	Status string `json:"status"`
  1750  	// enterpriseUnitName of the store site
  1751  	EnterpriseUnitName string `json:"enterpriseUnitName"`
  1752  	// coordinates of the store site
  1753  	Coordinates *Coordinates `json:"coordinates"`
  1754  	// description of the site
  1755  	Description *string `json:"description,omitempty"`
  1756  	// id of the store
  1757  	ID *string `json:"id,omitempty"`
  1758  	// referenceId of the site
  1759  	ReferenceID *string `json:"referenceId,omitempty"`
  1760  	// timeZone of the site
  1761  	TimeZone *string `json:"timeZone,omitempty"`
  1762  	// parentEnterpriseUnitId of the site
  1763  	ParentEnterpriseUnitID *string `json:"parentEnterpriseUnitId,omitempty"`
  1764  	// organizationName of the site
  1765  	OrganizationName *string `json:"organizationName,omitempty"`
  1766  	// locked status of the site
  1767  	Locked *bool `json:"locked,omitempty"`
  1768  	// lastModifiedOn date of the site
  1769  	LastModifiedOn *string `json:"lastModifiedOn,omitempty"`
  1770  	// deactivatedOn date of the site
  1771  	DeactivatedOn *string `json:"deactivatedOn,omitempty"`
  1772  	// createdOn date of the site
  1773  	CreatedOn *string `json:"createdOn,omitempty"`
  1774  	// currency of the site
  1775  	Currency *string `json:"currency,omitempty"`
  1776  	// contact of the site
  1777  	Contact *Contact `json:"contact,omitempty"`
  1778  	// contacts of the site
  1779  	Contacts []*Contacts `json:"contacts,omitempty"`
  1780  	// address of the site
  1781  	Address *Address `json:"address,omitempty"`
  1782  	// dayParts of the site
  1783  	Dayparts []*Dayparts `json:"dayparts,omitempty"`
  1784  	// customAttributeSets of the site
  1785  	CustomAttributeSets []*CustomAttributeSets `json:"customAttributeSets,omitempty"`
  1786  	// enterpriseSettings of the site
  1787  	EnterpriseSettings []*EnterpriseSettings `json:"enterpriseSettings,omitempty"`
  1788  	// hours of the site
  1789  	Hours []*Hours `json:"hours,omitempty"`
  1790  	// config map error
  1791  	ConfigMapError []string `json:"configMapError,omitempty"`
  1792  }
  1793  
  1794  // StoreStatusInfo is the value type of getStoreStatus query
  1795  type StoreStatusInfo struct {
  1796  	// name of the store
  1797  	Name string `json:"name"`
  1798  	// banner is the name of the banner that the store belongs to
  1799  	BannerEdgeID string `json:"bannerEdgeId"`
  1800  	// status contains the status and message information of the store
  1801  	Status *ClusterStatus `json:"status,omitempty"`
  1802  	// kubeveriosn is the the KubeletVersion of the node resources of the store
  1803  	KubeVersion *string `json:"kubeVersion,omitempty"`
  1804  	// kustomizationStatus is a list of kustomization statuses of the store
  1805  	KustomizationStatus []*KustomizationStatusInformation `json:"kustomizationStatus,omitempty"`
  1806  	// bucketStatus is a list of bucket statuses of the store
  1807  	BucketStatus []*BucketStatusInformation `json:"bucketStatus,omitempty"`
  1808  }
  1809  
  1810  // SupportStatus represents the grouping of infra/edge os status
  1811  type SupportStatus struct {
  1812  	InfraSupportStatus  *InfraSupportStatus  `json:"infraSupportStatus,omitempty"`
  1813  	EdgeOsSupportStatus *EdgeOsSupportStatus `json:"edgeOsSupportStatus,omitempty"`
  1814  }
  1815  
  1816  type Tenant struct {
  1817  	TenantEdgeID string `json:"tenantEdgeId"`
  1818  	TenantBSLId  string `json:"tenantBSLId"`
  1819  	OrgName      string `json:"orgName"`
  1820  }
  1821  
  1822  type TenantInput struct {
  1823  	TenantBSLId string `json:"tenantBSLId"`
  1824  	OrgName     string `json:"orgName"`
  1825  }
  1826  
  1827  // Terminal is the value type for terminals and terminalsByCluster queries and createTerminal mutation
  1828  type Terminal struct {
  1829  	// a unique identifier of a terminal
  1830  	TerminalID string `json:"terminalId"`
  1831  	// cluster edge id is the id created by edge for the cluster
  1832  	ClusterEdgeID string `json:"clusterEdgeId"`
  1833  	// cluster name is the human readable name for the cluster the terminal belongs to
  1834  	ClusterName string `json:"clusterName"`
  1835  	// hostname for the terminal, set to ien-{normalised mac address of first NIC} if not provided
  1836  	Hostname string `json:"hostname"`
  1837  	// customer identifier for the lane
  1838  	Lane *string `json:"lane,omitempty"`
  1839  	// the role specifies how the k8s node runs
  1840  	Role TerminalRoleType `json:"role"`
  1841  	// the class differentiates between front-of-house touchpoints and back-of-house servers
  1842  	Class *TerminalClassType `json:"class,omitempty"`
  1843  	// discoverDisks specifies the disk discovery mode for the terminal
  1844  	DiscoverDisks *TerminalDiscoverDisksType `json:"discoverDisks,omitempty"`
  1845  	// bootDisk specifies the disk the terminal will boot from
  1846  	BootDisk *string `json:"bootDisk,omitempty"`
  1847  	// a list of interfaces associated with a terminal
  1848  	Interfaces []*TerminalInterface `json:"interfaces"`
  1849  	// the primary interface for the terminal
  1850  	PrimaryInterface *string `json:"primaryInterface,omitempty"`
  1851  	// activation code for terminal
  1852  	ActivationCode *string `json:"activationCode,omitempty"`
  1853  	// current version of the assoicated IEN as major.minor.patch
  1854  	Version string `json:"version"`
  1855  	// a list of disks configured for the terminal
  1856  	Disks []*TerminalDisk `json:"disks,omitempty"`
  1857  	// an existing efi partition on the terminal not to be wiped during install
  1858  	ExistingEfiPart *string `json:"existingEfiPart,omitempty"`
  1859  	// swap enablement of a terminal
  1860  	SwapEnabled bool `json:"swapEnabled"`
  1861  	// list of terminal's labels
  1862  	Labels []*TerminalLabel `json:"labels,omitempty"`
  1863  	// Status retrieved from Kube Node CR
  1864  	Status *TerminalStatus `json:"status,omitempty"`
  1865  	// Replication Status retrieves the couchdb replication status of the node
  1866  	ReplicationStatus *ReplicationStatus `json:"replicationStatus,omitempty"`
  1867  }
  1868  
  1869  // TerminalAddress is the value type for the address in the TerminalInterface type
  1870  type TerminalAddress struct {
  1871  	// a unique identifier for a terminal address
  1872  	TerminalAddressID string `json:"terminalAddressId"`
  1873  	// the IP address to be used by the terminal on the store LAN
  1874  	IP *string `json:"ip,omitempty"`
  1875  	// the IP bitmask size
  1876  	PrefixLen int `json:"prefixLen"`
  1877  	// the type of an address
  1878  	Family InetType `json:"family"`
  1879  	// the terminal interface connected to the terminal address
  1880  	TerminalInterfaceID string `json:"terminalInterfaceId"`
  1881  }
  1882  
  1883  // TerminalAddressInput is the value type for the input for
  1884  type TerminalAddressCreateInput struct {
  1885  	// the IP address to be used by the terminal on the store LAN
  1886  	IP *string `json:"ip,omitempty"`
  1887  	// the IP bitmask size
  1888  	PrefixLen int `json:"prefixLen"`
  1889  	// the type of an address
  1890  	Family InetType `json:"family"`
  1891  }
  1892  
  1893  type TerminalAddressIDInput struct {
  1894  	// a unique identifier of a terminal address
  1895  	TerminalAddressID string `json:"terminalAddressId"`
  1896  	// the values of the terminal address to update
  1897  	TerminalAddressValues *TerminalAddressUpdateInput `json:"terminalAddressValues"`
  1898  }
  1899  
  1900  type TerminalAddressUpdateInput struct {
  1901  	// the IP address to be used by the terminal on the store LAN
  1902  	IP *string `json:"ip,omitempty"`
  1903  	// the IP bitmask size
  1904  	PrefixLen *int `json:"prefixLen,omitempty"`
  1905  	// the type of an address
  1906  	Family *InetType `json:"family,omitempty"`
  1907  }
  1908  
  1909  // Terminal configurations to bootstrap the cluster
  1910  type TerminalBootstrap struct {
  1911  	// Terminal configurations (yaml)
  1912  	Configuration string `json:"configuration"`
  1913  }
  1914  
  1915  // TerminalInput is a value type of the input in the createTerminal mutation
  1916  type TerminalCreateInput struct {
  1917  	// hostname for the terminal, set to ien-{normalised mac address of first NIC} if not provided
  1918  	Hostname *string `json:"hostname,omitempty"`
  1919  	// customer identifier for the lane
  1920  	Lane *string `json:"lane,omitempty"`
  1921  	// the role specifies how the k8s node runs
  1922  	Role TerminalRoleType `json:"role"`
  1923  	// the class differentiates between front-of-house touchpoints and back-of-house servers
  1924  	Class *TerminalClassType `json:"class,omitempty"`
  1925  	// discoverDisks specifies the disk discovery mode for the terminal
  1926  	DiscoverDisks *TerminalDiscoverDisksType `json:"discoverDisks,omitempty"`
  1927  	// bootDisk specifies the disk the terminal will boot from
  1928  	BootDisk *string `json:"bootDisk,omitempty"`
  1929  	// the cluster associated with the terminal
  1930  	ClusterEdgeID string `json:"clusterEdgeId"`
  1931  	// a list of interfaces associated with a terminal
  1932  	Interfaces []*TerminalInterfaceCreateInput `json:"interfaces"`
  1933  	// a list of disks to configure for the terminal
  1934  	Disks []*TerminalDiskCreateInput `json:"disks,omitempty"`
  1935  	// an existing efi partition on the terminal not to be wiped during install
  1936  	ExistingEfiPart *string `json:"existingEfiPart,omitempty"`
  1937  	// swap enablement of a terminal, defaults to false
  1938  	SwapEnabled *bool `json:"swapEnabled,omitempty"`
  1939  }
  1940  
  1941  type TerminalDevices struct {
  1942  	// list of device classes on a terminal
  1943  	Classes []*ClassDeviceMap `json:"classes,omitempty"`
  1944  }
  1945  
  1946  type TerminalDisk struct {
  1947  	// unique identifier for the disk
  1948  	TerminalDiskID string `json:"terminalDiskId"`
  1949  	// the terminal this disk is associated with
  1950  	TerminalID string `json:"terminalId"`
  1951  	// indicates whether the disk is included or excluded form the LVM thin pool
  1952  	IncludeDisk bool `json:"includeDisk"`
  1953  	// indicates whether we expect the disk to be empty. If false then existing data will be overwritten
  1954  	ExpectEmpty bool `json:"expectEmpty"`
  1955  	// the terminal disk path
  1956  	DevicePath string `json:"devicePath"`
  1957  	// indicates whether EdgeOS should be be installed to a new partition, which will consume all un-allocated disk space
  1958  	UsePart bool `json:"usePart"`
  1959  }
  1960  
  1961  type TerminalDiskCreateInput struct {
  1962  	// indicates whether the disk is included or excluded form the LVM thin pool
  1963  	IncludeDisk bool `json:"includeDisk"`
  1964  	// indicates whether we expect the disk to be empty. If false then existing data will be overwritten
  1965  	ExpectEmpty bool `json:"expectEmpty"`
  1966  	// the terminal disk path
  1967  	DevicePath string `json:"devicePath"`
  1968  	// indicates whether EdgeOS should be be installed to a new partition, which will consume all un-allocated disk space
  1969  	UsePart bool `json:"usePart"`
  1970  }
  1971  
  1972  type TerminalDiskIDInput struct {
  1973  	// unique identifier for the disk
  1974  	TerminalDiskID string `json:"terminalDiskId"`
  1975  	// the values of the terminal disk to update
  1976  	TerminalDiskValues *TerminalDiskUpdateInput `json:"terminalDiskValues"`
  1977  }
  1978  
  1979  type TerminalDiskUpdateInput struct {
  1980  	// indicates whether the disk is included or excluded form the LVM thin pool
  1981  	IncludeDisk *bool `json:"includeDisk,omitempty"`
  1982  	// indicates whether we expect the disk to be empty. If false then existing data will be overwritten
  1983  	ExpectEmpty *bool `json:"expectEmpty,omitempty"`
  1984  	// the terminal disk path
  1985  	DevicePath *string `json:"devicePath,omitempty"`
  1986  	// indicates whether EdgeOS should be be installed to a new partition, which will consume all un-allocated disk space
  1987  	UsePart *bool `json:"usePart,omitempty"`
  1988  }
  1989  
  1990  // the value type for the updateTerminal mutation
  1991  type TerminalIDInput struct {
  1992  	// a unique identifier of a terminal
  1993  	TerminalID string `json:"terminalId"`
  1994  	// the parts of the terminal that can be changed after its creation
  1995  	TerminalValues *TerminalUpdateInput `json:"terminalValues"`
  1996  }
  1997  
  1998  // TerminalInterface is the value type for interfaces in the terminal type
  1999  type TerminalInterface struct {
  2000  	// a unique identifier of a terminal interface
  2001  	TerminalInterfaceID string `json:"terminalInterfaceId"`
  2002  	// the terminal this interface is associated with
  2003  	TerminalID string `json:"terminalId"`
  2004  	// the mac address of the terminal interface
  2005  	MacAddress string `json:"macAddress"`
  2006  	// specifies if DHCP is set for IPv4 addressing
  2007  	Dhcp4 bool `json:"dhcp4"`
  2008  	// specifies if DHCP is set for IPv6 addressing
  2009  	Dhcp6 bool `json:"dhcp6"`
  2010  	// a list terminal address connected to the terminal interface
  2011  	Addresses []*TerminalAddress `json:"addresses,omitempty"`
  2012  	// default gateway address used by a terminal for ipv4
  2013  	Gateway4 *string `json:"gateway4,omitempty"`
  2014  	// default gateway address used by a terminal for ipv6
  2015  	Gateway6 *string `json:"gateway6,omitempty"`
  2016  }
  2017  
  2018  // TerminalInterfaceInput is the value type for the input for TerminalInput
  2019  type TerminalInterfaceCreateInput struct {
  2020  	// the mac address of the terminal interface
  2021  	MacAddress string `json:"macAddress"`
  2022  	// specifies if DHCP is set for IPv4 addressing
  2023  	Dhcp4 bool `json:"dhcp4"`
  2024  	// specifies if DHCP is set for IPv6 addressing
  2025  	Dhcp6 bool `json:"dhcp6"`
  2026  	// a list terminal address connected to the terminal interface
  2027  	Addresses []*TerminalAddressCreateInput `json:"addresses,omitempty"`
  2028  	// default gateway address used by a terminal for ipv4
  2029  	Gateway4 *string `json:"gateway4,omitempty"`
  2030  	// default gateway address used by a terminal for ipv6
  2031  	Gateway6 *string `json:"gateway6,omitempty"`
  2032  }
  2033  
  2034  type TerminalInterfaceIDInput struct {
  2035  	// a unique identifier of a terminal interface
  2036  	TerminalInterfaceID string `json:"terminalInterfaceId"`
  2037  	// the values of the terminal interface to update
  2038  	TerminalInterfaceValues *TerminalInterfaceUpdateInput `json:"terminalInterfaceValues"`
  2039  }
  2040  
  2041  type TerminalInterfaceUpdateInput struct {
  2042  	// the mac address of the terminal interface
  2043  	MacAddress *string `json:"macAddress,omitempty"`
  2044  	// specifies if DHCP is set for IPv4 addressing
  2045  	Dhcp4 *bool `json:"dhcp4,omitempty"`
  2046  	// specifies if DHCP is set for IPv6 addressing
  2047  	Dhcp6 *bool `json:"dhcp6,omitempty"`
  2048  	// a list terminal address connected to the terminal interface
  2049  	Addresses []*TerminalAddressIDInput `json:"addresses,omitempty"`
  2050  	// default gateway address used by a terminal for ipv4
  2051  	Gateway4 *string `json:"gateway4,omitempty"`
  2052  	// default gateway address used by a terminal for ipv6
  2053  	Gateway6 *string `json:"gateway6,omitempty"`
  2054  }
  2055  
  2056  type TerminalLabel struct {
  2057  	// terminal id is the id of the terminal
  2058  	TerminalID string `json:"terminalId"`
  2059  	// label id is the id of the label
  2060  	LabelEdgeID string `json:"labelEdgeId"`
  2061  	// terminal label Edge id is the unique identifier of the terminal label
  2062  	TerminalLabelEdgeID string `json:"terminalLabelEdgeId"`
  2063  	// Label details
  2064  	Label *Label `json:"label"`
  2065  }
  2066  
  2067  type TerminalStatus struct {
  2068  	Message string `json:"message"`
  2069  	Status  string `json:"status"`
  2070  }
  2071  
  2072  func (TerminalStatus) IsIStatus()              {}
  2073  func (this TerminalStatus) GetMessage() string { return this.Message }
  2074  func (this TerminalStatus) GetStatus() string  { return this.Status }
  2075  
  2076  type TerminalUpdateInput struct {
  2077  	// customer identifier for the lane
  2078  	Lane *string `json:"lane,omitempty"`
  2079  	// the role specifies how the k8s node runs
  2080  	Role *TerminalRoleType `json:"role,omitempty"`
  2081  	// the class differentiates between front-of-house touchpoints and back-of-house servers
  2082  	Class *TerminalClassType `json:"class,omitempty"`
  2083  	// discoverDisks specifies the disk discovery mode for the terminal
  2084  	DiscoverDisks *TerminalDiscoverDisksType `json:"discoverDisks,omitempty"`
  2085  	// bootDisk specifies the disk the terminal will boot from
  2086  	BootDisk *string `json:"bootDisk,omitempty"`
  2087  	// a list of interfaces associated with a terminal
  2088  	Interfaces []*TerminalInterfaceIDInput `json:"interfaces,omitempty"`
  2089  	// the primary interface for the terminal
  2090  	PrimaryInterface *string `json:"primaryInterface,omitempty"`
  2091  	// a list of disks to configure for the terminal
  2092  	Disks []*TerminalDiskIDInput `json:"disks,omitempty"`
  2093  	// an existing efi partition on the terminal not to be wiped during install
  2094  	ExistingEfiPart *string `json:"existingEfiPart,omitempty"`
  2095  	// swap enablement of a terminal
  2096  	SwapEnabled *bool `json:"swapEnabled,omitempty"`
  2097  }
  2098  
  2099  // Totp is the value type of the GetTotp query
  2100  type Totp struct {
  2101  	Code      string `json:"code"`
  2102  	CreatedAt string `json:"createdAt"`
  2103  	ExpiresAt string `json:"expiresAt"`
  2104  	Duration  int    `json:"duration"`
  2105  }
  2106  
  2107  // UIConfig is the output value type of UIConfig query
  2108  type UIConfig struct {
  2109  	Issuer       string `json:"issuer"`
  2110  	ClientID     string `json:"clientId"`
  2111  	LdKey        string `json:"ldKey"`
  2112  	GaTrackingID string `json:"gaTrackingId"`
  2113  }
  2114  
  2115  type UpdateBannerConfig struct {
  2116  	VncReadWriteAuthRequired         *bool `json:"vncReadWriteAuthRequired,omitempty"`
  2117  	VncReadWriteAuthRequiredOverride *bool `json:"vncReadWriteAuthRequiredOverride,omitempty"`
  2118  	VncReadAuthRequired              *bool `json:"vncReadAuthRequired,omitempty"`
  2119  	VncReadAuthRequiredOverride      *bool `json:"vncReadAuthRequiredOverride,omitempty"`
  2120  }
  2121  
  2122  // Input object for updating log classifications
  2123  // TODO: TO BE DEPRECATED IN 0.25 @RS185722
  2124  type UpdateClassificationInput struct {
  2125  	// description is a brief overview of the classification
  2126  	Description *string `json:"description,omitempty"`
  2127  	// pod name to be targeted
  2128  	Pod *string `json:"pod,omitempty"`
  2129  	// container name to be targeted
  2130  	Container *string `json:"container,omitempty"`
  2131  	// log grouping for the log
  2132  	Type *string `json:"type,omitempty"`
  2133  	// class identifying for the log
  2134  	Class *LogClassSelection `json:"class,omitempty"`
  2135  	// pattern is the sub string to identify the log
  2136  	Pattern *string `json:"pattern,omitempty"`
  2137  }
  2138  
  2139  type UpdateClusterConfig struct {
  2140  	AcRelay                    *bool                       `json:"acRelay,omitempty"`
  2141  	PxeEnabled                 *bool                       `json:"pxeEnabled,omitempty"`
  2142  	BootstrapAck               *bool                       `json:"bootstrapAck,omitempty"`
  2143  	VpnEnabled                 *bool                       `json:"vpnEnabled,omitempty"`
  2144  	ThickPos                   *bool                       `json:"thickPos,omitempty"`
  2145  	EgressGatewayEnabled       *bool                       `json:"egressGatewayEnabled,omitempty"`
  2146  	GatewayRateLimitingEnabled *bool                       `json:"gatewayRateLimitingEnabled,omitempty"`
  2147  	UplinkRateLimit            *string                     `json:"uplinkRateLimit,omitempty"`
  2148  	DownlinkRateLimit          *string                     `json:"downlinkRateLimit,omitempty"`
  2149  	ClusterLogLevel            *string                     `json:"clusterLogLevel,omitempty"`
  2150  	NamespaceLogLevels         []*NamespaceLogLevelPayload `json:"namespaceLogLevels,omitempty"`
  2151  	MaximumLanOutageHours      *int                        `json:"maximumLanOutageHours,omitempty"`
  2152  	AutoUpdateEnabled          *bool                       `json:"autoUpdateEnabled,omitempty"`
  2153  	// Deprecated: linkerd fields are deprecated
  2154  	LinkerdIdentityIssuerCertDuration *int `json:"linkerdIdentityIssuerCertDuration,omitempty"`
  2155  	// Deprecated: linkerd fields are deprecated
  2156  	LinkerdIdentityIssuerCertRenewBefore *int  `json:"linkerdIdentityIssuerCertRenewBefore,omitempty"`
  2157  	VncReadWriteAuthRequired             *bool `json:"vncReadWriteAuthRequired,omitempty"`
  2158  	VncReadAuthRequired                  *bool `json:"vncReadAuthRequired,omitempty"`
  2159  }
  2160  
  2161  // input object for log replay options
  2162  type UpdateLogReplayPayload struct {
  2163  	// job is queued or not
  2164  	Queued *bool `json:"queued,omitempty"`
  2165  	// job is executed or not
  2166  	Executed *bool `json:"executed,omitempty"`
  2167  	// jobs status
  2168  	Status *LogReplayStatus `json:"status,omitempty"`
  2169  }
  2170  
  2171  type UpdateNetworkServiceInfo struct {
  2172  	// id of the network service
  2173  	NetworkServiceID string `json:"networkServiceId"`
  2174  	// ip address of the network service
  2175  	IP string `json:"ip"`
  2176  	// network family inet (ipv4) or inet6 (ipv6)
  2177  	Family string `json:"family"`
  2178  	// priority of the network service (default 100)
  2179  	Priority *int `json:"priority,omitempty"`
  2180  }
  2181  
  2182  // UpdateOperatorInterventionRoleMappingInput is the input type for the updateOperatorInterventionRoleMapping mutation.
  2183  type UpdateOperatorInterventionRoleMappingInput struct {
  2184  	// role is the Edge Role that a new mapping is being created for
  2185  	Role string `json:"role"`
  2186  	// privileges is the list of privileges to be added to the existing privileges mapped to the given role.
  2187  	Privileges []*OperatorInterventionPrivilegeInput `json:"privileges,omitempty"`
  2188  }
  2189  
  2190  // UpdateOperatorInterventionRoleMappingResponse is the response type of the updateOperatorInterventionRoleMapping mutation.
  2191  type UpdateOperatorInterventionRoleMappingResponse struct {
  2192  	// errors indicate if any of the roles or privileges referenced in the
  2193  	// UpdateOperatorInterventionRoleMappingInput are invalid. If any errors are present, no mappings
  2194  	// will be added
  2195  	Errors []*OperatorInterventionErrorResponse `json:"errors,omitempty"`
  2196  }
  2197  
  2198  type UpdateOperatorInterventionRuleInput struct {
  2199  	Privilege *OperatorInterventionPrivilegeInput `json:"privilege"`
  2200  	Commands  []*OperatorInterventionCommandInput `json:"commands,omitempty"`
  2201  }
  2202  
  2203  type UpdateOperatorInterventionRuleResponse struct {
  2204  	// List of errors that occurred during the deletion process.
  2205  	Errors []*OperatorInterventionErrorResponse `json:"errors,omitempty"`
  2206  }
  2207  
  2208  // UpdateUser is the value type of Update User Profile mutation
  2209  type UpdateUser struct {
  2210  	// full qualified username of the user profile to update
  2211  	Username string `json:"username" validate:"required,alphanum,min=3,max=30"`
  2212  	// family name of the user profile to update
  2213  	FamilyName *string `json:"familyName,omitempty" validate:"alphanum,min=3,max=30"`
  2214  	// full name of the user profile to update
  2215  	FullName *string `json:"fullName,omitempty" validate:"alphanum,min=3,max=30"`
  2216  	// given name of the user profile to update
  2217  	GivenName *string `json:"givenName,omitempty" validate:"alphanum,min=3,max=30"`
  2218  	// status of the user profile to update
  2219  	Status *string `json:"status,omitempty" validate:"alphanum"`
  2220  	// email of the user profile to update
  2221  	Email *string `json:"email,omitempty" validate:"email"`
  2222  	// telephone number of the user profile to update
  2223  	TelephoneNumber *string `json:"telephoneNumber,omitempty" validate:"number"`
  2224  	// address of the user profile to update
  2225  	Address *UpdateUserAddress `json:"address,omitempty"`
  2226  }
  2227  
  2228  // UpdateUserAddress is the value type of Update User input for the Update User Profile mutation
  2229  type UpdateUserAddress struct {
  2230  	// city of the user profile to update
  2231  	City *string `json:"city,omitempty" validate:"alphanum,min=3,max=30"`
  2232  	// country of the user profile to update
  2233  	Country *string `json:"country,omitempty" validate:"alphanum,min=3,max=30"`
  2234  	// postal code of the user profile to update
  2235  	PostalCode *string `json:"postalCode,omitempty" validate:"alphanum,min=3,max=30"`
  2236  	// state of the user profile to update
  2237  	State *string `json:"state,omitempty" validate:"alphanum,min=3,max=30"`
  2238  	// street of the user profile to update
  2239  	Street *string `json:"street,omitempty" validate:"alphanum,min=3,max=30"`
  2240  }
  2241  
  2242  // User is the value type of GetUsers query
  2243  type User struct {
  2244  	Username   string    `json:"username"`
  2245  	FamilyName string    `json:"familyName"`
  2246  	GivenName  string    `json:"givenName"`
  2247  	FullName   string    `json:"fullName"`
  2248  	Email      *string   `json:"email,omitempty"`
  2249  	Status     string    `json:"status"`
  2250  	UserData   *UserData `json:"userData,omitempty"`
  2251  }
  2252  
  2253  // UserData is the value type of GetUserData query
  2254  type UserData struct {
  2255  	AssignedBanners []*BannerInfo `json:"assignedBanners,omitempty"`
  2256  	Roles           []string      `json:"roles,omitempty"`
  2257  }
  2258  
  2259  // Return type for queries (virtualMachine, virtualMachines) and mutations (createVirtualMachine, updateVirtualMachine)
  2260  type VirtualMachine struct {
  2261  	// a unique identifier of a Virtual Machine (VM)
  2262  	VirtualMachineID string `json:"virtualMachineId"`
  2263  	// namespace vm will be deployed to
  2264  	Namespace string `json:"namespace"`
  2265  	// cluster edge id is the id created by edge for the cluster
  2266  	ClusterEdgeID string `json:"clusterEdgeId"`
  2267  	// cluster name is the human readable name for the cluster the Virtual Machine (VM) belongs to
  2268  	ClusterName string `json:"clusterName"`
  2269  	// hostname for the Virtual Machine (VM)
  2270  	Hostname string `json:"hostname"`
  2271  	// target power state of Virtual Machine (VM), with true=on and false=off
  2272  	TargetPowerState bool `json:"targetPowerState"`
  2273  	// number of Virtual Machine (VM) cpus
  2274  	Cpus int `json:"cpus"`
  2275  	// assigned Virtual Machine (VM) memory
  2276  	Memory string `json:"memory"`
  2277  	// assigned machine type (q35 or i440fx)
  2278  	MachineType MachineType `json:"machineType"`
  2279  	// associated disk(s)
  2280  	Disks []*VirtualMachineDisk `json:"disks,omitempty"`
  2281  }
  2282  
  2283  // Input type for the createVirtualMachine mutation
  2284  type VirtualMachineCreateInput struct {
  2285  	// unique identifier for a namespace
  2286  	NamespaceEdgeID string `json:"namespaceEdgeId"`
  2287  	// cluster edge id is the id created by edge for the cluster
  2288  	ClusterEdgeID string `json:"clusterEdgeId"`
  2289  	// hostname for the Virtual Machine (VM)
  2290  	Hostname string `json:"hostname"`
  2291  	// target power state of Virtual Machine (VM), with true=on and false=off
  2292  	TargetPowerState *bool `json:"targetPowerState,omitempty"`
  2293  	// number of Virtual Machine (VM) cpus
  2294  	Cpus *int `json:"cpus,omitempty"`
  2295  	// assigned Virtual Machine (VM) memory
  2296  	Memory *string `json:"memory,omitempty"`
  2297  	// assigned machine type (q35 or i440fx)
  2298  	MachineType *MachineType `json:"machineType,omitempty"`
  2299  	// create input for associated disk(s)
  2300  	Disks []*VirtualMachineDiskCreateInput `json:"disks,omitempty"`
  2301  }
  2302  
  2303  // Return type for queries (virtualMachineDisk, virtualMachineDisks) and mutations (createVirtualMachineDisks, updateVirtualMachineDisks). Also type for VirtualMachine.disks
  2304  type VirtualMachineDisk struct {
  2305  	// unique id for the disk
  2306  	DiskID string `json:"diskId"`
  2307  	// unique id for the associated Virtual Machine
  2308  	VirtualMachineID string `json:"virtualMachineId"`
  2309  	// type of disk (cdrom, disk)
  2310  	Type DiskType `json:"type"`
  2311  	// bus type for the disk (sata, virtio)
  2312  	Bus BusType `json:"bus"`
  2313  	// order this disk should boot in within the Virtual Machine
  2314  	BootOrder int `json:"bootOrder"`
  2315  	// disk capacity
  2316  	Size string `json:"size"`
  2317  	// IEN url for the disk's image
  2318  	ContainerImageURL string `json:"containerImageUrl"`
  2319  }
  2320  
  2321  // Input type for the createVirtualMachineDisks mutation. Also type for VirtualMachineCreateInput.disks
  2322  type VirtualMachineDiskCreateInput struct {
  2323  	// type of disk (cdrom, disk)
  2324  	Type *DiskType `json:"type,omitempty"`
  2325  	// bus type for the disk (sata, virtio)
  2326  	Bus *BusType `json:"bus,omitempty"`
  2327  	// order this disk should boot in within the Virtual Machine
  2328  	BootOrder int `json:"bootOrder"`
  2329  	// disk capacity
  2330  	Size *string `json:"size,omitempty"`
  2331  	// IEN url for the disk's image
  2332  	ContainerImageURL *string `json:"containerImageUrl,omitempty"`
  2333  }
  2334  
  2335  // Input type for the updateVirtualMachineDisks mutation. Also type for VirtualMachineUpdateInput.disks
  2336  type VirtualMachineDiskIDInput struct {
  2337  	// unique id for the disk
  2338  	DiskID string `json:"diskId"`
  2339  	// disk values to update
  2340  	VirtualMachineDiskValues *VirtualMachineDiskUpdateInput `json:"virtualMachineDiskValues"`
  2341  }
  2342  
  2343  // Forms part of input to updateVirtualMachineDisks mutation
  2344  type VirtualMachineDiskUpdateInput struct {
  2345  	// type of disk (cdrom, disk)
  2346  	Type *DiskType `json:"type,omitempty"`
  2347  	// bus type for the disk (sata, virtio)
  2348  	Bus *BusType `json:"bus,omitempty"`
  2349  	// order this disk should boot in within the Virtual Machine
  2350  	BootOrder *int `json:"bootOrder,omitempty"`
  2351  	// disk capacity
  2352  	Size *string `json:"size,omitempty"`
  2353  	// IEN url for the disk's image
  2354  	ContainerImageURL *string `json:"containerImageUrl,omitempty"`
  2355  }
  2356  
  2357  // Input type for the updateVirtualMachine mutation
  2358  type VirtualMachineIDInput struct {
  2359  	// a unique identifier of a Virtual Machine (VM)
  2360  	VirtualMachineID string `json:"virtualMachineId"`
  2361  	// the parts of the Virtual Machine (VM) that can be changed after its creation
  2362  	VirtualMachineValues *VirtualMachineUpdateInput `json:"virtualMachineValues"`
  2363  }
  2364  
  2365  // Input type for virtual machine name and namespace metadata, used to uniquely identify a VM within a cluster
  2366  type VirtualMachineMetadataInput struct {
  2367  	// name of virtual machine
  2368  	Name string `json:"name"`
  2369  	// namespace the virtual machine is in
  2370  	Namespace string `json:"namespace"`
  2371  }
  2372  
  2373  type VirtualMachineStatus struct {
  2374  	Name          string                `json:"name"`
  2375  	Namespace     string                `json:"namespace"`
  2376  	ClusterEdgeID string                `json:"clusterEdgeId"`
  2377  	Conditions    []*ObjStatusCondition `json:"conditions,omitempty"`
  2378  	Node          *string               `json:"node,omitempty"`
  2379  	HelmEdgeID    *string               `json:"helmEdgeId,omitempty"`
  2380  }
  2381  
  2382  // Forms part of input to updateVirtualMachine mutation
  2383  type VirtualMachineUpdateInput struct {
  2384  	// target power state of Virtual Machine (VM), with true=on and false=off
  2385  	TargetPowerState *bool `json:"targetPowerState,omitempty"`
  2386  	// number of Virtual Machine (VM) cpus
  2387  	Cpus *int `json:"cpus,omitempty"`
  2388  	// assigned Virtual Machine (VM) memory
  2389  	Memory *string `json:"memory,omitempty"`
  2390  	// assigned machine type (q35 or i440fx)
  2391  	MachineType *MachineType `json:"machineType,omitempty"`
  2392  	// update input for associated disk(s)
  2393  	Disks []*VirtualMachineDiskIDInput `json:"disks,omitempty"`
  2394  }
  2395  
  2396  // Input for finding mapings of labels to worklaods
  2397  type WorkloadLabelInput struct {
  2398  	// HelmEdgeID is the id of the workload we are looking for labels on
  2399  	HelmEdgeID string `json:"helmEdgeId"`
  2400  	// label id is the id of the labels we are looking for
  2401  	LabelEdgeID string `json:"labelEdgeId"`
  2402  }
  2403  
  2404  // HelmConfigSchemaParams is the value type of params in the DefaultSchemaConfig and HelmRepositoryInfo queries. Used to get the matching schema config.
  2405  type HelmConfigSchemaParams struct {
  2406  	// Name of the helm repository secret
  2407  	SecretName string `json:"secretName"`
  2408  	// Banner id for the helm repository
  2409  	BannerEdgeID string `json:"bannerEdgeId"`
  2410  	// Name of the helm chart.
  2411  	ChartName string `json:"chartName"`
  2412  	// Version of the helm chart
  2413  	ChartVersion string `json:"chartVersion"`
  2414  }
  2415  
  2416  // HelmReleasePayload is the value type of payload in the CreateHelmRelease mutation
  2417  type HelmReleasePayload struct {
  2418  	// Name of the helm workload
  2419  	Name string `json:"name"`
  2420  	// Secret for the helm repository
  2421  	Secret string `json:"secret"`
  2422  	// Helm repository for the helm chart installed
  2423  	HelmRepository string `json:"helmRepository"`
  2424  	// Helm chart installed
  2425  	HelmChart string `json:"helmChart"`
  2426  	// Version of the helm chart installed
  2427  	Version string `json:"version"`
  2428  	// Cluster the helm chart will be installed to
  2429  	ClusterEdgeID *string `json:"clusterEdgeId,omitempty"`
  2430  	// Banner the helm chart will be installed to
  2431  	BannerEdgeID *string `json:"bannerEdgeId,omitempty"`
  2432  	// Namespace the helm chart is installed to.
  2433  	Namespace string `json:"namespace"`
  2434  	// Config value overrides applied when installing the helm chart.
  2435  	ConfigValues *string `json:"configValues,omitempty"`
  2436  	// Secrets in secret manager that should be attached to the workload. Edge will generate the secrets and sync them to the cluster in the same namespace as the workload
  2437  	Secrets []string `json:"secrets,omitempty"`
  2438  	// Type of installation. Check the enum for full list. Default: ANY
  2439  	InstallationType *WorkloadInstallationType `json:"installationType,omitempty"`
  2440  	// Node targeting labels for the helm workload. Pods will only run on nodes that have matching labels.
  2441  	Labels []string `json:"labels,omitempty"`
  2442  	// injectConfigmaps configmaps to inject to workload ns
  2443  	InjectConfigmaps []InjectableConfigmaps `json:"injectConfigmaps,omitempty"`
  2444  }
  2445  
  2446  // HttpGet is the value type of httpGet in the Probe type
  2447  type HTTPGet struct {
  2448  	Path   string `json:"path"`
  2449  	Port   int    `json:"port"`
  2450  	Scheme string `json:"scheme"`
  2451  }
  2452  
  2453  // KeyValues is the value type of values in CreateOrUpdateSecretManagerSecret mutation and CreateSecret mutation
  2454  type KeyValues struct {
  2455  	Key   string `json:"key"`
  2456  	Value string `json:"value"`
  2457  }
  2458  
  2459  // KeyValuesOutput is the value type of values in SecretManagerResponse type and customLabels in StoreLabels type
  2460  type KeyValuesOutput struct {
  2461  	Key   string `json:"key"`
  2462  	Value string `json:"value"`
  2463  }
  2464  
  2465  // LivenessReadinessResponse is not implemented anywhere
  2466  type LivenessReadinessResponse struct {
  2467  	ReadinessProbe *Probe       `json:"readinessProbe,omitempty"`
  2468  	LivenessProbe  *Probe       `json:"livenessProbe,omitempty"`
  2469  	PodStatus      []*PodStatus `json:"podStatus,omitempty"`
  2470  }
  2471  
  2472  // PodCondition is the value type of conditions in the PodStatus type
  2473  type PodCondition struct {
  2474  	LastProbeTime      *string `json:"lastProbeTime,omitempty"`
  2475  	LastTransitionTime string  `json:"lastTransitionTime"`
  2476  	Status             string  `json:"status"`
  2477  	Type               string  `json:"type"`
  2478  }
  2479  
  2480  // PodStatus is the value type of podStatus in the LivenessReadinessResponse type
  2481  type PodStatus struct {
  2482  	Name         string          `json:"name"`
  2483  	RestartCount int             `json:"restartCount"`
  2484  	Ready        bool            `json:"ready"`
  2485  	Started      bool            `json:"started"`
  2486  	Conditions   []*PodCondition `json:"conditions,omitempty"`
  2487  }
  2488  
  2489  // Probe is value type of livenessProbe and readinessProbe the LivenessReadinessResponse type
  2490  type Probe struct {
  2491  	FailureThreshold string   `json:"failureThreshold"`
  2492  	HTTPGet          *HTTPGet `json:"httpGet,omitempty"`
  2493  	PeriodSeconds    int      `json:"periodSeconds"`
  2494  	SuccessThreshold int      `json:"successThreshold"`
  2495  	TimeoutSeconds   int      `json:"timeoutSeconds"`
  2496  }
  2497  
  2498  // ValidateHelmConfigParams is the payload params for validateHelmConfig mutation
  2499  type ValidateHelmConfigParams struct {
  2500  	// Helm repository secret for the helm chart.
  2501  	SecretName string `json:"secretName"`
  2502  	// Banner id for the helm chart.
  2503  	BannerEdgeID string `json:"bannerEdgeId"`
  2504  	// Name of the helm chart.
  2505  	ChartName string `json:"chartName"`
  2506  	// Helm chart version.
  2507  	ChartVersion string `json:"chartVersion"`
  2508  	// Helm configuratin values to validate
  2509  	HelmConfig string `json:"helmConfig"`
  2510  }
  2511  
  2512  // enum for the different types of actions
  2513  type ActionStatus string
  2514  
  2515  const (
  2516  	// The action was successful
  2517  	ActionStatusSuccess ActionStatus = "SUCCESS"
  2518  	// The action failed. Can check the error field for reason.
  2519  	ActionStatusFailed ActionStatus = "FAILED"
  2520  	// The action was partially successful
  2521  	ActionStatusPartialfailure ActionStatus = "PARTIALFAILURE"
  2522  )
  2523  
  2524  var AllActionStatus = []ActionStatus{
  2525  	ActionStatusSuccess,
  2526  	ActionStatusFailed,
  2527  	ActionStatusPartialfailure,
  2528  }
  2529  
  2530  func (e ActionStatus) IsValid() bool {
  2531  	switch e {
  2532  	case ActionStatusSuccess, ActionStatusFailed, ActionStatusPartialfailure:
  2533  		return true
  2534  	}
  2535  	return false
  2536  }
  2537  
  2538  func (e ActionStatus) String() string {
  2539  	return string(e)
  2540  }
  2541  
  2542  func (e *ActionStatus) UnmarshalGQL(v interface{}) error {
  2543  	str, ok := v.(string)
  2544  	if !ok {
  2545  		return fmt.Errorf("enums must be strings")
  2546  	}
  2547  
  2548  	*e = ActionStatus(str)
  2549  	if !e.IsValid() {
  2550  		return fmt.Errorf("%s is not a valid ActionStatus", str)
  2551  	}
  2552  	return nil
  2553  }
  2554  
  2555  func (e ActionStatus) MarshalGQL(w io.Writer) {
  2556  	fmt.Fprint(w, strconv.Quote(e.String()))
  2557  }
  2558  
  2559  // enum for the different types of AuthProviders
  2560  type AuthProvider string
  2561  
  2562  const (
  2563  	AuthProviderBsl  AuthProvider = "bsl"
  2564  	AuthProviderOkta AuthProvider = "okta"
  2565  )
  2566  
  2567  var AllAuthProvider = []AuthProvider{
  2568  	AuthProviderBsl,
  2569  	AuthProviderOkta,
  2570  }
  2571  
  2572  func (e AuthProvider) IsValid() bool {
  2573  	switch e {
  2574  	case AuthProviderBsl, AuthProviderOkta:
  2575  		return true
  2576  	}
  2577  	return false
  2578  }
  2579  
  2580  func (e AuthProvider) String() string {
  2581  	return string(e)
  2582  }
  2583  
  2584  func (e *AuthProvider) UnmarshalGQL(v interface{}) error {
  2585  	str, ok := v.(string)
  2586  	if !ok {
  2587  		return fmt.Errorf("enums must be strings")
  2588  	}
  2589  
  2590  	*e = AuthProvider(str)
  2591  	if !e.IsValid() {
  2592  		return fmt.Errorf("%s is not a valid AuthProvider", str)
  2593  	}
  2594  	return nil
  2595  }
  2596  
  2597  func (e AuthProvider) MarshalGQL(w io.Writer) {
  2598  	fmt.Fprint(w, strconv.Quote(e.String()))
  2599  }
  2600  
  2601  // The bus types a Virtual Machine's Disk can have
  2602  type BusType string
  2603  
  2604  const (
  2605  	BusTypeSata   BusType = "sata"
  2606  	BusTypeVirtio BusType = "virtio"
  2607  )
  2608  
  2609  var AllBusType = []BusType{
  2610  	BusTypeSata,
  2611  	BusTypeVirtio,
  2612  }
  2613  
  2614  func (e BusType) IsValid() bool {
  2615  	switch e {
  2616  	case BusTypeSata, BusTypeVirtio:
  2617  		return true
  2618  	}
  2619  	return false
  2620  }
  2621  
  2622  func (e BusType) String() string {
  2623  	return string(e)
  2624  }
  2625  
  2626  func (e *BusType) UnmarshalGQL(v interface{}) error {
  2627  	str, ok := v.(string)
  2628  	if !ok {
  2629  		return fmt.Errorf("enums must be strings")
  2630  	}
  2631  
  2632  	*e = BusType(str)
  2633  	if !e.IsValid() {
  2634  		return fmt.Errorf("%s is not a valid BusType", str)
  2635  	}
  2636  	return nil
  2637  }
  2638  
  2639  func (e BusType) MarshalGQL(w io.Writer) {
  2640  	fmt.Fprint(w, strconv.Quote(e.String()))
  2641  }
  2642  
  2643  // The secret type for a cluster
  2644  type ClusterSecretType string
  2645  
  2646  const (
  2647  	ClusterSecretTypeBreakglass ClusterSecretType = "breakglass"
  2648  	ClusterSecretTypeGrub       ClusterSecretType = "grub"
  2649  )
  2650  
  2651  var AllClusterSecretType = []ClusterSecretType{
  2652  	ClusterSecretTypeBreakglass,
  2653  	ClusterSecretTypeGrub,
  2654  }
  2655  
  2656  func (e ClusterSecretType) IsValid() bool {
  2657  	switch e {
  2658  	case ClusterSecretTypeBreakglass, ClusterSecretTypeGrub:
  2659  		return true
  2660  	}
  2661  	return false
  2662  }
  2663  
  2664  func (e ClusterSecretType) String() string {
  2665  	return string(e)
  2666  }
  2667  
  2668  func (e *ClusterSecretType) UnmarshalGQL(v interface{}) error {
  2669  	str, ok := v.(string)
  2670  	if !ok {
  2671  		return fmt.Errorf("enums must be strings")
  2672  	}
  2673  
  2674  	*e = ClusterSecretType(str)
  2675  	if !e.IsValid() {
  2676  		return fmt.Errorf("%s is not a valid ClusterSecretType", str)
  2677  	}
  2678  	return nil
  2679  }
  2680  
  2681  func (e ClusterSecretType) MarshalGQL(w io.Writer) {
  2682  	fmt.Fprint(w, strconv.Quote(e.String()))
  2683  }
  2684  
  2685  // The disk types a Virtual Machine's Disk can have
  2686  type DiskType string
  2687  
  2688  const (
  2689  	DiskTypeCdrom DiskType = "cdrom"
  2690  	DiskTypeDisk  DiskType = "disk"
  2691  )
  2692  
  2693  var AllDiskType = []DiskType{
  2694  	DiskTypeCdrom,
  2695  	DiskTypeDisk,
  2696  }
  2697  
  2698  func (e DiskType) IsValid() bool {
  2699  	switch e {
  2700  	case DiskTypeCdrom, DiskTypeDisk:
  2701  		return true
  2702  	}
  2703  	return false
  2704  }
  2705  
  2706  func (e DiskType) String() string {
  2707  	return string(e)
  2708  }
  2709  
  2710  func (e *DiskType) UnmarshalGQL(v interface{}) error {
  2711  	str, ok := v.(string)
  2712  	if !ok {
  2713  		return fmt.Errorf("enums must be strings")
  2714  	}
  2715  
  2716  	*e = DiskType(str)
  2717  	if !e.IsValid() {
  2718  		return fmt.Errorf("%s is not a valid DiskType", str)
  2719  	}
  2720  	return nil
  2721  }
  2722  
  2723  func (e DiskType) MarshalGQL(w io.Writer) {
  2724  	fmt.Fprint(w, strconv.Quote(e.String()))
  2725  }
  2726  
  2727  // This is the list of bsl roles that correspond to the EDGE_BANNER_ADMIN role
  2728  type EdgeBannerAdmin string
  2729  
  2730  const (
  2731  	EdgeBannerAdminNepEnterpriseViewer             EdgeBannerAdmin = "NEP_ENTERPRISE_VIEWER"
  2732  	EdgeBannerAdminNepEnterpriseGrantAdministrator EdgeBannerAdmin = "NEP_ENTERPRISE_GRANT_ADMINISTRATOR"
  2733  	EdgeBannerAdminNepIDEntityViewer               EdgeBannerAdmin = "NEP_IDENTITY_VIEWER"
  2734  	EdgeBannerAdminNepOrganizationViewer           EdgeBannerAdmin = "NEP_ORGANIZATION_VIEWER"
  2735  	EdgeBannerAdminSiteCreate                      EdgeBannerAdmin = "SITE_CREATE"
  2736  	EdgeBannerAdminSiteRead                        EdgeBannerAdmin = "SITE_READ"
  2737  	EdgeBannerAdminSiteUpdate                      EdgeBannerAdmin = "SITE_UPDATE"
  2738  	EdgeBannerAdminNepTokenExchanger               EdgeBannerAdmin = "NEP_TOKEN_EXCHANGER"
  2739  	EdgeBannerAdminNepIDEntityGroupAddMembers      EdgeBannerAdmin = "NEP_IDENTITY_GROUP_ADD_MEMBERS"
  2740  	EdgeBannerAdminNepIDEntityGroupRemoveMembers   EdgeBannerAdmin = "NEP_IDENTITY_GROUP_REMOVE_MEMBERS"
  2741  )
  2742  
  2743  var AllEdgeBannerAdmin = []EdgeBannerAdmin{
  2744  	EdgeBannerAdminNepEnterpriseViewer,
  2745  	EdgeBannerAdminNepEnterpriseGrantAdministrator,
  2746  	EdgeBannerAdminNepIDEntityViewer,
  2747  	EdgeBannerAdminNepOrganizationViewer,
  2748  	EdgeBannerAdminSiteCreate,
  2749  	EdgeBannerAdminSiteRead,
  2750  	EdgeBannerAdminSiteUpdate,
  2751  	EdgeBannerAdminNepTokenExchanger,
  2752  	EdgeBannerAdminNepIDEntityGroupAddMembers,
  2753  	EdgeBannerAdminNepIDEntityGroupRemoveMembers,
  2754  }
  2755  
  2756  func (e EdgeBannerAdmin) IsValid() bool {
  2757  	switch e {
  2758  	case EdgeBannerAdminNepEnterpriseViewer, EdgeBannerAdminNepEnterpriseGrantAdministrator, EdgeBannerAdminNepIDEntityViewer, EdgeBannerAdminNepOrganizationViewer, EdgeBannerAdminSiteCreate, EdgeBannerAdminSiteRead, EdgeBannerAdminSiteUpdate, EdgeBannerAdminNepTokenExchanger, EdgeBannerAdminNepIDEntityGroupAddMembers, EdgeBannerAdminNepIDEntityGroupRemoveMembers:
  2759  		return true
  2760  	}
  2761  	return false
  2762  }
  2763  
  2764  func (e EdgeBannerAdmin) String() string {
  2765  	return string(e)
  2766  }
  2767  
  2768  func (e *EdgeBannerAdmin) UnmarshalGQL(v interface{}) error {
  2769  	str, ok := v.(string)
  2770  	if !ok {
  2771  		return fmt.Errorf("enums must be strings")
  2772  	}
  2773  
  2774  	*e = EdgeBannerAdmin(str)
  2775  	if !e.IsValid() {
  2776  		return fmt.Errorf("%s is not a valid EDGE_BANNER_ADMIN", str)
  2777  	}
  2778  	return nil
  2779  }
  2780  
  2781  func (e EdgeBannerAdmin) MarshalGQL(w io.Writer) {
  2782  	fmt.Fprint(w, strconv.Quote(e.String()))
  2783  }
  2784  
  2785  // This is the list of bsl roles that correspond to the EDGE_BANNER_OPERATOR role
  2786  type EdgeBannerOperator string
  2787  
  2788  const (
  2789  	EdgeBannerOperatorNepEnterpriseViewer      EdgeBannerOperator = "NEP_ENTERPRISE_VIEWER"
  2790  	EdgeBannerOperatorNepEnterpriseGrantViewer EdgeBannerOperator = "NEP_ENTERPRISE_GRANT_VIEWER"
  2791  	EdgeBannerOperatorNepIDEntityViewer        EdgeBannerOperator = "NEP_IDENTITY_VIEWER"
  2792  	EdgeBannerOperatorNepOrganizationViewer    EdgeBannerOperator = "NEP_ORGANIZATION_VIEWER"
  2793  	EdgeBannerOperatorSiteCreate               EdgeBannerOperator = "SITE_CREATE"
  2794  	EdgeBannerOperatorSiteRead                 EdgeBannerOperator = "SITE_READ"
  2795  	EdgeBannerOperatorSiteUpdate               EdgeBannerOperator = "SITE_UPDATE"
  2796  	EdgeBannerOperatorNepTokenExchanger        EdgeBannerOperator = "NEP_TOKEN_EXCHANGER"
  2797  )
  2798  
  2799  var AllEdgeBannerOperator = []EdgeBannerOperator{
  2800  	EdgeBannerOperatorNepEnterpriseViewer,
  2801  	EdgeBannerOperatorNepEnterpriseGrantViewer,
  2802  	EdgeBannerOperatorNepIDEntityViewer,
  2803  	EdgeBannerOperatorNepOrganizationViewer,
  2804  	EdgeBannerOperatorSiteCreate,
  2805  	EdgeBannerOperatorSiteRead,
  2806  	EdgeBannerOperatorSiteUpdate,
  2807  	EdgeBannerOperatorNepTokenExchanger,
  2808  }
  2809  
  2810  func (e EdgeBannerOperator) IsValid() bool {
  2811  	switch e {
  2812  	case EdgeBannerOperatorNepEnterpriseViewer, EdgeBannerOperatorNepEnterpriseGrantViewer, EdgeBannerOperatorNepIDEntityViewer, EdgeBannerOperatorNepOrganizationViewer, EdgeBannerOperatorSiteCreate, EdgeBannerOperatorSiteRead, EdgeBannerOperatorSiteUpdate, EdgeBannerOperatorNepTokenExchanger:
  2813  		return true
  2814  	}
  2815  	return false
  2816  }
  2817  
  2818  func (e EdgeBannerOperator) String() string {
  2819  	return string(e)
  2820  }
  2821  
  2822  func (e *EdgeBannerOperator) UnmarshalGQL(v interface{}) error {
  2823  	str, ok := v.(string)
  2824  	if !ok {
  2825  		return fmt.Errorf("enums must be strings")
  2826  	}
  2827  
  2828  	*e = EdgeBannerOperator(str)
  2829  	if !e.IsValid() {
  2830  		return fmt.Errorf("%s is not a valid EDGE_BANNER_OPERATOR", str)
  2831  	}
  2832  	return nil
  2833  }
  2834  
  2835  func (e EdgeBannerOperator) MarshalGQL(w io.Writer) {
  2836  	fmt.Fprint(w, strconv.Quote(e.String()))
  2837  }
  2838  
  2839  // This is the list of bsl roles that correspond to the EDGE_BANNER_VIEWER role
  2840  type EdgeBannerViewer string
  2841  
  2842  const (
  2843  	EdgeBannerViewerNepEnterpriseViewer      EdgeBannerViewer = "NEP_ENTERPRISE_VIEWER"
  2844  	EdgeBannerViewerNepEnterpriseGrantViewer EdgeBannerViewer = "NEP_ENTERPRISE_GRANT_VIEWER"
  2845  	EdgeBannerViewerNepIDEntityViewer        EdgeBannerViewer = "NEP_IDENTITY_VIEWER"
  2846  	EdgeBannerViewerNepOrganizationViewer    EdgeBannerViewer = "NEP_ORGANIZATION_VIEWER"
  2847  	EdgeBannerViewerNepTokenExchanger        EdgeBannerViewer = "NEP_TOKEN_EXCHANGER"
  2848  	EdgeBannerViewerSiteRead                 EdgeBannerViewer = "SITE_READ"
  2849  )
  2850  
  2851  var AllEdgeBannerViewer = []EdgeBannerViewer{
  2852  	EdgeBannerViewerNepEnterpriseViewer,
  2853  	EdgeBannerViewerNepEnterpriseGrantViewer,
  2854  	EdgeBannerViewerNepIDEntityViewer,
  2855  	EdgeBannerViewerNepOrganizationViewer,
  2856  	EdgeBannerViewerNepTokenExchanger,
  2857  	EdgeBannerViewerSiteRead,
  2858  }
  2859  
  2860  func (e EdgeBannerViewer) IsValid() bool {
  2861  	switch e {
  2862  	case EdgeBannerViewerNepEnterpriseViewer, EdgeBannerViewerNepEnterpriseGrantViewer, EdgeBannerViewerNepIDEntityViewer, EdgeBannerViewerNepOrganizationViewer, EdgeBannerViewerNepTokenExchanger, EdgeBannerViewerSiteRead:
  2863  		return true
  2864  	}
  2865  	return false
  2866  }
  2867  
  2868  func (e EdgeBannerViewer) String() string {
  2869  	return string(e)
  2870  }
  2871  
  2872  func (e *EdgeBannerViewer) UnmarshalGQL(v interface{}) error {
  2873  	str, ok := v.(string)
  2874  	if !ok {
  2875  		return fmt.Errorf("enums must be strings")
  2876  	}
  2877  
  2878  	*e = EdgeBannerViewer(str)
  2879  	if !e.IsValid() {
  2880  		return fmt.Errorf("%s is not a valid EDGE_BANNER_VIEWER", str)
  2881  	}
  2882  	return nil
  2883  }
  2884  
  2885  func (e EdgeBannerViewer) MarshalGQL(w io.Writer) {
  2886  	fmt.Fprint(w, strconv.Quote(e.String()))
  2887  }
  2888  
  2889  // This is the list of bsl roles that correspond to the EDGE_ENGINEERING_LEADS role
  2890  type EdgeEngineeringLeads string
  2891  
  2892  const (
  2893  	EdgeEngineeringLeadsNepEnterpriseAdministrator        EdgeEngineeringLeads = "NEP_ENTERPRISE_ADMINISTRATOR"
  2894  	EdgeEngineeringLeadsNepEnterpriseGrantAdministrator   EdgeEngineeringLeads = "NEP_ENTERPRISE_GRANT_ADMINISTRATOR"
  2895  	EdgeEngineeringLeadsNepRolegrantAdministrator         EdgeEngineeringLeads = "NEP_ROLEGRANT_ADMINISTRATOR"
  2896  	EdgeEngineeringLeadsNepIDEntityAdministrator          EdgeEngineeringLeads = "NEP_IDENTITY_ADMINISTRATOR"
  2897  	EdgeEngineeringLeadsOrganizationInternalAdministrator EdgeEngineeringLeads = "ORGANIZATION_INTERNAL_ADMINISTRATOR"
  2898  	EdgeEngineeringLeadsSiteCreate                        EdgeEngineeringLeads = "SITE_CREATE"
  2899  	EdgeEngineeringLeadsSiteRead                          EdgeEngineeringLeads = "SITE_READ"
  2900  	EdgeEngineeringLeadsSiteUpdate                        EdgeEngineeringLeads = "SITE_UPDATE"
  2901  	EdgeEngineeringLeadsNepTokenExchanger                 EdgeEngineeringLeads = "NEP_TOKEN_EXCHANGER"
  2902  )
  2903  
  2904  var AllEdgeEngineeringLeads = []EdgeEngineeringLeads{
  2905  	EdgeEngineeringLeadsNepEnterpriseAdministrator,
  2906  	EdgeEngineeringLeadsNepEnterpriseGrantAdministrator,
  2907  	EdgeEngineeringLeadsNepRolegrantAdministrator,
  2908  	EdgeEngineeringLeadsNepIDEntityAdministrator,
  2909  	EdgeEngineeringLeadsOrganizationInternalAdministrator,
  2910  	EdgeEngineeringLeadsSiteCreate,
  2911  	EdgeEngineeringLeadsSiteRead,
  2912  	EdgeEngineeringLeadsSiteUpdate,
  2913  	EdgeEngineeringLeadsNepTokenExchanger,
  2914  }
  2915  
  2916  func (e EdgeEngineeringLeads) IsValid() bool {
  2917  	switch e {
  2918  	case EdgeEngineeringLeadsNepEnterpriseAdministrator, EdgeEngineeringLeadsNepEnterpriseGrantAdministrator, EdgeEngineeringLeadsNepRolegrantAdministrator, EdgeEngineeringLeadsNepIDEntityAdministrator, EdgeEngineeringLeadsOrganizationInternalAdministrator, EdgeEngineeringLeadsSiteCreate, EdgeEngineeringLeadsSiteRead, EdgeEngineeringLeadsSiteUpdate, EdgeEngineeringLeadsNepTokenExchanger:
  2919  		return true
  2920  	}
  2921  	return false
  2922  }
  2923  
  2924  func (e EdgeEngineeringLeads) String() string {
  2925  	return string(e)
  2926  }
  2927  
  2928  func (e *EdgeEngineeringLeads) UnmarshalGQL(v interface{}) error {
  2929  	str, ok := v.(string)
  2930  	if !ok {
  2931  		return fmt.Errorf("enums must be strings")
  2932  	}
  2933  
  2934  	*e = EdgeEngineeringLeads(str)
  2935  	if !e.IsValid() {
  2936  		return fmt.Errorf("%s is not a valid EDGE_ENGINEERING_LEADS", str)
  2937  	}
  2938  	return nil
  2939  }
  2940  
  2941  func (e EdgeEngineeringLeads) MarshalGQL(w io.Writer) {
  2942  	fmt.Fprint(w, strconv.Quote(e.String()))
  2943  }
  2944  
  2945  // This is the list of bsl roles that correspond to the EDGE_OI_ADMIN role
  2946  type EdgeOiAdmin string
  2947  
  2948  const (
  2949  	EdgeOiAdminNepIDEntityGroupAddMembers    EdgeOiAdmin = "NEP_IDENTITY_GROUP_ADD_MEMBERS"
  2950  	EdgeOiAdminNepIDEntityGroupRemoveMembers EdgeOiAdmin = "NEP_IDENTITY_GROUP_REMOVE_MEMBERS"
  2951  )
  2952  
  2953  var AllEdgeOiAdmin = []EdgeOiAdmin{
  2954  	EdgeOiAdminNepIDEntityGroupAddMembers,
  2955  	EdgeOiAdminNepIDEntityGroupRemoveMembers,
  2956  }
  2957  
  2958  func (e EdgeOiAdmin) IsValid() bool {
  2959  	switch e {
  2960  	case EdgeOiAdminNepIDEntityGroupAddMembers, EdgeOiAdminNepIDEntityGroupRemoveMembers:
  2961  		return true
  2962  	}
  2963  	return false
  2964  }
  2965  
  2966  func (e EdgeOiAdmin) String() string {
  2967  	return string(e)
  2968  }
  2969  
  2970  func (e *EdgeOiAdmin) UnmarshalGQL(v interface{}) error {
  2971  	str, ok := v.(string)
  2972  	if !ok {
  2973  		return fmt.Errorf("enums must be strings")
  2974  	}
  2975  
  2976  	*e = EdgeOiAdmin(str)
  2977  	if !e.IsValid() {
  2978  		return fmt.Errorf("%s is not a valid EDGE_OI_ADMIN", str)
  2979  	}
  2980  	return nil
  2981  }
  2982  
  2983  func (e EdgeOiAdmin) MarshalGQL(w io.Writer) {
  2984  	fmt.Fprint(w, strconv.Quote(e.String()))
  2985  }
  2986  
  2987  // This is the list of bsl roles that correspond to the EDGE_ORG_ADMIN role
  2988  type EdgeOrgAdmin string
  2989  
  2990  const (
  2991  	EdgeOrgAdminNepEnterpriseAdministrator        EdgeOrgAdmin = "NEP_ENTERPRISE_ADMINISTRATOR"
  2992  	EdgeOrgAdminNepEnterpriseGrantAdministrator   EdgeOrgAdmin = "NEP_ENTERPRISE_GRANT_ADMINISTRATOR"
  2993  	EdgeOrgAdminNepRolegrantAdministrator         EdgeOrgAdmin = "NEP_ROLEGRANT_ADMINISTRATOR"
  2994  	EdgeOrgAdminNepIDEntityAdministrator          EdgeOrgAdmin = "NEP_IDENTITY_ADMINISTRATOR"
  2995  	EdgeOrgAdminOrganizationInternalAdministrator EdgeOrgAdmin = "ORGANIZATION_INTERNAL_ADMINISTRATOR"
  2996  	EdgeOrgAdminSiteCreate                        EdgeOrgAdmin = "SITE_CREATE"
  2997  	EdgeOrgAdminSiteRead                          EdgeOrgAdmin = "SITE_READ"
  2998  	EdgeOrgAdminSiteUpdate                        EdgeOrgAdmin = "SITE_UPDATE"
  2999  	EdgeOrgAdminNepTokenExchanger                 EdgeOrgAdmin = "NEP_TOKEN_EXCHANGER"
  3000  )
  3001  
  3002  var AllEdgeOrgAdmin = []EdgeOrgAdmin{
  3003  	EdgeOrgAdminNepEnterpriseAdministrator,
  3004  	EdgeOrgAdminNepEnterpriseGrantAdministrator,
  3005  	EdgeOrgAdminNepRolegrantAdministrator,
  3006  	EdgeOrgAdminNepIDEntityAdministrator,
  3007  	EdgeOrgAdminOrganizationInternalAdministrator,
  3008  	EdgeOrgAdminSiteCreate,
  3009  	EdgeOrgAdminSiteRead,
  3010  	EdgeOrgAdminSiteUpdate,
  3011  	EdgeOrgAdminNepTokenExchanger,
  3012  }
  3013  
  3014  func (e EdgeOrgAdmin) IsValid() bool {
  3015  	switch e {
  3016  	case EdgeOrgAdminNepEnterpriseAdministrator, EdgeOrgAdminNepEnterpriseGrantAdministrator, EdgeOrgAdminNepRolegrantAdministrator, EdgeOrgAdminNepIDEntityAdministrator, EdgeOrgAdminOrganizationInternalAdministrator, EdgeOrgAdminSiteCreate, EdgeOrgAdminSiteRead, EdgeOrgAdminSiteUpdate, EdgeOrgAdminNepTokenExchanger:
  3017  		return true
  3018  	}
  3019  	return false
  3020  }
  3021  
  3022  func (e EdgeOrgAdmin) String() string {
  3023  	return string(e)
  3024  }
  3025  
  3026  func (e *EdgeOrgAdmin) UnmarshalGQL(v interface{}) error {
  3027  	str, ok := v.(string)
  3028  	if !ok {
  3029  		return fmt.Errorf("enums must be strings")
  3030  	}
  3031  
  3032  	*e = EdgeOrgAdmin(str)
  3033  	if !e.IsValid() {
  3034  		return fmt.Errorf("%s is not a valid EDGE_ORG_ADMIN", str)
  3035  	}
  3036  	return nil
  3037  }
  3038  
  3039  func (e EdgeOrgAdmin) MarshalGQL(w io.Writer) {
  3040  	fmt.Fprint(w, strconv.Quote(e.String()))
  3041  }
  3042  
  3043  // This is the list of bsl roles that correspond to the EDGE_SUPER_ADMIN role
  3044  type EdgeSuperAdmin string
  3045  
  3046  const (
  3047  	EdgeSuperAdminNepEnterpriseAdministrator        EdgeSuperAdmin = "NEP_ENTERPRISE_ADMINISTRATOR"
  3048  	EdgeSuperAdminNepEnterpriseGrantAdministrator   EdgeSuperAdmin = "NEP_ENTERPRISE_GRANT_ADMINISTRATOR"
  3049  	EdgeSuperAdminNepRolegrantAdministrator         EdgeSuperAdmin = "NEP_ROLEGRANT_ADMINISTRATOR"
  3050  	EdgeSuperAdminNepIDEntityAdministrator          EdgeSuperAdmin = "NEP_IDENTITY_ADMINISTRATOR"
  3051  	EdgeSuperAdminOrganizationInternalAdministrator EdgeSuperAdmin = "ORGANIZATION_INTERNAL_ADMINISTRATOR"
  3052  	EdgeSuperAdminSiteCreate                        EdgeSuperAdmin = "SITE_CREATE"
  3053  	EdgeSuperAdminSiteRead                          EdgeSuperAdmin = "SITE_READ"
  3054  	EdgeSuperAdminSiteUpdate                        EdgeSuperAdmin = "SITE_UPDATE"
  3055  	EdgeSuperAdminNepEnterpriseSuperAdministrator   EdgeSuperAdmin = "NEP_ENTERPRISE_SUPER_ADMINISTRATOR"
  3056  	EdgeSuperAdminNepTokenExchanger                 EdgeSuperAdmin = "NEP_TOKEN_EXCHANGER"
  3057  )
  3058  
  3059  var AllEdgeSuperAdmin = []EdgeSuperAdmin{
  3060  	EdgeSuperAdminNepEnterpriseAdministrator,
  3061  	EdgeSuperAdminNepEnterpriseGrantAdministrator,
  3062  	EdgeSuperAdminNepRolegrantAdministrator,
  3063  	EdgeSuperAdminNepIDEntityAdministrator,
  3064  	EdgeSuperAdminOrganizationInternalAdministrator,
  3065  	EdgeSuperAdminSiteCreate,
  3066  	EdgeSuperAdminSiteRead,
  3067  	EdgeSuperAdminSiteUpdate,
  3068  	EdgeSuperAdminNepEnterpriseSuperAdministrator,
  3069  	EdgeSuperAdminNepTokenExchanger,
  3070  }
  3071  
  3072  func (e EdgeSuperAdmin) IsValid() bool {
  3073  	switch e {
  3074  	case EdgeSuperAdminNepEnterpriseAdministrator, EdgeSuperAdminNepEnterpriseGrantAdministrator, EdgeSuperAdminNepRolegrantAdministrator, EdgeSuperAdminNepIDEntityAdministrator, EdgeSuperAdminOrganizationInternalAdministrator, EdgeSuperAdminSiteCreate, EdgeSuperAdminSiteRead, EdgeSuperAdminSiteUpdate, EdgeSuperAdminNepEnterpriseSuperAdministrator, EdgeSuperAdminNepTokenExchanger:
  3075  		return true
  3076  	}
  3077  	return false
  3078  }
  3079  
  3080  func (e EdgeSuperAdmin) String() string {
  3081  	return string(e)
  3082  }
  3083  
  3084  func (e *EdgeSuperAdmin) UnmarshalGQL(v interface{}) error {
  3085  	str, ok := v.(string)
  3086  	if !ok {
  3087  		return fmt.Errorf("enums must be strings")
  3088  	}
  3089  
  3090  	*e = EdgeSuperAdmin(str)
  3091  	if !e.IsValid() {
  3092  		return fmt.Errorf("%s is not a valid EDGE_SUPER_ADMIN", str)
  3093  	}
  3094  	return nil
  3095  }
  3096  
  3097  func (e EdgeSuperAdmin) MarshalGQL(w io.Writer) {
  3098  	fmt.Fprint(w, strconv.Quote(e.String()))
  3099  }
  3100  
  3101  // Edge security compliance settings
  3102  type EdgeSecurityComplianceOptions string
  3103  
  3104  const (
  3105  	EdgeSecurityComplianceOptionsOptOut  EdgeSecurityComplianceOptions = "optOut"
  3106  	EdgeSecurityComplianceOptionsOptIn   EdgeSecurityComplianceOptions = "optIn"
  3107  	EdgeSecurityComplianceOptionsDefault EdgeSecurityComplianceOptions = "default"
  3108  )
  3109  
  3110  var AllEdgeSecurityComplianceOptions = []EdgeSecurityComplianceOptions{
  3111  	EdgeSecurityComplianceOptionsOptOut,
  3112  	EdgeSecurityComplianceOptionsOptIn,
  3113  	EdgeSecurityComplianceOptionsDefault,
  3114  }
  3115  
  3116  func (e EdgeSecurityComplianceOptions) IsValid() bool {
  3117  	switch e {
  3118  	case EdgeSecurityComplianceOptionsOptOut, EdgeSecurityComplianceOptionsOptIn, EdgeSecurityComplianceOptionsDefault:
  3119  		return true
  3120  	}
  3121  	return false
  3122  }
  3123  
  3124  func (e EdgeSecurityComplianceOptions) String() string {
  3125  	return string(e)
  3126  }
  3127  
  3128  func (e *EdgeSecurityComplianceOptions) UnmarshalGQL(v interface{}) error {
  3129  	str, ok := v.(string)
  3130  	if !ok {
  3131  		return fmt.Errorf("enums must be strings")
  3132  	}
  3133  
  3134  	*e = EdgeSecurityComplianceOptions(str)
  3135  	if !e.IsValid() {
  3136  		return fmt.Errorf("%s is not a valid EdgeSecurityComplianceOptions", str)
  3137  	}
  3138  	return nil
  3139  }
  3140  
  3141  func (e EdgeSecurityComplianceOptions) MarshalGQL(w io.Writer) {
  3142  	fmt.Fprint(w, strconv.Quote(e.String()))
  3143  }
  3144  
  3145  // The family type for the terminal address
  3146  type InetType string
  3147  
  3148  const (
  3149  	InetTypeInet  InetType = "inet"
  3150  	InetTypeInet6 InetType = "inet6"
  3151  )
  3152  
  3153  var AllInetType = []InetType{
  3154  	InetTypeInet,
  3155  	InetTypeInet6,
  3156  }
  3157  
  3158  func (e InetType) IsValid() bool {
  3159  	switch e {
  3160  	case InetTypeInet, InetTypeInet6:
  3161  		return true
  3162  	}
  3163  	return false
  3164  }
  3165  
  3166  func (e InetType) String() string {
  3167  	return string(e)
  3168  }
  3169  
  3170  func (e *InetType) UnmarshalGQL(v interface{}) error {
  3171  	str, ok := v.(string)
  3172  	if !ok {
  3173  		return fmt.Errorf("enums must be strings")
  3174  	}
  3175  
  3176  	*e = InetType(str)
  3177  	if !e.IsValid() {
  3178  		return fmt.Errorf("%s is not a valid InetType", str)
  3179  	}
  3180  	return nil
  3181  }
  3182  
  3183  func (e InetType) MarshalGQL(w io.Writer) {
  3184  	fmt.Fprint(w, strconv.Quote(e.String()))
  3185  }
  3186  
  3187  // InjectableConfigmaps are configmaps that can be injected to a workload
  3188  type InjectableConfigmaps string
  3189  
  3190  const (
  3191  	// Configmap for edge specifc information for a cluster
  3192  	InjectableConfigmapsEdgeInfo InjectableConfigmaps = "EdgeInfo"
  3193  	// Configmap for NCR specific information about a cluster
  3194  	InjectableConfigmapsBSLInfo InjectableConfigmaps = "BSLInfo"
  3195  )
  3196  
  3197  var AllInjectableConfigmaps = []InjectableConfigmaps{
  3198  	InjectableConfigmapsEdgeInfo,
  3199  	InjectableConfigmapsBSLInfo,
  3200  }
  3201  
  3202  func (e InjectableConfigmaps) IsValid() bool {
  3203  	switch e {
  3204  	case InjectableConfigmapsEdgeInfo, InjectableConfigmapsBSLInfo:
  3205  		return true
  3206  	}
  3207  	return false
  3208  }
  3209  
  3210  func (e InjectableConfigmaps) String() string {
  3211  	return string(e)
  3212  }
  3213  
  3214  func (e *InjectableConfigmaps) UnmarshalGQL(v interface{}) error {
  3215  	str, ok := v.(string)
  3216  	if !ok {
  3217  		return fmt.Errorf("enums must be strings")
  3218  	}
  3219  
  3220  	*e = InjectableConfigmaps(str)
  3221  	if !e.IsValid() {
  3222  		return fmt.Errorf("%s is not a valid InjectableConfigmaps", str)
  3223  	}
  3224  	return nil
  3225  }
  3226  
  3227  func (e InjectableConfigmaps) MarshalGQL(w io.Writer) {
  3228  	fmt.Fprint(w, strconv.Quote(e.String()))
  3229  }
  3230  
  3231  // LogClassSelection are categories needed to be used by logs
  3232  // TODO: TO BE DEPRECATED IN 0.25 @RS185722
  3233  type LogClassSelection string
  3234  
  3235  const (
  3236  	LogClassSelectionAudit    LogClassSelection = "Audit"
  3237  	LogClassSelectionSecurity LogClassSelection = "Security"
  3238  )
  3239  
  3240  var AllLogClassSelection = []LogClassSelection{
  3241  	LogClassSelectionAudit,
  3242  	LogClassSelectionSecurity,
  3243  }
  3244  
  3245  func (e LogClassSelection) IsValid() bool {
  3246  	switch e {
  3247  	case LogClassSelectionAudit, LogClassSelectionSecurity:
  3248  		return true
  3249  	}
  3250  	return false
  3251  }
  3252  
  3253  func (e LogClassSelection) String() string {
  3254  	return string(e)
  3255  }
  3256  
  3257  func (e *LogClassSelection) UnmarshalGQL(v interface{}) error {
  3258  	str, ok := v.(string)
  3259  	if !ok {
  3260  		return fmt.Errorf("enums must be strings")
  3261  	}
  3262  
  3263  	*e = LogClassSelection(str)
  3264  	if !e.IsValid() {
  3265  		return fmt.Errorf("%s is not a valid LogClassSelection", str)
  3266  	}
  3267  	return nil
  3268  }
  3269  
  3270  func (e LogClassSelection) MarshalGQL(w io.Writer) {
  3271  	fmt.Fprint(w, strconv.Quote(e.String()))
  3272  }
  3273  
  3274  type LogLevels string
  3275  
  3276  const (
  3277  	LogLevelsDebug     LogLevels = "DEBUG"
  3278  	LogLevelsInfo      LogLevels = "INFO"
  3279  	LogLevelsNotice    LogLevels = "NOTICE"
  3280  	LogLevelsWarning   LogLevels = "WARNING"
  3281  	LogLevelsError     LogLevels = "ERROR"
  3282  	LogLevelsCritical  LogLevels = "CRITICAL"
  3283  	LogLevelsAlert     LogLevels = "ALERT"
  3284  	LogLevelsEmergency LogLevels = "EMERGENCY"
  3285  )
  3286  
  3287  var AllLogLevels = []LogLevels{
  3288  	LogLevelsDebug,
  3289  	LogLevelsInfo,
  3290  	LogLevelsNotice,
  3291  	LogLevelsWarning,
  3292  	LogLevelsError,
  3293  	LogLevelsCritical,
  3294  	LogLevelsAlert,
  3295  	LogLevelsEmergency,
  3296  }
  3297  
  3298  func (e LogLevels) IsValid() bool {
  3299  	switch e {
  3300  	case LogLevelsDebug, LogLevelsInfo, LogLevelsNotice, LogLevelsWarning, LogLevelsError, LogLevelsCritical, LogLevelsAlert, LogLevelsEmergency:
  3301  		return true
  3302  	}
  3303  	return false
  3304  }
  3305  
  3306  func (e LogLevels) String() string {
  3307  	return string(e)
  3308  }
  3309  
  3310  func (e *LogLevels) UnmarshalGQL(v interface{}) error {
  3311  	str, ok := v.(string)
  3312  	if !ok {
  3313  		return fmt.Errorf("enums must be strings")
  3314  	}
  3315  
  3316  	*e = LogLevels(str)
  3317  	if !e.IsValid() {
  3318  		return fmt.Errorf("%s is not a valid LogLevels", str)
  3319  	}
  3320  	return nil
  3321  }
  3322  
  3323  func (e LogLevels) MarshalGQL(w io.Writer) {
  3324  	fmt.Fprint(w, strconv.Quote(e.String()))
  3325  }
  3326  
  3327  type LogReplayStatus string
  3328  
  3329  const (
  3330  	LogReplayStatusNotStarted LogReplayStatus = "NOT_STARTED"
  3331  	LogReplayStatusPending    LogReplayStatus = "PENDING"
  3332  	LogReplayStatusSucceeded  LogReplayStatus = "SUCCEEDED"
  3333  	LogReplayStatusFailed     LogReplayStatus = "FAILED"
  3334  	LogReplayStatusTimeout    LogReplayStatus = "TIMEOUT"
  3335  )
  3336  
  3337  var AllLogReplayStatus = []LogReplayStatus{
  3338  	LogReplayStatusNotStarted,
  3339  	LogReplayStatusPending,
  3340  	LogReplayStatusSucceeded,
  3341  	LogReplayStatusFailed,
  3342  	LogReplayStatusTimeout,
  3343  }
  3344  
  3345  func (e LogReplayStatus) IsValid() bool {
  3346  	switch e {
  3347  	case LogReplayStatusNotStarted, LogReplayStatusPending, LogReplayStatusSucceeded, LogReplayStatusFailed, LogReplayStatusTimeout:
  3348  		return true
  3349  	}
  3350  	return false
  3351  }
  3352  
  3353  func (e LogReplayStatus) String() string {
  3354  	return string(e)
  3355  }
  3356  
  3357  func (e *LogReplayStatus) UnmarshalGQL(v interface{}) error {
  3358  	str, ok := v.(string)
  3359  	if !ok {
  3360  		return fmt.Errorf("enums must be strings")
  3361  	}
  3362  
  3363  	*e = LogReplayStatus(str)
  3364  	if !e.IsValid() {
  3365  		return fmt.Errorf("%s is not a valid LogReplayStatus", str)
  3366  	}
  3367  	return nil
  3368  }
  3369  
  3370  func (e LogReplayStatus) MarshalGQL(w io.Writer) {
  3371  	fmt.Fprint(w, strconv.Quote(e.String()))
  3372  }
  3373  
  3374  // The machine types a Virtual Machine can have
  3375  type MachineType string
  3376  
  3377  const (
  3378  	MachineTypeQ35    MachineType = "q35"
  3379  	MachineTypeI440fx MachineType = "i440fx"
  3380  )
  3381  
  3382  var AllMachineType = []MachineType{
  3383  	MachineTypeQ35,
  3384  	MachineTypeI440fx,
  3385  }
  3386  
  3387  func (e MachineType) IsValid() bool {
  3388  	switch e {
  3389  	case MachineTypeQ35, MachineTypeI440fx:
  3390  		return true
  3391  	}
  3392  	return false
  3393  }
  3394  
  3395  func (e MachineType) String() string {
  3396  	return string(e)
  3397  }
  3398  
  3399  func (e *MachineType) UnmarshalGQL(v interface{}) error {
  3400  	str, ok := v.(string)
  3401  	if !ok {
  3402  		return fmt.Errorf("enums must be strings")
  3403  	}
  3404  
  3405  	*e = MachineType(str)
  3406  	if !e.IsValid() {
  3407  		return fmt.Errorf("%s is not a valid MachineType", str)
  3408  	}
  3409  	return nil
  3410  }
  3411  
  3412  func (e MachineType) MarshalGQL(w io.Writer) {
  3413  	fmt.Fprint(w, strconv.Quote(e.String()))
  3414  }
  3415  
  3416  type OperatorInterventionErrorType string
  3417  
  3418  const (
  3419  	// Indicates a deletion request failed due to the value being referenced in another type
  3420  	OperatorInterventionErrorTypeConflict OperatorInterventionErrorType = "CONFLICT"
  3421  	// Empty or nil input received
  3422  	OperatorInterventionErrorTypeInvalidInput OperatorInterventionErrorType = "INVALID_INPUT"
  3423  	// Tried to delete a command that does not exist
  3424  	OperatorInterventionErrorTypeUnknownCommand     OperatorInterventionErrorType = "UNKNOWN_COMMAND"
  3425  	OperatorInterventionErrorTypeUnknownRole        OperatorInterventionErrorType = "UNKNOWN_ROLE"
  3426  	OperatorInterventionErrorTypeUnknownRoleMapping OperatorInterventionErrorType = "UNKNOWN_ROLE_MAPPING"
  3427  	OperatorInterventionErrorTypeUnknownPrivilege   OperatorInterventionErrorType = "UNKNOWN_PRIVILEGE"
  3428  	OperatorInterventionErrorTypeUnknownRule        OperatorInterventionErrorType = "UNKNOWN_RULE"
  3429  )
  3430  
  3431  var AllOperatorInterventionErrorType = []OperatorInterventionErrorType{
  3432  	OperatorInterventionErrorTypeConflict,
  3433  	OperatorInterventionErrorTypeInvalidInput,
  3434  	OperatorInterventionErrorTypeUnknownCommand,
  3435  	OperatorInterventionErrorTypeUnknownRole,
  3436  	OperatorInterventionErrorTypeUnknownRoleMapping,
  3437  	OperatorInterventionErrorTypeUnknownPrivilege,
  3438  	OperatorInterventionErrorTypeUnknownRule,
  3439  }
  3440  
  3441  func (e OperatorInterventionErrorType) IsValid() bool {
  3442  	switch e {
  3443  	case OperatorInterventionErrorTypeConflict, OperatorInterventionErrorTypeInvalidInput, OperatorInterventionErrorTypeUnknownCommand, OperatorInterventionErrorTypeUnknownRole, OperatorInterventionErrorTypeUnknownRoleMapping, OperatorInterventionErrorTypeUnknownPrivilege, OperatorInterventionErrorTypeUnknownRule:
  3444  		return true
  3445  	}
  3446  	return false
  3447  }
  3448  
  3449  func (e OperatorInterventionErrorType) String() string {
  3450  	return string(e)
  3451  }
  3452  
  3453  func (e *OperatorInterventionErrorType) UnmarshalGQL(v interface{}) error {
  3454  	str, ok := v.(string)
  3455  	if !ok {
  3456  		return fmt.Errorf("enums must be strings")
  3457  	}
  3458  
  3459  	*e = OperatorInterventionErrorType(str)
  3460  	if !e.IsValid() {
  3461  		return fmt.Errorf("%s is not a valid OperatorInterventionErrorType", str)
  3462  	}
  3463  	return nil
  3464  }
  3465  
  3466  func (e OperatorInterventionErrorType) MarshalGQL(w io.Writer) {
  3467  	fmt.Fprint(w, strconv.Quote(e.String()))
  3468  }
  3469  
  3470  // This is the list of edge roles
  3471  type Role string
  3472  
  3473  const (
  3474  	RoleEdgeSuperAdmin       Role = "EDGE_SUPER_ADMIN"
  3475  	RoleEdgeOrgAdmin         Role = "EDGE_ORG_ADMIN"
  3476  	RoleEdgeBannerAdmin      Role = "EDGE_BANNER_ADMIN"
  3477  	RoleEdgeBannerOperator   Role = "EDGE_BANNER_OPERATOR"
  3478  	RoleEdgeBannerViewer     Role = "EDGE_BANNER_VIEWER"
  3479  	RoleTotpRole             Role = "TOTP_ROLE"
  3480  	RoleEdgeTerminal         Role = "EDGE_TERMINAL"
  3481  	RoleEdgeBootstrap        Role = "EDGE_BOOTSTRAP"
  3482  	RoleEdgeEngineeringLeads Role = "EDGE_ENGINEERING_LEADS"
  3483  	RoleEdgeOiAdmin          Role = "EDGE_OI_ADMIN"
  3484  	RoleEdgeSuperUser        Role = "EDGE_SUPER_USER"
  3485  	RoleEdgeL1               Role = "EDGE_L1"
  3486  	RoleEdgeL2               Role = "EDGE_L2"
  3487  	RoleEdgeL3               Role = "EDGE_L3"
  3488  	RoleEdgeL4               Role = "EDGE_L4"
  3489  )
  3490  
  3491  var AllRole = []Role{
  3492  	RoleEdgeSuperAdmin,
  3493  	RoleEdgeOrgAdmin,
  3494  	RoleEdgeBannerAdmin,
  3495  	RoleEdgeBannerOperator,
  3496  	RoleEdgeBannerViewer,
  3497  	RoleTotpRole,
  3498  	RoleEdgeTerminal,
  3499  	RoleEdgeBootstrap,
  3500  	RoleEdgeEngineeringLeads,
  3501  	RoleEdgeOiAdmin,
  3502  	RoleEdgeSuperUser,
  3503  	RoleEdgeL1,
  3504  	RoleEdgeL2,
  3505  	RoleEdgeL3,
  3506  	RoleEdgeL4,
  3507  }
  3508  
  3509  func (e Role) IsValid() bool {
  3510  	switch e {
  3511  	case RoleEdgeSuperAdmin, RoleEdgeOrgAdmin, RoleEdgeBannerAdmin, RoleEdgeBannerOperator, RoleEdgeBannerViewer, RoleTotpRole, RoleEdgeTerminal, RoleEdgeBootstrap, RoleEdgeEngineeringLeads, RoleEdgeOiAdmin, RoleEdgeSuperUser, RoleEdgeL1, RoleEdgeL2, RoleEdgeL3, RoleEdgeL4:
  3512  		return true
  3513  	}
  3514  	return false
  3515  }
  3516  
  3517  func (e Role) String() string {
  3518  	return string(e)
  3519  }
  3520  
  3521  func (e *Role) UnmarshalGQL(v interface{}) error {
  3522  	str, ok := v.(string)
  3523  	if !ok {
  3524  		return fmt.Errorf("enums must be strings")
  3525  	}
  3526  
  3527  	*e = Role(str)
  3528  	if !e.IsValid() {
  3529  		return fmt.Errorf("%s is not a valid Role", str)
  3530  	}
  3531  	return nil
  3532  }
  3533  
  3534  func (e Role) MarshalGQL(w io.Writer) {
  3535  	fmt.Fprint(w, strconv.Quote(e.String()))
  3536  }
  3537  
  3538  // The class types that a terminal can have
  3539  type TerminalClassType string
  3540  
  3541  const (
  3542  	TerminalClassTypeServer     TerminalClassType = "server"
  3543  	TerminalClassTypeTouchpoint TerminalClassType = "touchpoint"
  3544  )
  3545  
  3546  var AllTerminalClassType = []TerminalClassType{
  3547  	TerminalClassTypeServer,
  3548  	TerminalClassTypeTouchpoint,
  3549  }
  3550  
  3551  func (e TerminalClassType) IsValid() bool {
  3552  	switch e {
  3553  	case TerminalClassTypeServer, TerminalClassTypeTouchpoint:
  3554  		return true
  3555  	}
  3556  	return false
  3557  }
  3558  
  3559  func (e TerminalClassType) String() string {
  3560  	return string(e)
  3561  }
  3562  
  3563  func (e *TerminalClassType) UnmarshalGQL(v interface{}) error {
  3564  	str, ok := v.(string)
  3565  	if !ok {
  3566  		return fmt.Errorf("enums must be strings")
  3567  	}
  3568  
  3569  	*e = TerminalClassType(str)
  3570  	if !e.IsValid() {
  3571  		return fmt.Errorf("%s is not a valid TerminalClassType", str)
  3572  	}
  3573  	return nil
  3574  }
  3575  
  3576  func (e TerminalClassType) MarshalGQL(w io.Writer) {
  3577  	fmt.Fprint(w, strconv.Quote(e.String()))
  3578  }
  3579  
  3580  // The disk discovery mode for the terminal
  3581  type TerminalDiscoverDisksType string
  3582  
  3583  const (
  3584  	TerminalDiscoverDisksTypeAll   TerminalDiscoverDisksType = "all"
  3585  	TerminalDiscoverDisksTypeEmpty TerminalDiscoverDisksType = "empty"
  3586  	TerminalDiscoverDisksTypeNone  TerminalDiscoverDisksType = "none"
  3587  )
  3588  
  3589  var AllTerminalDiscoverDisksType = []TerminalDiscoverDisksType{
  3590  	TerminalDiscoverDisksTypeAll,
  3591  	TerminalDiscoverDisksTypeEmpty,
  3592  	TerminalDiscoverDisksTypeNone,
  3593  }
  3594  
  3595  func (e TerminalDiscoverDisksType) IsValid() bool {
  3596  	switch e {
  3597  	case TerminalDiscoverDisksTypeAll, TerminalDiscoverDisksTypeEmpty, TerminalDiscoverDisksTypeNone:
  3598  		return true
  3599  	}
  3600  	return false
  3601  }
  3602  
  3603  func (e TerminalDiscoverDisksType) String() string {
  3604  	return string(e)
  3605  }
  3606  
  3607  func (e *TerminalDiscoverDisksType) UnmarshalGQL(v interface{}) error {
  3608  	str, ok := v.(string)
  3609  	if !ok {
  3610  		return fmt.Errorf("enums must be strings")
  3611  	}
  3612  
  3613  	*e = TerminalDiscoverDisksType(str)
  3614  	if !e.IsValid() {
  3615  		return fmt.Errorf("%s is not a valid TerminalDiscoverDisksType", str)
  3616  	}
  3617  	return nil
  3618  }
  3619  
  3620  func (e TerminalDiscoverDisksType) MarshalGQL(w io.Writer) {
  3621  	fmt.Fprint(w, strconv.Quote(e.String()))
  3622  }
  3623  
  3624  // The role types a terminal can have
  3625  type TerminalRoleType string
  3626  
  3627  const (
  3628  	TerminalRoleTypeControlplane TerminalRoleType = "controlplane"
  3629  	TerminalRoleTypeWorker       TerminalRoleType = "worker"
  3630  )
  3631  
  3632  var AllTerminalRoleType = []TerminalRoleType{
  3633  	TerminalRoleTypeControlplane,
  3634  	TerminalRoleTypeWorker,
  3635  }
  3636  
  3637  func (e TerminalRoleType) IsValid() bool {
  3638  	switch e {
  3639  	case TerminalRoleTypeControlplane, TerminalRoleTypeWorker:
  3640  		return true
  3641  	}
  3642  	return false
  3643  }
  3644  
  3645  func (e TerminalRoleType) String() string {
  3646  	return string(e)
  3647  }
  3648  
  3649  func (e *TerminalRoleType) UnmarshalGQL(v interface{}) error {
  3650  	str, ok := v.(string)
  3651  	if !ok {
  3652  		return fmt.Errorf("enums must be strings")
  3653  	}
  3654  
  3655  	*e = TerminalRoleType(str)
  3656  	if !e.IsValid() {
  3657  		return fmt.Errorf("%s is not a valid TerminalRoleType", str)
  3658  	}
  3659  	return nil
  3660  }
  3661  
  3662  func (e TerminalRoleType) MarshalGQL(w io.Writer) {
  3663  	fmt.Fprint(w, strconv.Quote(e.String()))
  3664  }
  3665  
  3666  // Installation types to be selected during creating a helm release
  3667  type WorkloadInstallationType string
  3668  
  3669  const (
  3670  	// Installation to target more powerfull store server nodes. Will only be scheduled on store server labeled nodes.
  3671  	WorkloadInstallationTypeServer WorkloadInstallationType = "SERVER"
  3672  	// Installation to target touchpoint (terminal) nodes. Usually used for daemonsets and persistences.
  3673  	WorkloadInstallationTypeTouchpoint WorkloadInstallationType = "TOUCHPOINT"
  3674  	// Adds no node targeting
  3675  	WorkloadInstallationTypeAny WorkloadInstallationType = "ANY"
  3676  	// No mod means edge makes no modification to the helm release
  3677  	WorkloadInstallationTypeNoMod WorkloadInstallationType = "NO_MOD"
  3678  	// Server Preferred add preferred targeting store server nodes but will still get scheduled to other nodes if available.
  3679  	WorkloadInstallationTypeServerPreferred WorkloadInstallationType = "SERVER_PREFERRED"
  3680  	// Advanced allows advanced node targeting by labels. You must provide the labels you want the workload to be targeted to if choosing this option
  3681  	WorkloadInstallationTypeAdvanced WorkloadInstallationType = "ADVANCED"
  3682  )
  3683  
  3684  var AllWorkloadInstallationType = []WorkloadInstallationType{
  3685  	WorkloadInstallationTypeServer,
  3686  	WorkloadInstallationTypeTouchpoint,
  3687  	WorkloadInstallationTypeAny,
  3688  	WorkloadInstallationTypeNoMod,
  3689  	WorkloadInstallationTypeServerPreferred,
  3690  	WorkloadInstallationTypeAdvanced,
  3691  }
  3692  
  3693  func (e WorkloadInstallationType) IsValid() bool {
  3694  	switch e {
  3695  	case WorkloadInstallationTypeServer, WorkloadInstallationTypeTouchpoint, WorkloadInstallationTypeAny, WorkloadInstallationTypeNoMod, WorkloadInstallationTypeServerPreferred, WorkloadInstallationTypeAdvanced:
  3696  		return true
  3697  	}
  3698  	return false
  3699  }
  3700  
  3701  func (e WorkloadInstallationType) String() string {
  3702  	return string(e)
  3703  }
  3704  
  3705  func (e *WorkloadInstallationType) UnmarshalGQL(v interface{}) error {
  3706  	str, ok := v.(string)
  3707  	if !ok {
  3708  		return fmt.Errorf("enums must be strings")
  3709  	}
  3710  
  3711  	*e = WorkloadInstallationType(str)
  3712  	if !e.IsValid() {
  3713  		return fmt.Errorf("%s is not a valid WorkloadInstallationType", str)
  3714  	}
  3715  	return nil
  3716  }
  3717  
  3718  func (e WorkloadInstallationType) MarshalGQL(w io.Writer) {
  3719  	fmt.Fprint(w, strconv.Quote(e.String()))
  3720  }
  3721  
  3722  // The workload types a Namespace can have
  3723  type WorkloadType string
  3724  
  3725  const (
  3726  	WorkloadTypePlatform WorkloadType = "platform"
  3727  	WorkloadTypeTenant   WorkloadType = "tenant"
  3728  	WorkloadTypeNcr      WorkloadType = "ncr"
  3729  	WorkloadTypeHelm     WorkloadType = "helm"
  3730  )
  3731  
  3732  var AllWorkloadType = []WorkloadType{
  3733  	WorkloadTypePlatform,
  3734  	WorkloadTypeTenant,
  3735  	WorkloadTypeNcr,
  3736  	WorkloadTypeHelm,
  3737  }
  3738  
  3739  func (e WorkloadType) IsValid() bool {
  3740  	switch e {
  3741  	case WorkloadTypePlatform, WorkloadTypeTenant, WorkloadTypeNcr, WorkloadTypeHelm:
  3742  		return true
  3743  	}
  3744  	return false
  3745  }
  3746  
  3747  func (e WorkloadType) String() string {
  3748  	return string(e)
  3749  }
  3750  
  3751  func (e *WorkloadType) UnmarshalGQL(v interface{}) error {
  3752  	str, ok := v.(string)
  3753  	if !ok {
  3754  		return fmt.Errorf("enums must be strings")
  3755  	}
  3756  
  3757  	*e = WorkloadType(str)
  3758  	if !e.IsValid() {
  3759  		return fmt.Errorf("%s is not a valid WorkloadType", str)
  3760  	}
  3761  	return nil
  3762  }
  3763  
  3764  func (e WorkloadType) MarshalGQL(w io.Writer) {
  3765  	fmt.Fprint(w, strconv.Quote(e.String()))
  3766  }
  3767  

View as plain text