IBM Cloud アカウントで Service Endpoint が有効化されているか確認する方法


# Service Endpoint とは
IBM Cloud の各サービスをプライベートネットワーク経由で利用するための新しい機能です。
https://cloud.ibm.com/docs/services/service-endpoint

# ibmcloud コマンドを使う

## 事前準備
[IBM Cloud CLI](https://cloud.ibm.com/docs/cli?topic=cloud-cli-ibmcloud-cli#overview) をインストールします。


## 有効化されている場合
「Service Endpoint Enabled」が「true」になっています。

```
$ ibmcloud account show
Retrieving account xxx of xxxxx@example.com...
OK
                                       
Account Name:                       xxx   
Account ID:                         xxxxxxxxxxxx   
Account Owner:                      xxxxxxx@example.com   
Account Type:                       PAYG   
Account Status:                     ACTIVE   
Linked Softlayer Account:           xxxxxxx   
VRF Enabled:                        true   
Service Endpoint Enabled:           true   
EU Supported                        false   
PoC (Commercial Proof of Concept)   false   
HIPPA Supported                     false   
```


## 有効化されていない場合
「Service Endpoint Enabled」が「false」になっています。

```
$ ibmcloud account show
Retrieving account xxx of xxxxx@example.com...
OK
                                       
Account Name:                       xxx   
Account ID:                         xxxxxxxxxxxx   
Account Owner:                      xxxxxxx@example.com   
Account Type:                       PAYG   
Account Status:                     ACTIVE   
Linked Softlayer Account:           xxxxxxx   
VRF Enabled:                        false   
Service Endpoint Enabled:           false   
EU Supported                        false   
PoC (Commercial Proof of Concept)   false   
HIPPA Supported                     false   
```

# slcli コマンドを使う

## 事前準備

### 「slcli」のインストール・アップデート

「slcli」コマンドを使います。必要に応じて、インストール・最新化してください。

>[Installation — SoftLayer API Python Client latest documentation](https://softlayer-api-python-client.readthedocs.io/en/latest/install/)

### IaaS API key の発行・取得
https://cloud.ibm.com/iam#/users から自分のユーザーをクリックします。

![Kobito.LN350F.png](https://qiita-image-store.s3.amazonaws.com/0/101361/c43efc7c-5575-5861-6bce-bb0b03e9543d.png "Kobito.LN350F.png")

スクロールした先、下段の「API keys」から IaaS API key を発行します。

![Kobito.iU7hXS.png](https://qiita-image-store.s3.amazonaws.com/0/101361/3bb45cca-a01b-f958-cd5b-f277fc21f2eb.png "Kobito.iU7hXS.png")

IaaS API key の発行に成功しました。

![Kobito.Oe1qu5.png](https://qiita-image-store.s3.amazonaws.com/0/101361/c664e52c-165c-156a-77fa-03337ba5812e.png "Kobito.Oe1qu5.png")

発行できた IaaS API key の詳細を表示します。

![Kobito.2VK8A2.png](https://qiita-image-store.s3.amazonaws.com/0/101361/3cbca802-06f0-a190-f8c4-da7cef6899ad.png "Kobito.2VK8A2.png")

「API user name」と「API key」をメモに保存しておきます。

![Kobito.GWjRb9.png](https://qiita-image-store.s3.amazonaws.com/0/101361/df3e8e50-5b93-8b11-7d07-5cb0ffd9e93c.png "Kobito.GWjRb9.png")

### 「slcli」のセットアップ
まずバージョンを確認します。

```
$ slcli --version
slcli (SoftLayer Command-line), version 5.7.1
```

先ほど取得した「API user name」と「API key」を使って、セットアップします。
ターゲットとなるアカウントの情報が出てきたかを確認してください。
以上で、完了です。

```
$ slcli setup
Username [xxxxx]: xxxxx@example.com
API Key or Password [xxxxx]: 
Endpoint (public|private|custom) [https://api.softlayer.com/xmlrpc/v3.1]: 
Timeout [0]: 
:..............:..................................................................:
:         name : value                                                            :
:..............:..................................................................:
:     Username : xxxxx@example.com                                       :
:      API Key : xxxxx :
: Endpoint URL : https://api.softlayer.com/xmlrpc/v3.1                            :
:      Timeout : not set                                                          :
:..............:..................................................................:
Are you sure you want to write settings to "/Users/khayama/.softlayer"? [Y/n]: y
Configuration Updated Successfully
```


## 有効化されている場合
以下のコマンドを打つと「True」が返ってきます。

```
$ slcli call-api SoftLayer_Network isConnectedToPrivateEndpointService
True
```

## 有効化されていない場合
以下のコマンドを打つと「False」が返ってきます。

```
$ slcli call-api SoftLayer_Network isConnectedToPrivateEndpointService
False
```

## アカウントが対応していない場合
以下のコマンドを打つとエラーが返ってきます。

```
$ slcli call-api SoftLayer_Network isConnectedToPrivateEndpointService
SoftLayerAPIError(SoftLayer_Exception_NotReady): User account cannot connect/disconnect to/from Private Endpoint Service
```

#参考
[isConnectedToPrivateEndpointService - https://sldn.softlayer.com/](https://sldn.softlayer.com/reference/services/SoftLayer_Network/isConnectedToPrivateEndpointService/)