パラメータ条件
パラメータ条件は、StyleBook定義内の一部のパラメータの動作を変更するために使用されます。StyleBook定義内のパラメータは、設定パックを作成するために提供される入力です。定義内でパラメータ条件を定義するには、
parameters-conditionsを使用します。
StyleBook定義では、パラメータに多くの制約を設定できます。パラメータ条件は、ユーザーがパラメータの動作を変更したときに競合を解決するために使用されます。たとえば、ユーザーがSSLプロトコルを選択した場合、設定パックを作成するには証明書の詳細が必要です。ただし、証明書の詳細は最初、必須フィールドとして設定されていない場合があります。
パラメータ条件には、次の属性があります。
-
target: アクションを適用するターゲットパラメータを指定します。複数のターゲットパラメータを指定できます。 -
action: ターゲットパラメータに対して実行するアクションを指定します。パラメータ条件は、次のアクションをサポートしています。 -
condition: オプション。指定されたターゲットパラメーターにアクションを適用する条件を指定します。条件を指定しない場合、アクションはターゲットパラメーターに直接適用されます。 -
value: アクションに応じて、ターゲットパラメーター属性の値を設定します。
注:
現在、リストオブジェクト内のパラメーターには、パラメーター条件を適用できません。
'オーグメント・アロード・バリュー'
アクションが
augment-allowed-valuesの場合、ターゲットパラメーターはGUIにドロップダウンメニューとして表示されます。ドロップダウンメニューには、StyleBook定義のvalue属性で定義された値が設定されます。
例:
parameters-conditions:
-
target: $parameters.rewritepolicy.action
action: augment-allowed-values
value: $parameters.rewriteaction
'show' または 'hide'
アクションが
showで、指定された条件がTrueを返す場合、ターゲットパラメーターはGUIに表示されます。
アクションが
hideで、指定された条件がTrueを返す場合、ターゲットパラメーターはGUIから非表示になります。
例:
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: show
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
最初、
security-settingsパラメーターの証明書詳細は非表示になっています。ユーザーがSSLまたはSSL-Bridgeプロトコルを選択すると、証明書詳細が表示されます。
'セット・デフォルト'
アクションが
set-defaultで、指定された条件がTrueを返す場合、ターゲットパラメーターの値はデフォルト値に設定されます。
例 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
例 2:
parameters-conditions:
-
target: $parameters.port
action: set-default
value: if-then-else($parameters.protocol == "SSL", 443, 80)
ユーザーがSSLプロトコルを選択すると、デフォルトのポート値は
443に設定されます。その他のプロトコルの場合、デフォルトのポート値は80に設定されます。例 1 と 2 は同じ結果になります。
'セットリクワイアード'
アクションが
set-requiredで、指定された条件がTrueを返すと、ターゲットパラメータは設定パックを作成するための必須フィールドになります。
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: set-required
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
最初は、
security-settingsパラメータに証明書の詳細が必要ない場合があります。ユーザーがSSLまたはSSL-Bridgeプロトコルを選択すると、証明書の詳細は、設定パックを作成するための必須フィールドになります。
'セットアロードバリュー'
アクションが
set-allowed-valuesで、指定された条件がTrueを返すと、ターゲットパラメータでは、指定された値のみを選択できます。
例:
parameters-conditions:
-
target: $parameters.app-name
action: set-allowed-values
value:
- "SSL"
condition: $parameters.lb-virtual-port == 443
ユーザーがロードバランサーの仮想ポートとして
443を指定すると、アプリケーション名ではSSLオプションのみが許可されます。
'セットラベル'
アクションが
set-labelで、指定された条件がTrueを返すと、ターゲットパラメータのラベルは指定されたテキストに変更されます。
例:
parameters-conditions:
-
target: $parameters.app-name
action: set-label
value: if-then-else($parameters.lb-service-type == "TCP", "TCPApp","UDPApp")
ユーザーがロードバランサープロトコルとしてTCPを選択すると、アプリケーションのラベルはTCPAppに変更されます。ユーザーが別のオプションを選択した場合、アプリケーションのラベルはUDPAppに変更されます。
'セットディスクリプション'
アクションが
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")
ユーザーがロードバランサープロトコルとして TCP を選択すると、アプリケーションのツールチップに
Select a TCP application name と表示されます。ユーザーが別のオプションを選択した場合、アプリケーションの説明に Select a UDP application name と表示されます。
'コラプス・ペイン' または 'エクスパンド・ペイン'
アクションが
collapse-pane で、指定された条件が True を返す場合、GUI でターゲットパラメータのペインが折りたたまれます。
アクションが
expand-pane で、指定された条件が True を返す場合、GUI でターゲットパラメータのペインが展開されます。
例:
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: expand-pane
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
最初は、
security-settings パラメータの証明書詳細ペインは展開されていない場合があります。ユーザーが SSL または SSL-Bridge プロトコルを選択すると、証明書詳細ペインが GUI 上で展開されます。
'セット・パターン'
アクションが
set-pattern で、指定された条件が True を返す場合、ターゲットパラメータフィールドは指定されたパターンに設定されます。
例:
parameters-conditions:
-
target: $parameters.app-name
action: set-pattern
value: "[a-z]+"
この例では、アプリケーション名には小文字の英字のみが許可されます。
ネストされたパラメータ条件
StyleBook 定義では、パラメータ条件内にパラメータ条件を指定できます。これらの条件はネストされたパラメータ条件と呼ばれ、これらの条件を定義するために繰り返しコンストラクトを使用します。ネストされたパラメータ条件は、あるパラメータから別のパラメータに対してアクションを適用したい場合に役立ちます。
例:
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
この例では、ユーザーがロードバランシング仮想サーバーの HTTPS プロトコルを選択すると、ポート値が動的に入力されます。そして、リスト内の各ロードバランシング仮想サーバーに適用されます。