# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
name=Name
any.edit=Edit ${name}
any.new=New Client App
any.finish=Submit ${name}
any.cancel=Cancel ${name}
clientId=Client Id
entityId=Entity Id
serviceId=Service Id
clientAppId=Id
redirectUris=Redirect URIs
logout=Logout
signAssertions=Sign Assertions
signResponses=Sign Responses
encryptionOptional=Encryption Optional
encryptAssertions=Encrypt Assertions
requiredNameIdFormat=NameId Format
clientSecret=Client Secret
signIdToken=Sign IdToken
jwtAccessToken=JWT Access Token
subjectType=Subject Type
supportedGrantTypes=Supported Grant Types
supportedResponseTypes=Supported Response Types
logoutUri=Logout URI
metadataLocation=Metadata Location
metadataSignatureLocation=Metadata Signature Location
requiredAuthenticationContextClass=Authentication Context Class
skewAllowance=Skew Allowance
nameIdQualifier=NameId Qualifier
assertionAudiences=Assertion Audiences
serviceProviderNameIdQualifier=Service Provider NameId Qualifier
signingSignatureAlgorithms=Signing Signature Algorithms
signingSignatureReferenceDigestMethods=Signing Signature Reference Digest Methods
encryptionDataAlgorithms=Encryption Data Algorithms
encryptionKeyAlgorithms=Encryption Key Algorithms
signingSignatureBlackListedAlgorithms=Signing Signature BlackListed Algorithms
encryptionBlackListedAlgorithms=Encryption BlackListed Algorithms
description=Description
theme=Theme
authPolicy=Authentication Policy
accessPolicy=Access Policy
attrReleasePolicy=Attribute Release Policy
properties.title=Properties for ${name}
type_extensions.title=properties
