パラメーター条件
パラメーター条件は、StyleBook定義における特定のパラメーターの動作を変更するために使用されます。StyleBook定義内のパラメーターは、構成パックを作成するために提供される入力です。定義内でパラメーター条件を定義するには、parameters-conditionsを使用します。
パラメーターは、StyleBook定義において多くの制約を持つことができます。パラメーター条件は、ユーザーがパラメーターの動作を変更したときに競合を解決するために使用されます。たとえば、ユーザーがSSLプロトコルを選択した場合、構成パックを作成するには証明書の詳細が必要になります。ただし、証明書の詳細は最初、必須フィールドとして設定されていない場合があります。
パラメーター条件には、次の属性があります。
-
target: アクションを適用するターゲットパラメーターを指定します。複数のターゲットパラメーターを指定できます。 -
action: ターゲットパラメーターに対して実行するアクションを指定します。パラメーター条件は、次のアクションをサポートしています。 -
condition: オプション。指定されたターゲットパラメーターにアクションを適用するための条件を指定します。条件を指定しない場合、アクションはターゲットパラメーターに直接適用されます。 -
value: アクションに応じて、ターゲットパラメーター属性の値を設定します。
注
現在、パラメーター条件はリストオブジェクト内のパラメーターには適用できません。
「表示」または「非表示」
アクションがshowで、指定された条件がTrueを返すと、ターゲットパラメーターがGUIに表示されます。
アクションがhideで、指定された条件がTrueを返すと、ターゲットパラメーターがGUIから非表示になります。
例:
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: show
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->
最初、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
<!--NeedCopy-->
例 2:
parameters-conditions:
-
target: $parameters.port
action: set-default
value: if-then-else($parameters.protocol == "SSL", 443, 80)
<!--NeedCopy-->
ユーザーが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"]
<!--NeedCopy-->
最初、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
<!--NeedCopy-->
ユーザーがロードバランサーの仮想ポートとして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")
<!--NeedCopy-->
ユーザーがロードバランサープロトコルとして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")
<!--NeedCopy-->
ユーザーがロードバランサープロトコルとして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"]
<!--NeedCopy-->
最初、security-settingsパラメーターの証明書の詳細ペインは展開されていない場合があります。ユーザーがSSLまたはSSL-Bridgeプロトコルを選択すると、証明書の詳細ペインがGUIで展開されます。
「パターン設定」
アクションがset-patternで、指定された条件がTrueを返すと、ターゲットパラメーターフィールドは指定されたパターンに設定されます。
例:
parameters-conditions:
-
target: $parameters.app-name
action: set-pattern
value: "[a-z]+"
<!--NeedCopy-->
この例では、アプリケーション名には小文字のアルファベット文字のみが許可されます。
ネストされたパラメーター条件
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
<!--NeedCopy-->
この例では、ユーザーがロードバランシング仮想サーバーに対してHTTPSプロトコルを選択すると、ポート値が動的に入力されます。そして、これはリスト内の各ロードバランシング仮想サーバーに適用されます。