github.com/IBM-Blockchain/fabric-operator@v1.0.4/pkg/apis/console/v1/console.go (about)

     1  /*
     2   * Copyright contributors to the Hyperledger Fabric Operator project
     3   *
     4   * SPDX-License-Identifier: Apache-2.0
     5   *
     6   * Licensed under the Apache License, Version 2.0 (the "License");
     7   * you may not use this file except in compliance with the License.
     8   * You may obtain a copy of the License at:
     9   *
    10   * 	  http://www.apache.org/licenses/LICENSE-2.0
    11   *
    12   * Unless required by applicable law or agreed to in writing, software
    13   * distributed under the License is distributed on an "AS IS" BASIS,
    14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15   * See the License for the specific language governing permissions and
    16   * limitations under the License.
    17   */
    18  
    19  package v1
    20  
    21  type DBCustomNames struct {
    22  	Components string `json:"DB_COMPONENTS"`
    23  	Sessions   string `json:"DB_SESSIONS"`
    24  	System     string `json:"DB_SYSTEM"`
    25  }
    26  
    27  type FabricCapabilites struct {
    28  	Application []string `json:"application"`
    29  	Channel     []string `json:"channel"`
    30  	Orderer     []string `json:"orderer"`
    31  }
    32  
    33  type IBMID struct {
    34  	URL          string `json:"url,omitempty"`
    35  	ClientID     string `json:"client_id,omitempty"`
    36  	ClientSecret string `json:"client_secret,omitempty"`
    37  }
    38  
    39  // IBPConsoleStructureData provides the clsuter info the console
    40  // +k8s:openapi-gen=true
    41  // +k8s:deepcopy-gen=true
    42  type IBPConsoleClusterData struct {
    43  	// Zones provides the zones available
    44  	Zones []string `json:"zones,omitempty"`
    45  
    46  	// Type provides the type of cluster
    47  	Type string `json:"type,omitempty"`
    48  
    49  	Namespace string `json:"namespace,omitempty"`
    50  }
    51  
    52  // +k8s:deepcopy-gen=true
    53  type InfraImportOptions struct {
    54  	Platform          string   `json:"platform,omitempty"`
    55  	SupportedCAs      []string `json:"supported_cas,omitempty"`
    56  	SupportedOrderers []string `json:"supported_orderers,omitempty"`
    57  	SupportedPeers    []string `json:"supported_peers,omitempty"`
    58  }
    59  
    60  // +k8s:deepcopy-gen=true
    61  type FeatureFlags struct {
    62  	ImportOnlyEnabled       *bool               `json:"import_only_enabled,omitempty"`
    63  	ReadOnlyEnabled         *bool               `json:"read_only_enabled,omitempty"`
    64  	CreateChannelEnabled    bool                `json:"create_channel_enabled,omitempty"`
    65  	RemotePeerConfigEnabled bool                `json:"remote_peer_config_enabled,omitempty"`
    66  	SaasEnabled             bool                `json:"saas_enabled,omitempty"`
    67  	TemplatesEnabled        bool                `json:"templates_enabled,omitempty"`
    68  	CapabilitiesEnabled     bool                `json:"capabilities_enabled,omitempty"`
    69  	HighAvailability        bool                `json:"high_availability,omitempty"`
    70  	EnableNodeOU            bool                `json:"enable_ou_identifier,omitempty"`
    71  	HSMEnabled              bool                `json:"hsm_enabled,omitempty"`
    72  	ScaleRaftNodesEnabled   bool                `json:"scale_raft_nodes_enabled,omitempty"`
    73  	InfraImportOptions      *InfraImportOptions `json:"infra_import_options,omitempty"`
    74  	Lifecycle20Enabled      bool                `json:"lifecycle2_0_enabled,omitempty"`
    75  	Patch14to20Enabled      bool                `json:"patch_1_4to2_x_enabled,omitempty"`
    76  	DevMode                 bool                `json:"dev_mode,omitempty"`
    77  	MustgatherEnabled       bool                `json:"mustgather_enabled,omitempty"`
    78  }
    79  
    80  // Added here to avoid the Circular dependency
    81  type CRN struct {
    82  	Version      string `json:"version,omitempty"`
    83  	CName        string `json:"c_name,omitempty"`
    84  	CType        string `json:"c_type,omitempty"`
    85  	Servicename  string `json:"service_name,omitempty"`
    86  	Location     string `json:"location,omitempty"`
    87  	AccountID    string `json:"account_id,omitempty"`
    88  	InstanceID   string `json:"instance_id,omitempty"`
    89  	ResourceType string `json:"resource_type,omitempty"`
    90  	ResourceID   string `json:"resource_id,omitempty"`
    91  }
    92  
    93  type ConsoleSettingsConfig struct {
    94  	Version              string                 `json:"version"`
    95  	Email                string                 `json:"initial_admin"`
    96  	AuthScheme           string                 `json:"auth_scheme"`
    97  	AllowDefaultPassword bool                   `json:"allow_default_password"`
    98  	Configtxlator        string                 `json:"configtxlator"`
    99  	DeployerURL          string                 `json:"deployer_url"`
   100  	DeployerTimeout      int32                  `json:"deployer_timeout"`
   101  	HSM                  string                 `json:"hsm"`
   102  	SegmentWriteKey      string                 `json:"segment_write_key"`
   103  	DBCustomNames        DBCustomNames          `json:"db_custom_names"`
   104  	EnforceBackendSSL    bool                   `json:"enforce_backend_ssl"`
   105  	SystemChannelID      string                 `json:"system_channel_id"`
   106  	DynamicTLS           bool                   `json:"dynamic_tls"`
   107  	DynamicConfig        bool                   `json:"dynamic_config"`
   108  	Zone                 string                 `json:"zone"`
   109  	Infrastructure       string                 `json:"infrastructure"`
   110  	FabricCapabilites    FabricCapabilites      `json:"fabric_capabilities"`
   111  	ClusterData          *IBPConsoleClusterData `json:"cluster_data"`
   112  	ProxyTLSReqs         string                 `json:"proxy_tls_fabric_reqs"`
   113  	ProxyTLSUrl          string                 `json:"proxy_tls_ws_url"`
   114  	Featureflags         *FeatureFlags          `json:"feature_flags"`
   115  	IBMID                *IBMID                 `json:"ibmid,omitempty"`
   116  	IAMApiKey            string                 `json:"iam_api_key,omitempty"`
   117  	CRN                  *CRN                   `json:"crn,omitempty"`
   118  	CRNString            string                 `json:"crn_string,omitempty"`
   119  	ActivityTrackerPath  string                 `json:"activity_tracker_path,omitempty"`
   120  	TrustProxy           string                 `json:"trust_proxy,omitempty"`
   121  }