パラメーター条件
StyleBook定義では、StyleBookユーザーが構成パックを作成するために入力する入力をパラメーターで定義します。パラメーターの動作を次のように変更したい場合があります。
- 条件が満たされた場合にのみ、一部のパラメータをユーザに表示します。
- あるパラメータで許容される値が別のパラメータに依存する。
- 特定の条件下でのみ、パラメーターを必須に設定します。
このような場合は、 parameters-conditions
セクションを使用してパラメータ条件を定義します。パラメーター条件には次の属性があります。
-
target
: 条件を適用するパラメータを指定します。 -
action
: ターゲットパラメータが条件と一致した場合に実行するアクションを指定します。この機能は次のアクションをサポートします。 -
condition
: 満たす必要のある条件を指定します。 -
value
: アクションに応じて、ターゲットパラメータ属性の値を設定します。
メモ現在
、パラメータ条件はリストオブジェクト内のパラメータには適用できません。
「表示」または「非表示」
アクションがshow
であり、指定された条件がTrue
を戻すと 、target パラメータが GUI に表示されます。
アクションがhide
であり、指定された条件がTrue
を戻すと 、target パラメータが GUI にから消えます。
例:
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: show
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->
最初は、 security-settings
パラメーターの証明書の詳細は非表示になっています。ユーザーが SSL または SSL ブリッジプロトコルを選択すると、証明書の詳細が表示されます。
‘set-default’
アクションがset-default
であり、指定された条件がTrue
を戻すと 、target パラメータが デフォルト値に設定されます。
例 1:
parameters-conditions:
-
target: $parameters.port
action: set-default
condition: $parameters.protocol == "SSL"
value: 443
-
target: $parameters.port
action: set-default
condition: $parameters.protocol != "SSL"
value: 80
<!--NeedCopy-->
例 2:
parameters-conditions:
-
target: $parameters.port
action: set-default-value
value: if-then-else($parameters.protocol == "SSL", 443, 80)
<!--NeedCopy-->
ユーザーが SSL プロトコルを選択すると、デフォルトのポート値は443
に設定されます。他のプロトコルでは、デフォルトのポート値は80
に設定されます。例 1 と例 2 でも同じ結果が得られます。
‘セット必須’
アクションがset-required
であり、指定された条件がTrue
を戻すと 、target パラメータが構成パックを作成するための 必要なフィールドになります。
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: set-required
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->
最初は、 security-settings
パラメータに証明書の詳細は必要ない場合があります。ユーザーが SSL またはSSL-Bridge** プロトコルを選択すると、証明書の詳細が構成パックを作成するための必須フィールドになります。
‘許可された値を設定’
アクションがset-allowed-values
であり、指定された条件がTrue
を戻すと 、target パラメータがは指定された値のみを選択できるようにします。
例 1:
parameters-conditions:
-
target: $parameters.app-name
action: set-allowed-values
value:
- "SSL"
condition: $parameters.lb-virtual-port == 443
<!--NeedCopy-->
ユーザーがロードバランサー仮想ポートとして443
を指定すると、アプリケーションの名前で SSL オプションのみが許可されます。
例-2;
parameters:
-
name: root-certificates
label: "Root Certificates"
type: object[]
parameters:
-
name: certkey-name
label: "SSL Root CertKey Name"
type: string
required: true
-
name: im-certificates
label: "Intermediate Certificates"
type: object[]
parameters:
-
name: certkey-name
label: "Name of Intermediate CertKey"
type: string
required: true
-
name: link-options
label: "Link to Root or Intermediate CertKey?"
type: string
allowed-values:
- Root
- Intermediate
default: Root
required: true
-
name: link-certkey
label: "Linked to Root/Intermediate CertKey Name"
type: string
required: true
parameters-conditions:
-
repeat: $parameters.im-certificates
repeat-item: imcert
parameters-conditions:
-
target: $imcert.link-certkey
action: set-allowed-values
condition: $imcert.link-options == "Root"
value: $parameters.root-certificates[\*].certkey-name
-
target: $imcert.link-certkey
action: set-allowed-values
condition: $imcert.link-options == "Intermediate"
value: $parameters.im-certificates[\*].certkey-name
<!--NeedCopy-->
この例は、SSL 証明書の値の設定に関するものです。パラメータ条件の繰り返し構造は、すべての中間証明書 (im-certificates
) を反復処理し、各証明書のlink-options
パラメータをチェックします。
link-options
パラメータが特定の値と一致する場合、link-certkey
パラメータで許可されている値がそれぞれの証明書リストに追加されます。
たとえば、link-options
パラメータがRoot
の場合、link-certkey
パラメータで許可されている値がroot-certificate
リストに追加されます。
証明書をリストに追加するには、次の表記を使用します。
-
ルート証明書の場合:
$parameters.root-certificates[*].certkey-name <!--NeedCopy-->
-
中間証明書の場合:
$parameters.im-certificates[*].certkey-name <!--NeedCopy-->
‘set-label ‘
アクションがset-label
であり、指定された条件がTrue
を返すと、ターゲットパラメーターのラベルは指定されたテキストに変更されます。
例:
parameters-conditions:
-
target: $parameters.app-name
action: set-label
value: if-then-else($parameters.lb-service-type == "TCP", "TCPApp","UDPApp")
<!--NeedCopy-->
ユーザーがロードバランサープロトコルを TCPとして選択すると、アプリケーションのラベルが TCPAPPに変わります。ユーザーが別のオプションを選択すると、アプリケーションのラベルが UDPAppに変わります。
‘set-description’
アクションがset-description
であり、指定された条件がTrue
を返すと、ターゲットパラメーターの説明は指定されたテキストに変更されます。このディスクリプションは、ターゲットパラメータのツールチップに表示されます。
例:
parameters-conditions:
-
target: $parameters.app-name
action: set-description
value: if-then-else($parameters.lb-service-type == "TCP", "Select a TCP application name","Select a UDP application name")
<!--NeedCopy-->
ユーザーがロードバランサープロトコルを TCPとして選択すると、アプリケーションのツールヒントに「」というテキストが表示されます Select a TCP application name
。ユーザーが別のオプションを選択すると、アプリケーションの説明がSelect a UDP application name
を表示します。
「折りたたみペイン」または「展開ペイン」
アクションがcollapse-pane
であり、指定された条件がTrue
を戻すと 、ターゲットパラメータのペインが GUIで折りたたまれます。
アクションがexpand-pane
であり、指定された条件がTrue
を戻すと 、tターゲット パラメータのペインが GUIで展開されます。
例:
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: expand-pane
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->
最初は、 security-settings
パラメータに対して証明書の詳細ウィンドウが展開されないことがあります。ユーザーが SSL または SSLブリッジプロトコルを選択すると 、証明書の詳細ペインが GUI 上で展開されます。
‘set-pattern’
アクションがset-pattern
であり、指定された条件がTrue
を返すと、ターゲットパラメーターフィールドが指定されたパターンに設定されます。
例:
parameters-conditions:
-
target: $parameters.app-name
action: set-pattern
value: "[a-z]+"
<!--NeedCopy-->
この例では、アプリケーション名には英小文字しか使用できません。
ネストされたパラメーター条件
StyleBook定義では、パラメーター条件内にパラメーター条件を指定できます。これらの条件はネストされたパラメーター条件と呼ばれ、repeat 構文を使用してこれらの条件を定義します。ネストされたパラメーター条件は、別のパラメーターのパラメーターにアクションを適用する場合に便利です。
例:
parameters-conditions:
-
repeat: $parameters.lbvservers
repeat-item: lbvserver
parameters-conditions:
-
target: $lbvserver.port
action: set-allowed-values
condition: $lbvserver.protocol == "HTTPS"
value: $parameters.ssl-ports
<!--NeedCopy-->
この例では、ユーザーが負荷分散仮想サーバーの HTTPS プロトコルを選択すると、ポート値が動的に入力されます。また、リスト内の負荷分散仮想サーバーごとに適用されます。