github.com/sacloud/iaas-api-go@v1.12.0/ostype/archive_ostype.go (about) 1 // Copyright 2022-2023 The sacloud/iaas-api-go Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Package ostype is define OS type of SakuraCloud public archive 16 package ostype 17 18 //go:generate stringer -type=ArchiveOSType 19 20 // ArchiveOSType パブリックアーカイブOS種別 21 type ArchiveOSType int 22 23 const ( 24 // Custom OS種別:カスタム 25 Custom ArchiveOSType = iota 26 27 // CentOS OS種別:CentOS 28 CentOS 29 // CentOS7 OS種別:CentOS7 30 CentOS7 31 32 // AlmaLinux OS種別: Alma Linux 33 AlmaLinux 34 // AlmaLinux9 OS種別: Alma Linux9 35 AlmaLinux9 36 // AlmaLinux8 OS種別: Alma Linux8 37 AlmaLinux8 38 39 // RockyLinux OS種別: Rocky Linux 40 RockyLinux 41 // RockyLinux9 OS種別: Rocky Linux9 42 RockyLinux9 43 // RockyLinux8 OS種別: Rocky Linux8 44 RockyLinux8 45 46 // MiracleLinux OS種別: MIRACLE LINUX 47 MiracleLinux 48 // MiracleLinux8 OS種別: MIRACLE LINUX8 49 MiracleLinux8 50 // MiracleLinux9 OS種別: MIRACLE LINUX8 51 MiracleLinux9 52 53 // Ubuntu OS種別:Ubuntu 54 Ubuntu 55 // Ubuntu2204 OS種別:Ubuntu(Jammy Jellyfish) 56 Ubuntu2204 57 // Ubuntu2004 OS種別:Ubuntu(Focal Fossa) 58 Ubuntu2004 59 // Ubuntu1804 OS種別:Ubuntu(Bionic) 60 Ubuntu1804 61 62 // Debian OS種別:Debian 63 Debian 64 // Debian10 OS種別:Debian10 65 Debian10 66 // Debian11 OS種別:Debian11 67 Debian11 68 69 // Kusanagi OS種別:Kusanagi(CentOS) 70 Kusanagi 71 ) 72 73 // ArchiveOSTypes アーカイブ種別のリスト 74 var ArchiveOSTypes = []ArchiveOSType{ 75 CentOS, 76 CentOS7, 77 AlmaLinux, 78 AlmaLinux9, 79 AlmaLinux8, 80 RockyLinux, 81 RockyLinux9, 82 RockyLinux8, 83 MiracleLinux, 84 MiracleLinux8, 85 MiracleLinux9, 86 Ubuntu, 87 Ubuntu2204, 88 Ubuntu2004, 89 Ubuntu1804, 90 Debian, 91 Debian10, 92 Debian11, 93 Kusanagi, 94 } 95 96 // OSTypeShortNames OSTypeとして利用できる文字列のリスト 97 var OSTypeShortNames = []string{ 98 "centos", "centos7", 99 "almalinux", "almalinux9", "almalinux8", 100 "rockylinux", "rockylinux9", "rockylinux8", 101 "miracle", "miraclelinux", "miracle8", "miraclelinux8", "miracle9", "miraclelinux9", 102 "ubuntu", "ubuntu2204", "ubuntu2004", "ubuntu1804", 103 "debian", "debian10", "debian11", 104 "kusanagi", 105 } 106 107 // IsSupportDiskEdit ディスクの修正機能をフルサポートしているか(Windowsは一部サポートのためfalseを返す) 108 func (o ArchiveOSType) IsSupportDiskEdit() bool { 109 switch o { 110 case CentOS, CentOS7, 111 AlmaLinux, AlmaLinux9, AlmaLinux8, 112 RockyLinux, RockyLinux9, RockyLinux8, 113 MiracleLinux, MiracleLinux8, MiracleLinux9, 114 Ubuntu, Ubuntu2204, Ubuntu2004, Ubuntu1804, 115 Debian, Debian10, Debian11, 116 Kusanagi: 117 return true 118 default: 119 return false 120 } 121 } 122 123 // StrToOSType 文字列からArchiveOSTypesへの変換 124 func StrToOSType(osType string) ArchiveOSType { 125 switch osType { 126 case "centos": 127 return CentOS 128 case "centos7": 129 return CentOS7 130 case "almalinux": 131 return AlmaLinux 132 case "almalinux9": 133 return AlmaLinux9 134 case "almalinux8": 135 return AlmaLinux8 136 case "rockylinux": 137 return RockyLinux 138 case "rockylinux9": 139 return RockyLinux9 140 case "rockylinux8": 141 return RockyLinux8 142 case "miracle", "miraclelinux": 143 return MiracleLinux 144 case "miracle8", "miraclelinux8": 145 return MiracleLinux8 146 case "miracle9", "miraclelinux9": 147 return MiracleLinux9 148 case "ubuntu": 149 return Ubuntu 150 case "ubuntu2204": 151 return Ubuntu2204 152 case "ubuntu2004": 153 return Ubuntu2004 154 case "ubuntu1804": 155 return Ubuntu1804 156 case "debian": 157 return Debian 158 case "debian10": 159 return Debian10 160 case "debian11": 161 return Debian11 162 case "kusanagi": 163 return Kusanagi 164 default: 165 return Custom 166 } 167 }